Kernel Bus System to Build Virtual Machine Monitor and the Performance Service Framework and Method Therefor
First Claim
1. A kernel bus system for building at least one virtual machine monitor, the kernel bus system is based on a kernel-based virtual machine, the kernel bus system is configured to run on a host computer, the host computer comprising one or more processors, one or more hardware devices, and memory, the kernel bus system comprising:
- a hyperbus;
one or more user space components;
one or more guest space components configured to interact with the one or more user space components via the hyperbus;
one or more virtual machine monitor components comprising;
one or more frontend devices configured to perform one or more first input/output operations with the one or more hardware devices of the host computer using a zero-copy method or a non-pass-thru method; and
one or more para-virtualization components comprising;
a virtual interrupt configured to use one or more processor instructions to swap the one or more processors of the host computer between a kernel space and a guest space; and
a virtual input/output driver configured to enable synchronous input/output signaling, asynchronous input/output signaling, payload delivery, and pass-through delivery substantially independent of an QEMU process emulation,wherein;
the hyperbus, the one or more user space components, the one or more guest space components, the one or more virtual machine monitor components, and the one or more para-virtualization components are configured to run on the one or more processors of the host computer.
0 Assignments
0 Petitions
Accused Products
Abstract
Some embodiments concern a kernel bus system for building at least one virtual machine monitor. The kernel bus system is based on kernel-based virtual machine. The kernel bus system is configured to run on a host computer. The host computer comprising one or more processors, one or more hardware devices, and memory. The kernel bus system can include: (a) a hyperbus; (b) one or more user space components; (c) one or more guest space components configured to interact with the one or more user space components via the hyperbus; (d) one or more VMM components having one or more frontend devices configure to perform I/O operations with the one or more hardware devices of the host computer using a zero-copy method or non-pass-thru method; (e) one or more para-virtualization components having (1) a virtual interrupt configured to use one or more processor instructions to swap the one or more processors of the host computer between a kernel space and a guest space; and (2) a virtual I/O driver configured to enable synchronous I/O signaling, asynchronous I/O signaling and payload delivery, and pass-through delivery independent an QEMU emulation; and (f) one or more KVM components. The hyperbus, the one or more user space components, the one or more guest space components, the one or more VMM components, the one or more para-virtualization components, and the one or more KVM components are configured to run on the one or more processors of the host computer. Other embodiments are disclosed.
-
Citations
20 Claims
-
1. A kernel bus system for building at least one virtual machine monitor, the kernel bus system is based on a kernel-based virtual machine, the kernel bus system is configured to run on a host computer, the host computer comprising one or more processors, one or more hardware devices, and memory, the kernel bus system comprising:
-
a hyperbus; one or more user space components; one or more guest space components configured to interact with the one or more user space components via the hyperbus; one or more virtual machine monitor components comprising; one or more frontend devices configured to perform one or more first input/output operations with the one or more hardware devices of the host computer using a zero-copy method or a non-pass-thru method; and one or more para-virtualization components comprising; a virtual interrupt configured to use one or more processor instructions to swap the one or more processors of the host computer between a kernel space and a guest space; and a virtual input/output driver configured to enable synchronous input/output signaling, asynchronous input/output signaling, payload delivery, and pass-through delivery substantially independent of an QEMU process emulation, wherein; the hyperbus, the one or more user space components, the one or more guest space components, the one or more virtual machine monitor components, and the one or more para-virtualization components are configured to run on the one or more processors of the host computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
wherein; the one or more guest space components comprise one or more virtual machines; the one or more user space components comprise a device manager; the device manager of the one or more user space components is configured to manage the ISA/ABI module using one or more device management functions; the one or more device management functions comprise discovering, assigning, traffic-controlling, and band-binding; and the hyperbus is configured to broadcast the device management functions to the one or more virtual machines of one or more guest space components.
-
-
7. The kernel bus system of claim 1, wherein:
-
the hyperbus comprises one or more policy decision function modules and one or more policy execution point modules; the one or more user space components comprise a policy rule base and a rule base user interface; the one or more policy decision function modules of the hyperbus are configured to receive one or more policies from the rule base user interface of the one or more user space components and make decisions regarding the one or more policies using one or more rules of the policy rule base of the one or more user space components; and the one or more policy execution point modules are configured to execute the policy passed from a policy decision function module.
-
-
8. The kernel bus system of claim 1, wherein:
-
the one or more guest space components comprise one or more virtual machines; the one or more user space components comprise a device manager, a policy rule base, and a rule base user interface; the hyperbus comprises;
a shadow ISA/ABI; and
one or more policy decision function modules;the rule base user interface is configured to allow an administrator to set one or more policies of the one or more policy decision function modules of the hyperbus; the device manager of the one or more user space components is configured to send one or more device management functions to the hyperbus; the one or more device management functions comprise discovering, assigning, traffic-controlling, and band-binding; and the shadow ISA/ABI of the hyperbus is configured to broadcast the one or more device management functions to the one or more virtual machines of the one or more guest space components.
-
-
9. The kernel bus system of claim 1, wherein:
-
the hyperbus comprises a software hash calculator and a hyperbus TCS agent; the software hash calculator is configured to calculate a signed hash value; the hyperbus TCS agent is configured to obtain a stored hash value from at least one of a peripheral device module or a storage module; and the hyperbus TCS agent is further configured to stop execution of the kernel bus system if the stored hash value does not match the signed hash value.
-
-
10. The kernel bus system of claim 1, wherein:
-
the one or more user space components comprise a performance database, a bottleneck identifier, and a workload mediator; the hyperbus comprises one or more policy execution point modules; the one or more policy execution point modules are configured to provide first performance data to the bottleneck identifier; the performance database is configured to store historical performance data and statistical performance data; the bottleneck identifier is configured to at least partially determine bottleneck information using the first performance data, the historical performance data, and the statistical performance data; and the workload mediator is configured as a policy decision function to reconfigure a task time slice based on the bottleneck information provided by the bottleneck identifier.
-
-
11. The kernel bus system of claim 12, wherein:
-
the hyperbus further comprises a radix tree traverser; the radix tree traverser is configured to determine a radix tree; and the radix tree is configured to be used to address the first performance data.
-
-
12. The kernel bus system of claim 1, wherein:
the hyperbus comprises; a local hyperbus configured to run the one or more processors of the host computer; and a networked hyperbus configured to run one or more processors of a remote computer.
-
13. The kernel bus system of claim 1, wherein:
-
the hyperbus comprises; a performance service module configured to enable an administrator to adjust a performance of the host computer; and the one or more user space components comprise; a policy manager; and a user space application library configured to control the performance service module of the hyperbus via the policy manager.
-
-
14. The kernel bus system of claim 1, wherein:
the one or more processor instructions used to swap between the kernel space and the guest space comprise VMExit and VMEntry.
-
15. A method of building at least one virtual machine monitor via a kernel bus system on a host computer, the method comprising:
-
providing a hyperbus configured to run on the host computer; providing one or more user space components configured to run on the host computer; providing one or more guest space components configured to run on the host computer and further configured to interact with the one or more user space components via the hyperbus; providing one or more virtual machine monitor components configured to run on the host computer and comprising; one or more frontend devices configured to perform one or more input/output operations with one or more hardware devices of the host computer using a zero-copy procedure or a non-pass-thru procedure; providing one or more para-virtualization components configured to run on the host computer and comprising; a virtual interrupt configured to use one or more processor instructions to swap one or more processors of the host computer between a kernel space and a guest space; and a virtual input/output driver configured to enable synchronous input/output signaling, asynchronous input/output signaling and payload delivery, and pass-through delivery substantially independent of a QEMU process emulation.
-
-
16. A computer system configured to run on a host computer, the host computer comprising one or more processors, one or more hardware devices, and memory, the computer system comprising:
-
a hyperbus comprising; one or more hyperbus service modules configured to run on the host computer; and one or more hyperbus backend components configured to run on the host computer; and one or more guest space components configured to run on the host computer and comprising; one or more virtual machines comprising one or more virtual machine applications, the one or more virtual machine applications configured to perform one or more input/output operations; one or more virtual machine operating system kernels comprising one or more drivers, the one or more drivers are configured to interact with the one or more hyperbus service modules to facilitate the one or more virtual machines performing the one or more input/output operations; and one or more VIRTIO devices, wherein; the one or more virtual machine operating system kernels of the one or more guest space components are configured to enter the one or more hyperbus backend components using at least one trap instruction; and the one or more hyperbus backend components are configured to choose a code path from one or more code paths to interact with the one or more VIRTIO devices. - View Dependent Claims (17, 18, 19, 20)
wherein; the one or more user space components comprise a performance database, a bottleneck identifier, and a workload mediator; the hyperbus comprises two or more policy execution point modules; the two or more policy execution point modules are configured to provide first performance data to the bottleneck identifier; the performance database is configured to store historical performance data and statistical performance data; the bottleneck identifier is configured to at least partially determine bottleneck information using the first performance data, the historical performance data, and the statistical performance data; and the workload mediator is configured to reconfigure a task time slice based on the bottleneck information provided by the bottleneck identifier.
-
-
20. The computer system of claim 17, wherein:
-
the hyperbus further comprises a radix tree traverser; the radix tree traverser is configured to determine a radix tree; and the first performance data comprise the radix tree.
-
Specification