Patent ID: 8504750

Claim:
A method for an adapter, comprising: (a) providing a plurality of function hierarchies associated with the adapter, each hierarchy including a plurality of functions and each function being associated with an event that is processed by a processor from among a plurality of processors of the adapter; wherein each function hierarchy is assigned a first arbitration module that is used for arbitrating between interrupt request signals originating from the function hierarchy; and each of the processors has an assigned second arbitration module configured to arbitrate between the interrupt request signals for events that are associated with a specific one of the processors, wherein each function hierarchy includes at least a physical function and at least a virtual function associated with the physical function; (b) collecting event status for the plurality of functions associated with the plurality of function hierarchies; (c) based on the collected event status, generating the interrupt request signals for each function within a function hierarchy that had a change in status, wherein the interrupt request signals for each function hierarchy are sent to the assigned first arbitration module for arbitration; (d) selecting a function from each of the plurality of function hierarchies; wherein each of the assigned first arbitration modules selects one of the interrupt request signals for each function hierarchy; (e) sending all the interrupt request signals associated with events for the specific processor from among the plurality of processors to the second arbitration module assigned to the specific processor; (f) selecting one of the interrupt request signals based on an arbitration performed by the assigned second arbitration module; (g) processing an event associated with the interrupt request signal selected in step (f); and (h) applying a masking logic for selecting functions for events that are associated with a specific processor.