Any purely interrupt-driven system using fixed interrupt priorities will suffer from receive livelock under input overload conditions.
Later in the article, we describe the results of benchmarks demonstrating that our modifications do indeed guarantee throughput and fairness under overload, while also improving peak throughput and latency, and still preserving the desirable qualities of an interrupt-driven system under light load.
In this section, we first describe the characteristics of an interrupt-driven system, and then identify three kinds of problems caused by network input overload in interrupt-driven systems:
An interrupt-driven system performs badly under network input overload because of the way in which it prioritizes the tasks executed as the result of network input.
In an interrupt-driven system, receiver interrupts take priority over all other activity.
Since a purely interrupt-driven system leads to livelock, and a purely polling system adds unnecessary latency, we employ a hybrid design, in which the system polls only when triggered by an interrupt, and interrupts happen only while polling is suspended.
We have observed that interrupt-driven systems have trouble meeting the requirements discussed in Section 3.