IP Library › Granted Patent US 11,822,945
Granted Patent B2
US 11,822,945 · App. 17/518,863 · Granted Nov 21, 2023

Security of dynamic I/O virtualization system having a bidirectional extended hybrid address space (EHAS) for allowing host kernel to access guest memory

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,822,945
App. No.
17/518,863
Granted
Nov 21, 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 (29)

1. A system, comprising:

a host computer having a host kernel and a host input output virtualization memory;

a guest computer having a guest kernel and a guest input output virtualization memory;

a bidirectional extended hybrid address space (EHAS), the EHAS allowing the host kernel running on the host computer to access the guest input output virtualization memory and allowing a guest process to access the host input output virtualization memory, the EHAS embedded in a guest input output virtualization context; and

one or more input output virtualization drivers specifying a first location of the host input output virtualization memory in the EHAS and a second location of the guest input output virtualization memory in the EHAS.

2. The system of claim 1 , wherein the guest process switches a guest address space to the EHAS prior to performing a remote system call.

3. The system of claim 1 , wherein the host input output virtualization memory and the guest input output virtualization memory map into one or more address spaces that perform operations.

4. The system of claim 3 , wherein the operations include storing, networking, or graphics operations.

5. The system of claim 1 , wherein the one or more input output virtualization drivers include a host input output virtualization driver and a guest input output virtualization driver.

6. The system of claim 1 , wherein first location and the second location are in address spaces in the EHAS.

7. The system of claim 1 , wherein the EHAS includes mapping information about mappings of the host input output virtualization memory and the guest input output virtualization memory.

8. The system of claim 1 , wherein the EHAS includes a code for a host input output virtualization driver and a portion of the guest kernel mapped for reference by the host input output virtualization driver.

9. The system of claim 8 , wherein the EHAS is an input output virtualization host context of the host input output virtualization driver.

10. A computer-implemented method, comprising:

providing a host computer having a host kernel and a host input output virtualization memory;

providing a guest computer having a guest kernel and a guest input output virtualization memory;

providing a bidirectional extended hybrid address space (EHAS), the EHAS embedded in a guest input output virtualization context;

allowing the host kernel running on the host computer to access the guest input output virtualization memory;

allowing a guest process to access the host input output virtualization memory;

providing one or more input output virtualization drivers; and

specifying a first location of the host input output virtualization memory in the EHAS and a second location of the guest input output virtualization memory in the EHAS.

11. The computer-implemented method of claim 10 , wherein the guest process switches a guest address space to the EHAS prior to performing a remote system call.

12. The computer-implemented method of claim 10 , further comprising mapping the host input output virtualization memory and the guest input output virtualization memory into one or more address spaces that perform operations.

13. The computer-implemented method of claim 12 , wherein the operations include storing, networking, or graphics operations.

14. The computer-implemented method of claim 10 , wherein the one or more input output virtualization drivers include a host input output virtualization driver and a guest input output virtualization driver.

15. The computer-implemented method of claim 10 , wherein first location and the second location are in address spaces in the EHAS.

16. The computer-implemented method of claim 10 , wherein the EHAS includes mapping information about mappings of the host input output virtualization memory and the guest input output virtualization memory.

17. The computer-implemented method of claim 10 , further comprising providing a code for a host input output virtualization driver and a portion of the guest kernel mapped for reference by the host input output virtualization driver.

18. The computer-implemented method of claim 17 , wherein the EHAS is an input output virtualization host context of the host input output virtualization driver.

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 20220056130A1 · Feb 24, 2022