# US 9,436,576 B2 · Methods, systems and apparatus to capture error conditions in lightweight virtual machine managers

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

- Number: US 9,436,576 B2
- Document ID: US9436576B2
- Status: Granted
- Kind: B2
- Application number: 13/993,257
- Filed: 2012-06-29
- Published: 2014-01-02
- Granted: 2016-09-06
- Earliest claimed: 2012-06-29
- Assignees: Intel Corporation
- Applicants: Bing Zhu; Peng Zou; Madhukar Tallam; Luhai Chen; Kai Wang
- Inventors: Bing Zhu; Peng Zou; Madhukar Tallam; Luhai Chen; Kai Wang
- Web page: https://patentgrep.com/patent/US9436576B2

## CPC

- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 11/0712: {in a virtual computing platform, e.g. logically partitioned systems}
- G06F 11/0778: {Dumping, i.e. gathering error/state information after a fault for later diagnosis}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and apparatus are disclosed to capture error conditions in lightweight virtual machine managers. A disclosed example method includes defining a shared memory structure between the VMM and a virtual machine (VM), when the VM is spawned by the VMM, installing an abort handler on the VM associated with a vector value, in response to detecting an error, transferring VMM state information to the shared memory structure, and invoking the abort handler on the VM to transfer contents of the shared memory structure to a non-volatile memory.

## Claims

### Claim 1

A method to capture error information from a virtual machine manager (VMM), comprising:
defining a shared memory structure between the VMM and a virtual machine (VM) at a first time, the VMM without file system access support at the first time;
when the VM is spawned by the VMM, installing an abort handler on the VM associated with a vector value;
in response to detecting an error of the VMM at a second time, transferring VMM state information to the shared memory structure to enable access to a file system for the VMM at the second time; and
preserving the VMM state information in a non-volatile memory at the second time by invoking the abort handler on the VM associated with the vector value to transfer the VMM state information in the shared memory structure via the file system.

### Claim 2 (depends on 1)

A method as defined in claim 1, wherein the detected error is caused by the VMM.

### Claim 3 (depends on 1)

A method as defined in claim 1, wherein the shared memory structure includes random access memory (RAM).

### Claim 4 (depends on 3)

A method as defined in claim 3, further including configuring the RAM with read-only access for the VM.

### Claim 5 (depends on 1)

A method as defined in claim 1, further including configuring an interrupt description table to store the vector value.

### Claim 6 (depends on 1)

A method as defined in claim 1, further including determining a severity of the error.

### Claim 7 (depends on 6)

A method as defined in claim 6, further including gathering a first resolution of the error information when the severity is of a first level, and gathering a second resolution of the error information when the severity is of a second level.

### Claim 8 (depends on 1)

A method as defined in claim 1, wherein the VM includes a guest operating system.

### Claim 9 (depends on 1)

A method as defined in claim 1, further including invoking the abort handler via VMX instructions.

### Claim 10 (depends on 9)

A method as defined in claim 9, wherein the VMX instructions are associated with entry-interruption-information fields.

### Claim 11 (depends on 10)

A method as defined in claim 10, wherein the fields are tailored to include the vector value.

### Claim 12

An apparatus to capture error information from a virtual machine manager (VMM), comprising:
a host storage manager to define a shared memory structure between the VMM and a virtual machine (VM) at a first time, the VMM without file system access support at the first time;
a guest abort handler to install an abort handler on the VM associated with a vector value when the VM is spawned by the VMM;
a host error handler to transfer VMM state information to the shared memory structure in response to detecting an error of the VMM at the second time to enable access to a file system for the VMM at the second time; and
an exception event injector to preserve the VMM state information in a non-volatile memory at the second time by invoking the guest abort handler on the VM associated with the vector value to transfer the VMM state information in the shared memory structure via the file system.

### Claim 13 (depends on 12)

An apparatus as defined in claim 12, wherein the shared memory structure includes random access memory (RAM).

### Claim 14 (depends on 13)

An apparatus as defined in claim 13, wherein the host error handler is to configure the RAM with read-only access for the VM.

### Claim 15 (depends on 12)

An apparatus as defined in claim 12, further including a guest operating system (OS) vector table manager to configure an interrupt description table to store the vector value.

### Claim 16 (depends on 12)

An apparatus as defined in claim 12, further including a host exception monitor to determine a severity of the error.

### Claim 17 (depends on 16)

An apparatus as defined in claim 16, further including a host state collector to gather a first resolution of the error information when the severity is of a first level, and to gather a second resolution of the error information when the severity is of a second level.

### Claim 18

A tangible machine readable storage medium comprising instructions that, when executed, cause a machine to, at least:
define a shared memory structure between the VMM and a virtual machine (VM) at a first time, the VMM without file system access support at the first time;
when the VM is spawned by the VMM, install an abort handler on the VM associated with a vector value;
in response to detecting an error of the VMM at a second time, transfer VMM state information to the shared memory structure to enable access to a file system for the VMM at the second time; and
preserve the VMM state information in a non-volatile memory at the second time by invoking the abort handler on the VM associated with the vector value to transfer the VMM state information in the shared memory structure via the file system.

### Claim 19 (depends on 18)

A machine readable storage medium as defined in claim 18, wherein the instructions, when executed, cause the machine to configure an interrupt description table to store the vector table.

### Claim 20 (depends on 18)

A machine readable storage medium as defined in claim 18, wherein the instructions, when executed, cause the machine to determine a severity of the error.

### Claim 21 (depends on 20)

A machine readable storage medium as defined in claim 20, wherein the instructions, when executed, cause the machine to gather a first resolution of the error information when the severity is of a first level, and to gather a second resolution of the error information when the severity is of a second level.

### Claim 22 (depends on 18)

A machine readable storage medium as defined in claim 18, wherein the instructions, when executed, cause the machine to invoke the abort handler via VMX instructions.

### Claim 23 (depends on 22)

A machine readable storage medium as defined in claim 22, wherein the instructions, when executed, cause the machine to associate the VMX instructions with entry-interruption-information fields.

### Claim 24 (depends on 23)

A machine readable storage medium as defined in claim 23, wherein the instructions, when executed, cause the machine to tailor the fields to include the vector value.
