US11194611B2ActiveUtilityA1

Dynamic assignment of interrupts based on input/output metrics

Assignee: IBMPriority: Jul 29, 2019Filed: Jul 29, 2019Granted: Dec 7, 2021
Est. expiryJul 29, 2039(~13 yrs left)· nominal 20-yr term from priority
G06F 9/45558G06F 9/4881G06F 13/24G06F 13/32G06F 2009/45579G06F 2213/24G06F 2213/0026G06F 9/48G06F 9/455G06F 9/5083
53
PatentIndex Score
0
Cited by
37
References
19
Claims

Abstract

A system and method dynamically assign interrupts to a virtual machine from an input/output (I/O) adapter based on I/O metrics of the I/O adapter. An interrupt manager monitors I/O adapter traffic flow metrics such as latency of data transfers, usage levels, and transfers per unit of time. The interrupt manager determines when a traffic flow metric for a virtual machine meets a predetermined performance threshold and updates virtual interrupt assignments in a logical interrupt table to improve performance of the system. The interrupt manager uses hint data provided by the device driver to make the interrupt assignments.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. An apparatus comprising:
 at least one processor; 
 a memory coupled to the at least one processor; and 
 an interrupt manager residing in the memory and executed by the at least one processor that dynamically assigns interrupts to a virtual machine from an input/output adapter based on input/output traffic metrics of the input/output adapter and hint data from a device driver, 
 wherein the interrupt manager monitors the input/output adapter traffic metrics of a traffic path from the input/output adapter to the virtual machine, determines when a monitored input/output traffic metric meets a predetermined performance threshold and dynamically updates virtual interrupt assignments for the virtual machine based on the monitored input/output traffic metric meeting the predetermined threshold. 
 
     
     
       2. The apparatus of  claim 1  wherein the hint data includes hints to the priority of the interrupts to more efficiently assign the interrupts to a physical interrupt source number (PISN) for subsequent mapping to a logical interrupt source number (LISN), or virtual machine (VM). 
     
     
       3. The apparatus of  claim 2  wherein the hint data is a table with a priority level for each of the interrupts. 
     
     
       4. The apparatus of  claim 3  wherein the interrupt manager assigns high priority interrupts first to a PISN and then round-robin assigns the low priority interrupts to any remaining PISNs when all high priority interrupts will fit, and assigns low priority interrupts on a single PISN and then round-robin assigns the high priority interrupts across the other PISNs when the high priority interrupts will not all fit. 
     
     
       5. The apparatus of  claim 4  wherein the interrupt manager dynamically updates the virtual interrupt assignments in a logical interrupt table located in a hypervisor and contains logical interrupt source numbers associated with PISNs. 
     
     
       6. The apparatus of  claim 5  wherein a data bus is a peripheral component interconnect express (PCIe) bus. 
     
     
       7. The apparatus of  claim 1  wherein the input/output traffic metrics comprise latency of data transfers, usage levels of an adapter input/output (I/O) path, and transfers per unit of time. 
     
     
       8. The apparatus of  claim 1  wherein the input/output adapter is a single-root I/O virtualization adapter. 
     
     
       9. A computer-implemented method executed by at least one processor of assigning interrupts, the method comprising:
 monitoring traffic metrics of a traffic path from an input/output adapter to a virtual machine; 
 determining when a monitored traffic metric meets a predetermined performance threshold; and 
 dynamically updating virtual interrupt assignments to the virtual machine from the input/output adapter based on input/output traffic metrics of the input/output adapter and hint data from a device driver. 
 
     
     
       10. The method of  claim 9  wherein the hint data includes hints to the priority of the interrupts to more efficiently assign the interrupts to a physical interrupt source numbers (PISN), logical interrupt source number (LISN), or virtual machine (VM). 
     
     
       11. The method of  claim 10  wherein the hint data is a table with a priority level for each of the interrupts. 
     
     
       12. The method of  claim 11  wherein the interrupt manager assigns high priority interrupts first to a PISN and then round-robin assigns the low priority interrupts to any remaining physical interrupt source numbers when all high priority interrupts will fit, and assigns low priority interrupts on a single PISN and then round-robin assigns the high priority interrupts across the other PISNs when the high priority interrupts will not all fit. 
     
     
       13. The method of  claim 9  wherein the virtual interrupt assignments are located in a logical interrupt table. 
     
     
       14. The method of  claim 13  wherein the logical interrupt table is located in a hypervisor and contains logical interrupt source numbers associated with PISNs. 
     
     
       15. The method of  claim 9  wherein the traffic metrics comprise latency of data transfers, usage levels of an adapter input/output (I/O) path, and transfers per unit of time. 
     
     
       16. The method of  claim 9  wherein the input/output adapter is a single-root I/O virtualization adapter. 
     
     
       17. A computer-implemented method executed by at least one processor of assigning interrupts, the method comprising:
 instantiating a plurality of virtual machines; 
 deploying an I/O adapter to one of the plurality of virtual machines; 
 creating a mapping of virtual interrupt assignments that maps logical interrupt source numbers to physical interrupt source numbers (PISNs); 
 monitoring traffic metrics of a traffic path from an input/output adapter to a virtual machine, wherein the traffic metrics comprise latency of data transfers, usage levels of an adapter input/output (I/O) path, and transfers per unit of time; 
 determining when a monitored traffic metric meets a predetermined performance threshold; 
 dynamically updating virtual interrupt assignments to the virtual machine from the input/output adapter based on input/output traffic metrics of the input/output adapter and hint data from a device driver, wherein the hint data includes hints to the priority of the interrupts to more efficiently assign the interrupts to an I/O adapter, wherein the virtual interrupt assignments are located in a logical interrupt table in a hypervisor and contain logical interrupt source numbers associated with PISNs; and 
 stopping traffic while updating the virtual interrupt assignments by generating an error state on a data bus. 
 
     
     
       18. The method of  claim 17  wherein the hint data is a table with a priority level for each of the interrupts. 
     
     
       19. The method of  claim 18  wherein the interrupt manager assigns high priority interrupts first to a PISN and then round-robin assigns the low priority interrupts to any remaining physical interrupt source numbers when all high priority interrupts will fit, and assigns low priority interrupts on a single PISN and then round-robin assigns the high priority interrupts across the other PISNs when the high priority interrupts will not all fit.

Join the waitlist — get patent alerts

Track US11194611B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.