IP Library Granted Patent US 7,707,341
Granted Patent B1
US 7,707,341 · App. 11/066,051 · Granted Apr 27, 2010

Virtualizing an interrupt controller

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,707,341
App. No.
11/066,051
Granted
Apr 27, 2010
Kind
B1
Abstract

In one embodiment, a method is contemplated. An interrupt is received in a processor from an interrupt controller. Responsive to receiving the interrupt, the interrupt is masked in the interrupt controller to permit another interrupt to be transmitted by the interrupt controller to the processor. The other interrupt has a lower priority than the previously-received interrupt in the interrupt controller.

Claims (27)

1. A method comprising:

receiving an interrupt in a processor from an interrupt controller;

mapping the interrupt to a first guest of a plurality of guests executing on the processor;

delivering the interrupt to the first guest; and

masking the interrupt in the interrupt controller responsive to delivering the interrupt to permit another interrupt to be transmitted by the interrupt controller to the processor, the other interrupt having a lower priority than the interrupt.

2. The method as recited in claim 1 further comprising mapping the other interrupt to a second guest of the plurality of guests.

3. The method as recited in claim 1 further comprising mapping the other interrupt to the first guest.

4. The method as recited in claim 1 further comprising maintaining a plurality of virtual interrupt controllers, each of the plurality of virtual interrupt controllers corresponding to a respective one of the plurality of guests, and wherein a first virtual interrupt controller of the plurality of virtual interrupt controllers corresponds to the first guest, and wherein the maintaining comprises updating the first virtual interrupt controller to record the interrupt.

5. The method as recited in claim 4 wherein the maintaining further comprises determining an interrupt vector corresponding to the interrupt.

6. The method as recited in claim 5 wherein the maintaining further comprises translating the interrupt vector to a virtual interrupt vector for recording in the first virtual interrupt controller.

7. The method as recited in claim 5 wherein determining the interrupt vector comprises issuing an interrupt acknowledge command to the interrupt controller.

8. The method as recited in claim 1 further comprising injecting the interrupt into the first guest.

9. The method as recited in claim 8 further comprising intercepting an end of interrupt command generated by the first guest in response to completing servicing of the interrupt.

10. The method as recited in claim 9 further comprising transmitting a second end of interrupt command on behalf of the first guest responsive to intercepting the end of interrupt command, the second end of interrupt command including an explicit indication identifying the interrupt to the interrupt controller.

11. The method as recited in claim 9 further comprising unmasking the interrupt in the interrupt controller responsive to intercepting the end of interrupt command.

12. A computer accessible medium storing a plurality of instructions comprising instructions which, when executed on a processor in response to the processor intercepting an interrupt from an interrupt controller:

map the interrupt to a first guest of a plurality of guests executing on the processor;

deliver the interrupt to the first guest; and

mask the interrupt in the interrupt controller in response to delivering the interrupt to permit another interrupt to be transmitted by the interrupt controller to the processor, the other interrupt having a lower priority than the interrupt.

13. The computer accessible medium as recited in claim 12 wherein the instructions, when executed in response to the processor intercepting the other interrupt, map the other interrupt to a second guest of the plurality of guests.

14. The computer accessible medium as recited in claim 12 wherein the instructions, when executed in response to the processor intercepting the other interrupt, map the other interrupt to the first guest.

15. The computer accessible medium as recited in claim 12 wherein the plurality of instructions, when executed, maintain a plurality of virtual interrupt controllers, each of the plurality of virtual interrupt controllers corresponding to a respective one of the plurality of guests, and wherein a first virtual interrupt controller of the plurality of virtual interrupt controllers corresponds to the first guest, and wherein the instructions, when executed, update the first virtual interrupt controller to record the interrupt.

16. The computer accessible medium as recited in claim 15 wherein the instructions, when executed, determine an interrupt vector corresponding to the interrupt.

17. The computer accessible medium as recited in claim 16 wherein the instructions, when executed, translate the interrupt vector to a virtual interrupt vector for recording in the first virtual interrupt controller.

18. The computer accessible medium as recited in claim 12 wherein the instructions, when executed, inject the interrupt into the first guest.

19. The computer accessible medium as recited in claim 18 wherein the plurality of instructions comprise second instructions which, when executed in response to the processor intercepting an end of interrupt command generated by the first guest in response to completing servicing of the interrupt, initiate a second end of interrupt command on behalf of the first guest, the second end of interrupt command including an explicit indication identifying the interrupt to the interrupt controller.

20. The computer accessible medium as recited in claim 19 wherein the second instructions, when executed, unmask the interrupt in the interrupt controller.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2015
From: ADVANCED MICRO DEVICES, INC.
To: ADVANCED SILICON TECHNOLOGIES, LLC
Reel/Frame 036700/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2005
From: KLAIBER, ALEXANDER C.; HUGHES, WILLIAM ALEXANDER
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 016337/0078 →