IP Library Granted Patent US 10,481,941
Granted Patent B1
US 10,481,941 · App. 15/962,238 · Granted Nov 19, 2019

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,481,941
App. No.
15/962,238
Granted
Nov 19, 2019
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 (44)

1. A method, comprising:

storing, in a memory location, a VM exit handler address specified by a Virtual Machine Control Structure (VMCS) 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 Virtual Machine Control Structure (VMCS), 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 virtual machine control structure (VMCS) associated with the virtual machine.

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:

install a first VM exit processing accelerator and a second VM exit processing accelerator in a chained fashion;

intercept, by the second 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 second VM exit processing accelerator; and

resume execution of the virtual machine.

9. The system of claim 8 , wherein intercepting the VM exit further comprises:

storing, in a memory location, a VM exit handler address specified by a Virtual Machine Control Structure (VMCS) associated with the virtual machine.

10. The system of claim 9 , 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 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 system of claim 9 , wherein installing the second VM exit processing accelerator further comprises:

storing, in a memory location, a VM exit handler address specified by a Virtual Machine Control Structure (VMCS) associated with the virtual machine; and

storing, in the Virtual Machine Control Structure (VMCS), an address of the second VM exit processing accelerator.

12. The system of claim 9 , 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 first VM exit processing accelerator.

13. The system of claim 8 , wherein determining that the identifier of the reason of the VM exit satisfies the first condition further comprises reading the identifier from a virtual machine control structure (VMCS) associated with the virtual machine.

14. 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 VM exit handler address specified by a Virtual Machine Control Structure (VMCS) 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.

15. The non-transitory computer-readable storage medium of claim 14 , further comprising executable instructions that cause the processing device to:

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.

16. The non-transitory computer-readable storage medium of claim 14 , further comprising executable instructions that cause the processing device to:

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

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

storing, in a memory location, a VM exit handler address specified by a Virtual Machine Control Structure (VMCS) associated with the virtual machine; and

storing, in the Virtual Machine Control Structure (VMCS), an address of the second VM exit processing accelerator.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
CHANGE OF NAME Recorded May 1, 2018
From: PARALLELS IP HOLDINGS GMBH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 045682/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2018
From: NAENKO, ANDREY N.; KORYAKIN, ALEXEY B.; DOBROVOLSKIY, NIKOLAY N.; BELOUSSOV, SERGUEI M.
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 045666/0599 →
Continuity (1)
Continuation 15215893 · Jul 21, 2016