IP Library Granted Patent US 10,884,782
Granted Patent B1
US 10,884,782 · App. 16/591,615 · Granted Jan 5, 2021

Virtual machine exit processing accelerator

Inventors: Andrey N. Naenko (Moscow, RU); Alexey B. Koryakin (Moscow, RU); Nikolay N. Dobrovolskiy (Moscow, RU); Serguei M. Beloussov (Singapore, SG)
Assignee: Parallels International GmbH
G06F9/45558G06F2009/45575G06F2009/45579
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 10,884,782
App. No.
16/591,615
Granted
Jan 5, 2021
Kind
B1
Abstract

Systems and methods for implementing a virtual machine (VM) exit processing accelerator. An example method comprises: intercepting, by a VM exit processing accelerator, a VM exit associated with the virtual machine; responsive to determining that an identifier of a reason of the VM exit satisfies a first condition, processing the VM exit by the VM exit processing accelerator; and resuming execution of the virtual machine.

Claims (65)

1. A method, comprising:

storing, in a memory location, a virtual machine (VM) exit handler address specified by a processor-specific data structure associated with a virtual machine;

intercepting, by a VM exit processing accelerator, a VM exit associated with the virtual machine;

responsive to determining that an identifier of a reason of the VM exit satisfies a first condition, processing the VM exit by the VM exit processing accelerator; and

resuming execution of the virtual machine.

2. The method of claim 1 , further comprising:

responsive to determining that the identifier of the reason of the VM exit satisfies a second condition, processing the VM exit by a thin hypervisor referenced by the VM exit handler address stored in the memory location, wherein the thin hypervisor provides an interface between the virtual machine and a virtualization application being executed in a non-privileged execution mode.

3. The method of claim 1 , further comprising:

installing a second VM exit processing accelerator in a chained fashion.

4. The method of claim 3 , wherein

installing the second VM exit processing accelerator further comprises:

storing, in the processor-specific data structure, an address of the second VM exit processing accelerator.

5. The method of claim 3 , further comprising:

processing the VM exit by the second VM exit processing accelerator.

6. The method of claim 1 , wherein

determining that the identifier of the reason of the VM exit satisfies the first condition further comprises reading the identifier from the processor-specific data structure.

7. The method of claim 1 , wherein

the VM exit processing accelerator is executed in a privileged execution mode.

8. A system, comprising:

a memory; and

a processing device coupled to the memory, the processing device configured to:

intercept, by a virtual machine (VM) exit processing accelerator, a VM exit associated with a virtual machine;

responsive to determining that an identifier of a reason of the VM exit satisfies a first condition, process the VM exit by a thin hypervisor, wherein the thin hypervisor provides an interface between the virtual machine and a virtualization application running in a non-privileged execution mode; and

resume execution of the virtual machine; wherein

intercepting the VM exit further comprises storing, in a memory location, a VM exit handler address specified by a processor-specific data structure associated with the virtual machine.

9. A non-transitory computer-readable storage medium comprising executable instructions that, when executed by a processing device, cause the processing device to:

store, in a memory location, a virtual machine (VM) exit handler address specified by a processor-specific data structure associated with a virtual machine;

intercept, by a VM exit processing accelerator, a VM exit associated with the virtual machine;

responsive to determining that an identifier of a reason of the VM exit satisfies a first condition, process the VM exit by the VM exit processing accelerator; and

resume execution of the virtual machine.

10. The non-transitory computer-readable storage medium of claim 9 , further comprising executable instructions that, when executed by the processing device, cause the processing device to:

responsive to determining that the identifier of the reason of the VM exit satisfies a second condition, process the VM exit by a thin hypervisor referenced by the VM exit handler address stored in the memory location, wherein the thin hypervisor provides an interface between the virtual machine and a virtualization application being executed in a non-privileged execution mode.

11. The non-transitory computer-readable storage medium of claim 9 , further comprising executable instructions that, when executed by the processing device, cause the processing device to:

install a second VM exit processing accelerator in a chained fashion.

12. The non-transitory computer-readable storage medium of claim 11 , wherein installing the second VM exit processing accelerator further comprises:

store, in the processor-specific data structure, an address of the second VM exit processing accelerator.

13. The non-transitory computer-readable storage medium of claim 11 , further comprising executable instructions that, when executed by the processing device, cause the processing device to:

process the VM exit by the second VM exit processing accelerator.

14. The non-transitory computer-readable storage medium of claim 9 , wherein determining that the identifier of the reason of the VM exit satisfies the first condition further comprises reading the identifier from the processor-specific data structure.

15. The non-transitory computer-readable storage medium of claim 9 , wherein the VM exit processing accelerator is executed in a privileged execution mode.

16. A system, comprising:

a memory; and

a processing device coupled to the memory, the processing device configured to:

intercept, by a virtual machine (VM) exit processing accelerator, a VM exit associated with a virtual machine;

responsive to determining that an identifier of a reason of the VM exit satisfies a first condition, process the VM exit by a thin hypervisor, wherein the thin hypervisor provides an interface between the virtual machine and a virtualization application running in a non-privileged execution mode; and

resume execution of the virtual machine; wherein

the processing device is further configured to responsive to determining that the identifier of the reason of the VM exit satisfies a second condition, process the VM exit by the VM exit accelerator.

17. A system, comprising:

a memory; and

a processing device coupled to the memory, the processing device configured to:

intercept, by a virtual machine (VM) exit processing accelerator, a VM exit associated with a virtual machine;

responsive to determining that an identifier of a reason of the VM exit satisfies a first condition, process the VM exit by a thin hypervisor, wherein the thin hypervisor provides an interface between the virtual machine and a virtualization application running in a non-privileged execution mode; and

resume execution of the virtual machine; wherein

the processing device is further configured to install a second VM exit processing accelerator in a chained fashion; and

installing the second VM exit processing accelerator comprises:

storing, in a memory location, a VM exit handler address specified by the processor-specific data structure; and

storing, in the processor-specific data structure, an address of the second VM exit processing accelerator.

18. A system, comprising:

a memory; and

a processing device coupled to the memory, the processing device configured to:

intercept, by a virtual machine (VM) exit processing accelerator, a VM exit associated with a virtual machine;

responsive to determining that an identifier of a reason of the VM exit satisfies a first condition, process the VM exit by a thin hypervisor, wherein the thin hypervisor provides an interface between the virtual machine and a virtualization application running in a non-privileged execution mode; and

resume execution of the virtual machine; wherein

intercepting the VM exit further comprises storing, in a memory location, a VM exit handler address specified by a processor-specific data structure associated with the virtual machine; and

determining that the identifier of the reason of the VM exit satisfies the first condition further comprises reading the identifier from the processor-specific data structure.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2019
From: NAENKO, ANDREY N.; KORYAKIN, ALEXEY B.; DOBROVOLSKIY, NIKOLAY N.; BELOUSSOV, SERGUEI M.
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 050614/0670 →
CHANGE OF NAME Recorded Oct 3, 2019
From: PARALLELS IP HOLDINGS GMBH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 050614/0693 →
Continuity (2)
Continuation 15962238 · Apr 25, 2018
Continuation 15215893 · Jul 21, 2016
Cited By (1)
US 12,613,726