IP Library Granted Patent US 7,840,962
Granted Patent B2
US 7,840,962 · App. 10/956,239 · Granted Nov 23, 2010

System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time

Assignee: Intel Corporation
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 7,840,962
App. No.
10/956,239
Granted
Nov 23, 2010
Kind
B2
Abstract

In one embodiment, a method includes transitioning control to a virtual machine (VM) from a virtual machine monitor (VMM), determining that a VMM timer indicator is set to an enabling value, and identifying a VMM timer value configured by the VMM. The method further includes periodically comparing a current value of a timing source with the VMM timer value, generating an internal event if the current value of the timing source has reached the VMM timer value, and transitioning control to the VMM in response to the internal event without incurring an event handling procedure in any one of the VMM and the VM.

Claims (70)

1. A computer-implemented method comprising:

receiving a request for a virtual machine (VM) entry, the VM entry request including a request for transitioning control from a virtual machine monitor (VMM) to a VM, the VMM having a timer configuration module including a VMM timer indicator;

determining whether the VMM timer indicator is set to an enabling value indicating the timer configuration module is enabled to, if necessary, gain control back from the VM during an operation at the VM;

if the VMM timer indicator is set to an enabling value,

identifying a VMM timer value configured by the VMM prior to receiving the VM entry request, the VMM timer value representing a specific time at which the VMM is to receive the control back from the VM, and

enabling the VMM timer using the VMM timer value, and

transitioning control to the VM;

if the VMM timer indicator is not set to an enabling value,

transitioning control to the VM;

executing a VM exit by returning the control back to the VMM from the VM in response to an event relating to the VM exit occurring at the VM.

2. The computer-implemented method of claim 1 , further comprising storing the VMM timer value at a virtual machine control structure (VMCS).

3. The computer-implemented method of claim 1 , further comprising:

periodically comparing a current value of the timing source with the VMM timer value after each cycle executed by the VM; and

returning the control back to the VMM from the VM when the current value reaches the VMM timer value.

4. The method of claim 1 , further comprising:

disabling the VMM timer upon the occurrence of a VM exit event.

5. The method of claim 1 , further comprising:

indicating the VM exit was caused by the VMM timer when the VM exit event is a VMM timer event.

6. A machine-readable non-transitory storage medium comprising instructions which, when executed, cause a machine to:

receive a request for a virtual machine (VM) entry, the VM entry request including a request for transitioning control from a virtual machine monitor (VMM) to a VM, the VMM having a timer configuration module including a VMM timer indicator;

determine whether the VMM timer indicator is set to an enabling value indicating the timer configuration module is enabled to, if necessary, gain control back from the VM during an operation at the VM;

if the VMM timer indicator is set to an enabling value,

identify a VMM timer value configured by the VMM prior to receiving the VM entry request, the VMM timer value representing a specific time at which the VMM is to receive the control back from the VM, and

enable the VMM timer using the VMM timer value, and

transitioning control to the VM;

if the VMM timer indicator is not set to an enabling value,

transition control to the VM;

execute a VM exit by returning the control back to the VMM from the VM in response to an event relating to the VM exit occurring at the VM.

7. The machine-readable storage medium of claim 6 , wherein the instructions that when executed, further cause the machine to store the VMM timer value at a virtual machine control structure (VMCS).

8. The machine-readable storage medium of claim 6 , wherein the instructions that when executed, further cause the machine to:

periodically compare a current value of the timing source with the VMM timer value after each cycle executed by the VM; and

return the control back to the VMM from the VM when the current value reaches the VMM timer value.

9. The machine-readable storage medium of claim 6 , wherein the instructions further comprise instructions which, when executed cause a machine to:

disable the VMM timer upon the occurrence of a VM exit event.

10. The machine-readable storage medium of claim 6 , wherein the instructions further comprise instructions which, when executed cause a machine to:

indicate the VM exit was caused by the VMM timer when the VM exit event is a VMM timer event.

11. A computer system comprising:

a non-transitory storage medium having a virtual machine control structure (VMCS); and

a processor coupled to the storage medium, the processor having a virtual machine memory (VMM) timer support logic and in communication with a VMM having a timer configuration module, the processor further in communication with a virtual machine (VM) and, during operation of the VM and the VMM, the processor to:

receive a request for a virtual machine (VM) entry, the VM entry request including a request for transitioning control from a virtual machine monitor (VMM) to a VM, the VMM having a timer configuration module including a VMM timer indicator;

determine whether the VMM timer indicator is set to an enabling value indicating the timer configuration module is enabled to, if necessary, gain control back from the VM during an operation at the VM;

if the VMM timer indicator is set to an enabling value,

identify a VMM timer value configured by the VMM prior to receiving the VM entry request, the VMM timer value representing a specific time at which the VMM is to receive the control back from the VM, and

enable the VMM timer using the VMM timer value, and

transitioning control to the VM;

if the VMM timer indicator is not set to an enabling value,

transition control to the VM;

execute a VM exit by returning the control back to the VMM from the VM in response to an event relating to the VM exit occurring at the VM.

12. The computer system of claim 11 , wherein the processor is further to store the VMM timer value at the virtual machine control structure (VMCS).

13. The computer system of claim 11 , wherein the processor is further to:

periodically compare a current value of the timing source with the VMM timer value after each cycle executed by the VM; and

return the control back to the VMM from the VM when the current value reaches the VMM timer value.

14. The computer system of claim 11 , wherein the processor further to:

disable the VMM timer upon the occurrence of a VM exit event.

15. The computer system of claim 11 , wherein the processor further to:

indicate the VM exit was caused by the VMM timer when the VM exit event is a VMM timer event.

16. An apparatus comprising:

a processor, during operation of a virtual machine (VM) and a virtual machine monitor (VMM), to:

receive a request for a virtual machine (VM) entry, the VM entry request including a request for transitioning control from a virtual machine monitor (VMM) to a VM, the VMM having a timer configuration module including a VMM timer indicator;

determine whether the VMM timer indicator is set to an enabling value indicating the timer configuration module is enabled to, if necessary, gain control back from the VM during an operation at the VM;

if the VMM timer indicator is set to an enabling value,

identify a VMM timer value configured by the VMM prior to receiving the VM entry request, the VMM timer value representing a specific time at which the VMM is to receive the control back from the VM, and

enable the VMM timer using the VMM timer value, and transitioning control to the VM;

if the VMM timer indicator is not set to an enabling value,

transition control to the VM;

execute a VM exit by returning the control back to the VMM from the VM in response to an event relating to the VM exit occurring at the VM.

17. The apparatus of claim 16 , wherein the processor is further to store the VMM timer value at a virtual machine control structure (VMCS).

18. The apparatus of claim 16 , wherein the processor is further to:

periodically compare a current value of the timing source with the VMM timer value after each cycle executed by the VM; and

return the control back to the VMM from the VM when the current value reaches the VMM timer value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2005
From: HALL, CLIFFORD D.; RODGERS, DION; KOZUCH, MICHAEL
To: INTEL CORPORATION
Reel/Frame 016156/0889 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2004
From: NEIGER, GILBERT; BENNETT, STEVEN M.; COTA-ROBLES, ERIK; SCHOENBERG, SEBASTIAN; SMITH, LAWRENCE O.; ANDERSON, ANDREW V.; UHLIG, RICHARD; GLEW, ANDY
To: INTEL CORPORATION
Reel/Frame 015867/0795 →
Continuity (1)
Related Publication 20060075402A1 · Apr 6, 2006