IP Library Granted Patent US 7,853,744
Granted Patent B2
US 7,853,744 · App. 12/124,893 · Granted Dec 14, 2010

Handling interrupts when virtual machines have direct access to a hardware device

Assignee: VMware, Inc.
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,853,744
App. No.
12/124,893
Granted
Dec 14, 2010
Kind
B2
Abstract

In virtualized computer system in which a guest operating system runs on a virtual machine of a virtualized computer system and has direct access to a hardware device coupled to the virtualized computer system via a communication interface, a computer-implemented method of handling interrupts from the hardware device to the guest operating system includes: (a) receiving a physical interrupt from the hardware device on a shared interrupt line of an interrupt controller; (b) masking the shared interrupt line of the interrupt controller; (c) generating a virtual interrupt corresponding to the physical interrupt to the guest operating system; and (d) the guest operating system executing an interrupt service routine.

Claims (51)

1. In a virtualized computer system in which a guest operating system runs on a virtual machine of a virtualized computer system and has direct access to a hardware device coupled to the virtualized computer system via a communication interface, a computer implemented method of handling interrupts from the hardware device to the guest operating system, the method comprising:

receiving a physical interrupt from the hardware device on a shared interrupt line of an interrupt controller, the physical interrupt forwarded to a virtual machine (VM) kernel;

masking, by the VM kernel, the shared interrupt line of the interrupt controller;

issuing a physical end of interrupt (EOI) in response to the masking of the shared interrupt line of the interrupt controller, the physical EOI issued by the VM kernel;

generating a virtual interrupt corresponding to the physical interrupt to the guest operating system; and

the guest operating system executing an interrupt service routine corresponding to the virtual interrupt.

2. The method of claim 1 , wherein generating the virtual interrupt further comprising:

forwarding the generated virtual interrupt to the guest operating system through a virtual local Advanced Programmable Interrupt Controller (APIC).

3. In a virtualized computer system in which a guest operating system runs on a virtual machine of a virtualized computer system and has direct access to a hardware device coupled to the virtualized computer system via a communication interface, the virtualized computer system having virtualization software that includes a virtual machine (VM) kernel and a virtual machine monitor (VMM), a computer implemented method of handling interrupts from the hardware device to the guest operating system, the method comprising:

receiving a physical interrupt from the hardware device on a non-shared interrupt line of an interrupt controller, the physical interrupt communicated directly to a passthrough module of the VMM without transitioning to the VM kernel;

issuing a physical end of interrupt (EOI) in response to receiving the physical interrupt from the hardware device, the physical EOI issued by the passthrough module of the VMM;

generating a virtual interrupt corresponding to the physical interrupt to the guest operating system; and

the guest operating system executing an interrupt service routine corresponding to the virtual interrupt.

4. The method of claim 3 , wherein generating the virtual interrupt further comprising:

forwarding the generated virtual interrupt to the guest operating system through a virtual local Advanced Programmable Interrupt Controller (APIC).

5. The method of claim 3 , further comprising

the guest operating system issuing a virtual end of interrupt (EOI) responsive to executing an interrupt service routine.

6. For a virtualized computer system in which a guest operating system runs on a virtual machine of the virtualized computer system and has direct access to a hardware device coupled to the virtualized computer system via a communication interface, a computer program product stored on a computer readable medium and configured to perform a computer-implemented method of handling interrupts from the hardware device to the guest operating system, the method comprising:

receiving a physical interrupt from the hardware device on a shared interrupt line of an interrupt controller, the physical interrupt provided to a virtual machine (VM) kernel;

masking, by the VM kernel, the shared interrupt line of the interrupt controller;

issuing a physical end of interrupt (EOI) in response to the masking of the shared interrupt line of the interrupt controller, the physical EOI issued by the VM kernel;

generating a virtual interrupt corresponding to the physical interrupt to the guest operating system; and

the guest operating system executing an interrupt service routine corresponding to the virtual interrupt.

7. The computer program product of claim 6 , wherein the method further comprises:

forwarding the generated virtual interrupt to the guest operating system through a virtual local Advanced Programmable Interrupt Controller (APIC).

8. For a virtualized computer system in which a guest operating system runs on a virtual machine of the virtualized computer system and has direct access to a hardware device coupled to the virtualized computer system via a communication interface, the virtualized computer system having virtualization software that includes a virtual machine (VM) kernel and a virtual machine monitor (VMM), a computer program product stored on a computer readable medium and configured to perform a computer-implemented method of handling interrupts from the hardware device to the guest operating system, the method comprising:

receiving a physical interrupt from the hardware device on a non-shared, edge-triggered interrupt line of an interrupt controller, the physical interrupt communicated directly to a passthrough module of the VMM without transitioning to the VM kernel;

issuing a physical end of interrupt (EOI) in response to receiving the physical interrupt from the hardware device, the physical EOI issued by the passthrough module of the VMM;

generating a virtual interrupt corresponding to the physical interrupt to the guest operating system; and

the guest operating system executing an interrupt service routine corresponding to the virtual interrupt.

9. The computer program product of claim 8 , wherein the method further comprises:

forwarding the generated virtual interrupt to the guest operating system through a virtual local Advanced Programmable Interrupt Controller (APIC).

10. The computer program product of claim 8 , wherein the method further comprises:

the guest operating system issuing a virtual end of interrupt (EOI) responsive to executing an interrupt service routine.

11. A virtualized computer system in which a guest operating system runs on a virtual machine of the virtualized computer system and has direct access to a hardware device coupled to the virtualized computer system via a communication interface, the virtualized computer system including a storage device storing computer instructions configured to perform a computer-implemented method of handling interrupts from the hardware device to the guest operating system, and one or more central processing units for executing the computer instructions, the method comprising:

receiving a physical interrupt from the hardware device on a shared interrupt line of an interrupt controller, the physical interrupt forwarded to a virtual machine (VM) kernel;

masking, by the VM kernel, the shared interrupt line of the interrupt controller;

issuing a physical end of interrupt (EOI) in response to the masking of the shared interrupt line of the interrupt controller, the physical EOI issued by the VM kernel;

generating a virtual interrupt corresponding to the physical interrupt to the guest operating system; and

the guest operating system executing an interrupt service routine corresponding to the virtual interrupt.

12. The virtualized computer system of claim 11 , wherein the method further comprises:

forwarding the generated virtual interrupt to the guest operating system through a virtual local Advanced Programmable Interrupt Controller (APIC).

13. A virtualized computer system in which a guest operating system runs on a virtual machine of the virtualized computer system and has direct access to a hardware device coupled to the virtualized computer system via a communication interface, the virtualized computer system having virtualization software that includes a virtual machine (VM) kernel and a virtual machine monitor (VMM), the virtualized computer system including a storage device storing computer instructions configured to perform a computer-implemented method of handling interrupts from the hardware device to the guest operating system, and one or more central processing units for executing the computer instructions, the method comprising:

receiving a physical interrupt from the hardware device on a non-shared interrupt line of an interrupt controller, the physical interrupt communicated directly to a passthrough module of the VMM without transitioning to the VM kernel;

issuing a physical end of interrupt (EOI) in response to receiving the physical interrupt from the hardware device, the physical EOI issued by the passthrough module of the VMM;

generating a virtual interrupt corresponding to the physical interrupt to the guest operating system; and

the guest operating system executing an interrupt service routine corresponding to the virtual interrupt.

14. The virtualized computer system of claim 13 , wherein the method further comprises:

forwarding the generated virtual interrupt to the guest operating system through a virtual local Advanced Programmable Interrupt Controller (APIC).

15. The virtualized computer system of claim 13 , wherein the method further comprises:

the guest operating system issuing a virtual end of interrupt (EOI) responsive to executing an interrupt service routine.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2008
From: MAHALINGAM, MALLIK; CREMEL, OLIVIER; RAMANAN, JYOTHIR; NELSON, MICHAEL
To: VMWARE, INC.
Reel/Frame 021239/0238 →
Continuity (2)
Provisional Application 6093981900 · May 23, 2007
Related Publication 20080294825A1 · Nov 27, 2008