IP Library › Granted Patent US 10,037,292
Granted Patent B2
US 10,037,292 · App. 14/718,399 · Granted Jul 31, 2018

Sharing message-signaled interrupt vectors in multi-processor computer systems

Inventors: Paolo Bonzini (Turate, IT); Michael Tsirkin (Yokneam Yillit, IL)
Assignee: Red Hat Israel, Ltd.
G06F13/24G06F9/4812
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,037,292
App. No.
14/718,399
Granted
Jul 31, 2018
Kind
B2
Abstract

Systems and methods for sharing message-signaled interrupt vectors in multi-processor computer systems. An example method may comprise: associating an interrupt vector with a first device component; associating the interrupt vector with the second device component; creating, in a first interrupt descriptor table (IDT) associated with a first processor, a first interrupt descriptor to reference a first interrupt service routine to process a first interrupt triggered by the first device component; and creating, in a second IDT associated with a second processor, a second interrupt descriptor to reference a second interrupt service routine to process a second interrupt triggered by the second device component, wherein the first interrupt descriptor and the second interrupt descriptor reference the interrupt vector.

Claims (32)

1. A method, comprising:

associating an interrupt vector with a first device component, by creating a first interrupt mapping entry in a first interrupt mapping table, wherein the first interrupt mapping entry comprises a first control register address referencing a first processor, and further comprises a first data item referencing the interrupt vector;

associating the interrupt vector with a second device component, by creating a second interrupt mapping entry in a second interrupt mapping table, wherein the second interrupt mapping entry comprises a second control register address referencing a second processor, and further comprises a second data item referencing the interrupt vector;

creating an interrupt descriptor for the interrupt vector in an interrupt descriptor table (IDT) associated with the first processor and the second processor;

associating, by a first memory data structure, the first device component with the first processor; and

associating, by a second memory data structure, the second device component with the second processor.

2. The method of claim 1 , wherein the first processor is provided by one of: a hardware processor or a virtual processor.

3. The method of claim 1 , wherein the second processor is provided by one of: a hardware processor or a virtual processor.

4. The method of claim 1 , wherein the first interrupt mapping table is provided by one of: a message-signaled interrupt (MSI) table or an extended message-signaled interrupt (MSI-X) table.

5. The method of claim 1 , wherein the second interrupt mapping table is provided by one of: a message-signaled interrupt (MSI) table or an extended message-signaled interrupt (MSI-X) table.

6. A system, comprising:

a memory; and

a processing device, operatively coupled to the memory, to:

associate an interrupt vector with a first device component, by creating a first interrupt mapping entry in a first interrupt mapping table, wherein the first interrupt mapping entry comprises a first control register address referencing a first processor, and further comprises a first data item referencing the interrupt vector;

associate the interrupt vector with a second device component, by creating a second interrupt mapping entry in a second interrupt mapping table, wherein the second interrupt mapping entry comprises a second control register address referencing a second processor, and further comprises a second data item referencing the interrupt vector;

create, in an interrupt descriptor table (IDT) associated with the first processor and the second processor, an interrupt descriptor for the interrupt vector;

associate, by a first memory data structure, the first device component with the first processor; and

associate, by a second memory data structure, the second device component with the second processor.

7. The system of claim 6 , wherein the first processor is provided by one of: a hardware processor or a virtual processor.

8. The system of claim 6 , wherein the second processor is provided by one of: a hardware processor or a virtual processor.

9. The system of claim 6 , wherein the first interrupt mapping table is provided by one of: a message-signaled interrupt (MSI) table or an extended message-signaled interrupt (MSI-X) table.

10. The system of claim 6 , wherein the second interrupt mapping table is provided by one of: a message-signaled interrupt (MSI) table or an extended message-signaled interrupt (MSI-X) table.

11. A computer-readable non-transitory storage medium comprising executable instructions to cause a processing device to:

associate an interrupt vector with a first device component, by creating a first interrupt mapping entry in a first interrupt mapping table, wherein the first interrupt mapping entry comprises a first control register address referencing a first processor, and further comprises a first data item referencing the interrupt vector;

associate the interrupt vector with a second device component, by creating a second interrupt mapping entry in a second interrupt mapping table, wherein the second interrupt mapping entry comprises a second control register address referencing a second processor, and further comprises a second data item referencing the interrupt vector;

create an interrupt descriptor for the interrupt vector in an interrupt descriptor table (IDT) associated with the first processor and the second processor;

associate, by a first memory data structure, the first device component with the first processor; and

associate, by a second memory data structure, the second device component with the second processor.

12. The computer-readable non-transitory storage medium of claim 11 , wherein the first processor is provided by one of: a hardware processor or a virtual processor.

13. The computer-readable non-transitory storage medium of claim 11 , wherein the second processor is provided by one of: a hardware processor or a virtual processor.

14. The computer-readable non-transitory storage medium of claim 11 , wherein the first interrupt mapping table is provided by one of: a message-signaled interrupt (MSI) table or an extended message-signaled interrupt (MSI-X) table.

15. The computer-readable non-transitory storage medium of claim 11 , wherein the second interrupt mapping table is provided by one of: a message-signaled interrupt (MSI) table or an extended message-signaled interrupt (MSI-X) table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2015
From: BONZINI, PAOLO; TSIRKIN, MICHAEL
To: RED HAT ISRAEL, LTD.
Reel/Frame 035689/0263 →
Continuity (1)
Related Publication 20160342543A1 · Nov 24, 2016