Hypercall acceleration for nested virtual machines
AssigneeRed Hat, Inc.
InventorsMichael Tsirkin, Karen Noel
Life of this patent
Estimating the term…
Abstract
Systems and methods for accelerating hypercalls for nested virtual machines. An example method may comprise executing, by a host computer system, a Level 0 hypervisor managing a Level 1 virtual machine (VM). The Level 0 hypervisor receives a first function component from a Level 2 hypervisor managing a Level 3 VM, where the first function component performs a first functionality associated with a hypercall issued by the Level 3 VM; stores the first function component in a memory space associated with the Level 0 hypervisor; detects the hypercall issued by the Level 3 VM; and responsive to detecting the hypercall, executes the first function component to modify a VM context for the Level 3 VM.
Claims18
A method comprising:
- executing, by a host computer system, a Level 0 hypervisor managing a Level 1 virtual machine (VM);
- receiving, by a Level 1 hypervisor managing a Level 2 VM, a first function component from a Level 2 hypervisor managing a Level 3 VM, wherein the first function component comprises a first set of instructions performing a first functionality associated with a hypercall issued by the Level 3 VM;
- generating, by the Level 1 hypervisor, a second function component that performs a second functionality associated with the hypercall issued by the Level 2 VM, and wherein the second function component translates the first functionality to the second functionality;
- chaining, by the Level 1 hypervisor, the first function component with the second function component to generate a chain of function components;
- and
- providing the chain of function components to the Level 0 hypervisor to cause the Level 0 hypervisor to store the chain of function components in a memory space associated with the level 0 hypervisor.
A system comprising:
- a memory;
- and
- a processing device, operatively coupled to the memory, the processing device to:
- execute, by a host computer system, a Level 0 hypervisor managing a Level 1 virtual machine (VM);
- receive, by a Level 1 hypervisor managing a Level 2 VM, a first function component from a Level 2 hypervisor managing a Level 3 VM, wherein the first function component comprises a first set of instructions performing a first functionality associated with a hypercall issued by the Level 3 VM;
- generate, by the Level 1 hypervisor, a second function component that performs a second functionality associated with the hypercall issued by the Level 2 VM, and wherein the second function component translates the first functionality to the second functionality;
- chain, by the Level 1 hypervisor, the first function component with the second function component to generate a chain of function components;
- and
- provide the chain of function components to the Level 0 hypervisor to cause the Level 0 hypervisor to store the chain of function components in a memory space associated with the level 0 hypervisor.
A non-transitory computer readable storage medium comprising instructions, which when accessed by a processing device, cause the processing device to:
- execute, by a host computer system, a Level 0 hypervisor managing a Level 1 virtual machine (VM);
- receive, by a Level 1 hypervisor managing a Level 2 VM, a first function component from a Level 2 hypervisor managing a Level 3 VM, wherein the first function component comprises a first set of instructions performing a first functionality associated with a hypercall issued by the Level 3 VM;
- generate, by the Level 1 hypervisor, a second function component that performs a second functionality associated with the hypercall issued by the Level 2 VM, and wherein the second function component translates the first functionality to the second functionality;
- chain, by the Level 1 hypervisor, the first function component with the second function component to generate a chain of function components;
- and
- provide the chain of function components to the Level 0 hypervisor to cause the Level 0 hypervisor to store the chain of function components in a memory space associated with the level 0 hypervisor.
Dependencies are inferred from the claim text.