Dynamic device virtualization for use by guest user processes based on observed behaviors of native device drivers
AssigneeDynavisor, Inc.
InventorSreekumar Ramakrishnan Nair
Life of this patent
Estimating the term…
Abstract
A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes providing a hypervisor and one or more guest virtual machines (VMs). Each guest VM is disposed to run a guest user process and the hypervisor is split into a device hypervisor and a compute hypervisor. The computer-implemented method further includes providing an interface between the device hypervisor and the compute hypervisor. The compute hypervisor manages an efficient use of CPU and memory of a host and the device hypervisor manages a device connected to the host by exploiting hardware acceleration of the device.
Claims22
A system, comprising:
- a guest user process of a guest having a guest address space, the guest address space having at least a guest kernel and a host kernel, wherein the host kernel is integrated into the guest address space and the guest kernel;
- a native device driver running in a hypervisor of a host, wherein the native device driver has a plurality of entry points;
- a device virtualization using context switching between guest user processes of the guest;
- and
- a virtual device driver which runs on the guest, the virtual device driver cloned from the native device driver;
- and
- the guest user process making a first direct call into an entry point of the plurality of entry points in the native device driver, wherein making the first direct call includes:
- receiving the first direct call at the virtual device driver of the guest from the guest user process calling, by the virtual device driver, into the host;
- receiving the first direct call at the entry point of the native device driver;
- and
- wherein the first direct call does not switch address spaces through a guest trap door page.
A system, comprising:
- a guest user process of a guest having a guest address space, the guest address space having at least a guest kernel;
- a code cache integrated into the guest kernel, wherein a host kernel device address space is dynamically translated and included into the code cache;
- a native device driver running in a hypervisor of a host, wherein the native device driver has a plurality of entry points;
- a device virtualization using context switching between guest user processes of the guest;
- and
- a virtual device driver which runs on the guest, the virtual device driver cloned from the native device driver;
- the guest user process making a first direct call into an entry point of the plurality of entry points in the native device driver, wherein making the first direct call includes:
- receiving the first direct call at the virtual device driver of the guest from the guest user process calling, by the virtual device driver, into the host;
- and
- receiving the first direct call at the entry point of the native device driver.
Dependencies are inferred from the claim text.