Approach for managing interrupt load distribution
First Claim
1. In a system comprising a plurality of processors, a machine-implemented method comprising:
- receiving a first mapping of one or more interrupt channels to one or more processors, wherein the first mapping includes a mapping of a particular device'"'"'s interrupts to a plurality of processors;
determining that a particular device does not use enough interrupt channels to comply with the first mapping;
designating a particular processor of the one or more processors as a managing processor;
designating a particular interrupt channel of the particular device'"'"'s interrupt channels as a managed interrupt channel;
distributing interrupts sent over the managed interrupt channel to the managing processor;
determining one or more tasks to be performed for each interrupt sent using the managed interrupt channel; and
causing the managing processor to assign the one or more tasks to a set of one or more additional processors from the plurality of processors, wherein the one or more additional processors perform at least one or more tasks for each interrupt sent using the managed interrupt channel.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for distributing multiple interrupts among multiple processors is disclosed. According to one embodiment, an interrupt daemon monitors the interrupt load among the processors that results from an initial mapping of the interrupts to the processors. The interrupt daemon determines whether there is a sufficient imbalance of the interrupts among the processors. If so, the interrupt daemon triggers a reassignment routine that generates a new mapping of the interrupts among the processors, and if not, the interrupt daemon goes to sleep for a specified time period. If the new mapping produces a sufficient improvement in the distribution of interrupts among the processors, based on the same criteria used to detect the imbalance, the new mapping is used by the central hub for subsequent distribution of interrupts to the processors. However, if the new mapping does not provide a sufficient improvement, the original mapping continues to be used.
44 Citations
26 Claims
-
1. In a system comprising a plurality of processors, a machine-implemented method comprising:
-
receiving a first mapping of one or more interrupt channels to one or more processors, wherein the first mapping includes a mapping of a particular device'"'"'s interrupts to a plurality of processors;
determining that a particular device does not use enough interrupt channels to comply with the first mapping;
designating a particular processor of the one or more processors as a managing processor;
designating a particular interrupt channel of the particular device'"'"'s interrupt channels as a managed interrupt channel;
distributing interrupts sent over the managed interrupt channel to the managing processor;
determining one or more tasks to be performed for each interrupt sent using the managed interrupt channel; and
causing the managing processor to assign the one or more tasks to a set of one or more additional processors from the plurality of processors, wherein the one or more additional processors perform at least one or more tasks for each interrupt sent using the managed interrupt channel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A machine-readable medium comprising a set of instructions which, when executed by one or more processors, causes the one or more processors to perform the following operations:
-
receiving a first mapping of one or more interrupt channels to one or more processors, wherein the first mapping includes a mapping of a particular device'"'"'s interrupts to a plurality of processors;
determining that a particular device does not use enough interrupt channels to comply with the first mapping;
designating a particular processor of the one or more processors as a managing processor;
designating a particular interrupt channel of the particular device'"'"'s interrupt channels as a managed interrupt channel;
distributing interrupts sent over the managed interrupt channel to the managing processor;
determining one or more tasks to be performed for each interrupt sent using the managed interrupt channel; and
causing the managing processor to assign the one or more tasks to a set of one or more additional processors from the plurality of processors, wherein the one or more additional processors perform at least one or more tasks for each interrupt sent using the managed interrupt channel. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification