IP Library Granted Patent US 10,019,282
Granted Patent B1
US 10,019,282 · App. 15/215,893 · Granted Jul 10, 2018

Virtual machine exit processing accelerator

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,019,282
App. No.
15/215,893
Granted
Jul 10, 2018
Kind
B1
Abstract

Systems and methods for implementing a virtual machine (VM) exit processing accelerator. An example method comprises: reading, from a first memory location, a first virtual machine (VM) exit handler address referencing a hypervisor; storing, in a second memory location, the first VM exit handler address; storing, in the first memory location, a second VM exit handler address referencing a VM exit processing accelerator; receiving, by the 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 the first condition, processing the VM exit by the VM exit processing accelerator; and resuming execution of the virtual machine.

Claims (47)

1. A method, comprising:

reading, by a processing device, from a first memory location, a first virtual machine (VM) exit handler address referencing a hypervisor;

storing, in a second memory location, the first VM exit handler address;

storing, in the first memory location, a second VM exit handler address referencing a VM exit processing accelerator;

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

resuming execution of the virtual machine.

2. The method of claim 1 , wherein the hypervisor is provided by a thin hypervisor providing an interface between the virtual machine and a virtualization application being executed in a non-privileged execution mode.

3. The method of claim 1 , wherein the first memory location is represented by a first field of a virtual machine control structure (VMCS) associated with the virtual machine.

4. 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 a second field of a virtual machine control structure (VMCS) associated with the virtual machine.

5. The method of claim 1 , further comprising:

responsive to determining that the identifier of the reason of the VM exit satisfies a second condition, transferring control to the first VM exit handler address saved in the second memory location.

6. The method of claim 1 , wherein the VM exit processing accelerator is executed in a privileged execution mode of the processing device.

7. The method of claim 1 , further comprising:

storing, in a third memory location, the second VM exit handler address; and

storing, in the first memory location, a third VM exit handler address referencing a second VM exit processing accelerator.

8. A system, comprising:

a memory; and

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

read, from a first memory location, a first virtual machine (VM) exit handler address referencing a hypervisor;

store in a second memory location, the first VM exit handler address;

store, in the first memory location, a second VM exit handler address referencing a VM exit processing accelerator;

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

resume execution of the virtual machine.

9. The system of claim 8 , wherein the hypervisor is provided by a thin hypervisor providing an interface between the virtual machine and a virtualization application being executed in a non-privileged execution mode.

10. The system of claim 8 , wherein the first memory location is represented by a first field of a virtual machine control structure (VMCS) associated with the virtual machine.

11. 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 second field of a virtual machine control structure (VMCS) associated with the virtual machine.

12. The system of claim 8 , 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, transfer control to the first VM exit handler address saved in the second memory location.

13. The system of claim 8 , wherein the VM exit processing accelerator is executed in a privileged execution mode of the processing device.

14. The system of claim 8 , wherein the processing device is further configured to:

store, in a third memory location, the second VM exit handler address; and

store, in the first memory location, a third VM exit handler address referencing a second VM exit processing accelerator.

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

read, from a first memory location, a first virtual machine (VM) exit handler address referencing a hypervisor;

store, in a second memory location, the first VM exit handler address;

store, in the first memory location, a second VM exit handler address referencing a VM exit processing accelerator;

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

resume execution of the virtual machine.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the hypervisor is provided by a thin hypervisor providing an interface between the virtual machine and a virtualization application being executed in a non-privileged execution mode.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the first memory location is represented by a first field of a virtual machine control structure (VMCS) associated with the virtual machine.

18. The non-transitory computer-readable storage medium of claim 15 , wherein determining that the identifier of the reason of the VM exit satisfies the first condition further comprises reading the identifier from a second field of a virtual machine control structure (VMCS) associated with the virtual machine.

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

responsive to determining that the identifier of the reason of the VM exit satisfies a second condition, transfer control to the first VM exit handler address saved in the second memory location.

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

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2018
From: PARALLELS IP HOLDINGS GMBH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 045207/0274 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2016
From: NAENKO, ANDREY N.; KORYAKIN, ALEXEY B.; DOBROVOLSKIY, NIKOLAY N.; BELOUSSOV, SERGUEI M.
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 039247/0573 →