IP Library Granted Patent US 10,169,269
Granted Patent B2
US 10,169,269 · App. 15/391,182 · Granted Jan 1, 2019

Architecture and method for managing interrupts in a virtualized environment

Inventors: James A. Coleman (Mesa, AZ); Scott M. Oehrlein (Chandler, AZ)
Assignee: INTEL CORPORATION
G06F13/24G06F9/45533G06F9/45558G06F9/4812G06F2009/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,169,269
App. No.
15/391,182
Granted
Jan 1, 2019
Kind
B2
Abstract

A method may comprise identifying a signal indicating real-time mode operation for a guest operating system (OS) and directly routing an interrupt for a first processor to the guest OS while the guest OS is running without causing a transition from execution by the guest OS to execution by a host system. Other embodiments are disclosed and claimed.

Claims (58)

1. A system to manage interrupts, comprising:

a processor; and

a non-transitory computer readable medium to store a set of instructions for execution by the processor, the set of instructions to cause the processor to:

receive an interrupt for a virtual machine (VM);

determine whether the VM is in a first mode of operation or a second mode of operation;

route the interrupt directly to a processor core for the VM and bypass a hypervisor when the VM is in the first mode of operation;

route the interrupt to the hypervisor for the VM when the VM is in the second mode of operation;

receive an end-of-interrupt (EOI) for the interrupt, the EOI to indicate completion of interrupt processing of the interrupt by the VM; and

determine whether a VM exit event is to occur based on a bit value stored in a register in response to the received EOI, the VM exit event to transition execution of an instruction by the VM to execution by the processor core or the hypervisor.

2. The system of claim 1 , the set of instructions comprising instructions to cause the processor to receive the interrupt for a guest operating system (OS) of the VM.

3. The system of claim 1 , the set of instructions comprising instructions to cause the processor to determine whether the interrupt causes the VM exit event based on the bit value stored in the register.

4. The system of claim 1 , the set of instructions comprising instructions to cause the processor to forward the interrupt to the processor core as an inter-processor interrupt (IPI) to mimic the interrupt and cause delivery of the IPI directly to the VM.

5. The system of claim 3 , the set of instructions comprising instructions to cause the processor to determine whether the interrupt causes the VM exit based on the bit value stored in the register of a virtual machine control structure (VMCS).

6. The system of claim 3 , wherein the bit value is an external-interrupt exiting (EIE) value.

7. The system of claim 3 , wherein the bit value is an external-interrupt exiting value, a virtualize APIC accesses value, a use task priority register value shadow value, an EOI bitmap value, an APIC-register virtualization value, or a halt exiting value.

8. The system of claim 3 , the set of instructions comprising instructions to cause the processor to clear the bit value in a virtual machine control structure (VMCS) that indicates an external interrupt is to generate a VM exit event wherein a transition from execution by the VM to execution by the processor core occurs.

9. A method to manage interrupts, comprising:

receiving an interrupt for a virtual machine (VM);

determining whether the VM is in a first mode of operation or a second mode of operation;

routing the interrupt directly to a processor core for the VM and bypass a hypervisor when the VM is in the first mode of operation;

routing the interrupt to the hypervisor for the VM when the VM is in the second mode of operation;

receiving an end-of-interrupt (EOI) for the interrupt, the EOI to indicate completion of interrupt processing of the interrupt by the VM; and

determining whether a VM exit event is to occur based on a bit value stored in a register in response to the received EOI, the VM exit event to transition execution of an instruction by the VM to execution by the processor core or the hypervisor.

10. The method of claim 9 , comprising receiving the interrupt for a guest operating system (OS) of the VM.

11. The method of claim 9 , comprising determining whether the interrupt causes the VM exit event based on the bit value stored in the register.

12. The method of claim 9 , comprising forwarding the interrupt to the processor core as an inter-processor interrupt (IPI) to mimic the interrupt and cause delivery of the IPI directly to the VM.

13. The method of claim 11 , comprising determining whether the interrupt causes the VM exit based on the bit value stored in the register of a virtual machine control structure (VMCS).

14. The method of claim 11 , wherein the bit value is an external-interrupt exiting (EIE) value.

15. The method of claim 11 , wherein the bit value is an external-interrupt exiting value, a virtualize APIC accesses value, a use task priority register value shadow value, an EOI bitmap value, an APIC-register virtualization value, or a halt exiting value.

16. The method of claim 11 , comprising clearing the bit value in a virtual machine control structure (VMCS) that indicates an external interrupt is to generate a VM exit event wherein a transition from execution by the VM to execution by the processor core occurs.

17. An apparatus to manage interrupts, comprising:

means for receiving an interrupt for a virtual machine (VM);

means for determining whether the VM is in a first mode of operation or a second mode of operation;

means for routing the interrupt directly to a processor core for the VM and bypass a hypervisor when the VM is in the first mode of operation;

means for routing the interrupt to the hypervisor for the VM when the VM is in the second mode of operation;

means for receiving an end-of-interrupt (EOI) for the interrupt, the EOI to indicate completion of interrupt processing of the interrupt by the VM; and

means for determining whether a VM exit event is to occur based on a bit value stored in a register in response to the received EOI, the VM exit event to transition execution of an instruction by the VM to execution by the processor core or the hypervisor.

18. The apparatus of claim 17 , comprising means for receiving the interrupt for a guest operating system (OS) of the VM.

19. The apparatus of claim 17 , comprising means for determining whether the interrupt causes the VM exit event based on the bit value stored in the register.

20. The apparatus of claim 17 , comprising means for forwarding the interrupt to the processor core as an inter-processor interrupt (IPI) to mimic the interrupt and cause delivery of the IPI directly to the VM.

21. The apparatus of claim 19 , comprising means for determining whether the interrupt causes the VM exit based on the bit value stored in the register of a virtual machine control structure (VMCS).

22. The apparatus of claim 19 , wherein the bit value is an external-interrupt exiting (EIE) value.

23. The apparatus of claim 19 , wherein the bit value is an external-interrupt exiting value, a virtualize APIC accesses value, a use task priority register value shadow value, an EOI bitmap value, an APIC-register virtualization value, or a halt exiting value.

24. The apparatus of claim 19 , comprising means for clearing the bit value in a virtual machine control structure (VMCS) that indicates an external interrupt is to generate a VM exit event wherein a transition from execution by the VM to execution by the processor core occurs.

25. At least one non-transitory computer-readable storage medium comprising instructions that, when executed, cause a system to:

receive an interrupt for a virtual machine (VM);

determine whether the VM is in a first mode of operation or a second mode of operation;

route the interrupt directly to a processor core for the VM and bypass a hypervisor when the VM is in the first mode of operation;

route the interrupt to the hypervisor for the VM when the VM is in the second mode of operation;

receive an end-of-interrupt (EOI) for the interrupt, the EOI to indicate completion of interrupt processing of the interrupt by the VM; and

determine whether a VM exit event is to occur based on a bit value stored in a register in response to the received EOI, the VM exit event to transition execution of an instruction by the VM to execution by the processor core or the hypervisor.

26. The at least one non-transitory computer-readable storage medium of claim 25 , comprising instructions that when executed cause the system to receive the interrupt for a guest operating system (OS) of the VM.

27. The at least one non-transitory computer-readable storage medium of claim 25 , comprising instructions that when executed cause the system to determine whether the interrupt causes the VM exit event based on the bit value stored in the register.

28. The at least one non-transitory computer-readable storage medium of claim 25 , comprising instructions that when executed cause the system to forward the interrupt to the processor core as an inter-processor interrupt (IPI) to mimic the interrupt and cause delivery of the IPI directly to the VM.

29. The at least one non-transitory computer-readable storage medium of claim 27 , comprising instructions that when executed cause the system to determine whether the interrupt causes the VM exit based on the bit value stored in the register of a virtual machine control structure (VMCS).

30. The at least one non-transitory computer-readable storage medium of claim 27 , wherein the bit value is an external-interrupt exiting (EIE) value.

31. The at least one non-transitory computer-readable storage medium of claim 27 , wherein the bit value is an external-interrupt exiting value, a virtualize APIC accesses value, a use task priority register value shadow value, an EOI bitmap value, an APIC-register virtualization value, or a halt exiting value.

32. The at least one non-transitory computer-readable storage medium of claim 27 , comprising instructions that when executed cause the system to clear the bit value in a virtual machine control structure (VMCS) that indicates an external interrupt is to generate a VM exit event wherein a transition from execution by the VM to execution by the processor core occurs.

Continuity (2)
Continuation 13976999
Related Publication 20170109197A1 · Apr 20, 2017
Cited By (1)
US 12,455,755