IP Library › Granted Patent US 11,775,325
Granted Patent B2
US 11,775,325 · App. 17/518,859 · Granted Oct 3, 2023

Dynamic I/O virtualization system having guest memory management for mapping virtual addresses using virtualization application programming interface (API) in guest kernal

Inventor: Sreekumar R. Nair (San Jose, CA)
Assignee: Dynavisor, Inc.
G06F9/45533C07K16/2803C07K16/2887C07K16/2896G06F3/061G06F3/0664G06F3/0665G06F3/0685G06F3/0689G06F9/45558G06F12/0868G06F12/1081G06F13/28A61K2039/505A61K2039/507C07K2317/21C07K2317/24C07K2317/33C07K2317/52C07K2317/56C07K2317/565C07K2317/73C07K2317/76G06F3/0673G06F9/4411G06F12/084G06F12/0864G06F2009/45579G06F2212/152G06F2212/2532G06F2212/314G06F2212/463
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,775,325
App. No.
17/518,859
Granted
Oct 3, 2023
Kind
B2
Abstract

A system and method for providing dynamic I/O virtualization is herein disclosed. According to one embodiment, a device capable of performing hypervisor-agnostic and device-agnostic I/O virtualization includes a host computer interface, memory, I/O devices (GPU, disk, NIC), and efficient communication mechanisms for virtual machines to communicate their intention to perform I/O operations on the device. According to one embodiment, the communication mechanism may use shared memory. According to some embodiments, the device may be implemented purely in hardware, in software, or using a combination of hardware and software. According to some embodiments, the device may share its memory with guest processes to perform optimizations including but not limited to a shared page cache and a shared heap.

Claims (25)

1. A system, comprising:

a host computer having a host kernel and a host memory;

one or more guest computers, each of the guest computer of the one or more guest computers having a guest kernel and a guest memory, the guest kernel including a bridge code, the bridge code being configured for a guest application in the one or more guest computers to perform operations in the host computer, the guest application is generated with an input output virtualization application programming interface (API), wherein the input output virtualization API is in the guest kernel; and

an input output virtualization interface configured to communicate between the host computer and the one or more guest computers.

2. The system of claim 1 , wherein the operations includes reading and writing on files in the host kernel.

3. The system of claim 1 , wherein a guest process and memory manager (PMM) maps the bridge code into an address space of the guest kernel and an address space of the guest application.

4. The system of claim 1 , wherein the input output virtualization API initiates one or more input output virtualization operations, the operations including a remote system call.

5. The system of claim 4 , wherein a guest kernel driver in the guest computer is an initiator of the input output virtualization operations.

6. The system of claim 1 , wherein the input output virtualization API enables an input/output request from a cloud application layer to a native driver layer on the host computer.

7. The system of claim 1 , wherein the input output virtualization API enables an input/output request from a cloud platform management layer to a native driver layer on the host computer.

8. The system of claim 1 , wherein the input output virtualization API enables an input/output request from a cloud management platform layer to a native driver layer on the host computer.

9. A computer-implemented method, comprising:

providing a host computer having a host kernel and a host memory;

providing one or more guest computers, each of the guest computer of the one or more guest computers having a guest kernel and a guest memory;

providing an input output virtualization interface to communicate between the host computer and the one or more guest computers;

providing a bridge code in the guest kernel;

generating a guest application with an input output virtualization application programming interface (API), wherein the input output virtualization API is in the guest kernel; and

allowing the guest application from the one or more guest computers to perform operations in the host computer.

10. The computer-implemented method of claim 9 , wherein the operations includes reading and writing on files in the host kernel.

11. The computer-implemented method of claim 9 , further comprising mapping, by a guest process and memory manager (PMM), the bridge code into an address space of the guest kernel and an address space of the guest application.

12. The computer-implemented method of claim 9 , further comprising initiating, by the input output virtualization API, one or more input output virtualization operations, the operations including a remote system call.

13. The computer-implemented method of claim 12 , wherein a guest kernel driver in the guest computer is an initiator of the input output virtualization operations.

14. The computer-implemented method of claim 9 , further comprising enabling, by the input output virtualization API, an input/output request from a cloud application layer to a native driver layer on the host computer.

15. The computer-implemented method of claim 9 , further comprising enabling, by the input output virtualization API, an input/output request from a cloud platform management layer to a native driver layer on the host computer.

16. The computer-implemented method of claim 9 , further comprising enabling, by the input output virtualization API, an input/output request from a cloud management platform layer to a native driver layer on the host computer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2026
From: NAIR, SREEKUMAR R.
To: DYNAVISOR, INC.
Reel/Frame 074915/0586 →
Continuity (6)
Continuation 16744773 · Jan 16, 2020
Continuation 16128913 · Sep 12, 2018
Continuation 15880092 · Jan 25, 2018
Continuation 14555473 · Nov 26, 2014
Provisional Application 61909324 · Nov 26, 2013
Related Publication 20220058041A1 · Feb 24, 2022