# US 10,481,941 B1 · Virtual machine exit processing accelerator

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,481,941 B1
- Document ID: US10481941B1
- Status: Granted
- Kind: B1
- Application number: 15/962,238
- Filed: 2018-04-25
- Granted: 2019-11-19
- Earliest claimed: 2016-07-21
- Assignees: Parallels International GmbH
- Applicants: Parallels International GmbH
- Inventors: Andrey N. Naenko; Alexey B. Koryakin; Nikolay N. Dobrovolskiy; Serguei M. Beloussov
- Web page: https://patentgrep.com/patent/US10481941B1

## CPC

- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4812: {by interrupt, e.g. masked}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
installing a second VM exit processing accelerator in a chained fashion.

### Claim 4 (depends on 3)

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.

### Claim 5 (depends on 3)

The method of claim 3, further comprising:
processing the VM exit by the second VM exit processing accelerator.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 9)

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.

### Claim 11 (depends on 9)

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.

### Claim 12 (depends on 9)

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.

### Claim 13 (depends on 8)

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.

### Claim 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.

### Claim 15 (depends on 14)

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.

### Claim 16 (depends on 14)

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.

### Claim 17 (depends on 16)

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.
