A method for handling interrupt requests from a first device to at least one of a second device and a third device via a system controller coupled to each of at least the first, second and third devices, said second and third devices being interruptible devices, each said device and the system controller including a processor and a memory storing instructions for execution by the respective processors, the second device being coupled to a first interrupt input queue and the third device being coupled to a second interrupt input queue, each said interrupt queue configured for accepting at least one interrupt request, the system controller being configured to store queue size information relating to respective sizes of said first and second input queues, the method including the steps of:
- (1) generating in the first device a first interrupt request with said second device as a destination device for said first interrupt request;
- (2) receiving said first interrupt request at the system controller;
- (3) based at least in part on said queue size information, determining in the system controller whether the first interrupt input queue is full, and if not, then:
- (3A) passing said first interrupt request to the second device;
- but if so, then:
- (3B) sending the first device a signal indicating non-acknowledgment of said first interrupt request.