Hmmm.. Thought I replied, but it's not showing up... Ok, I'll try again:
When an ethernet interrupt occurs, the interrupt is disabled, and bottom half is woken up. When the bottom half wakes up, it processes the incoming packets. It will attempt to service all packets on the queue, but will stop if it hits a certain limit. If the bottom half thinks reaches the end of the queue, it will reenable the interrupt. Otherwise, the bottom half will allow bottom halves of other interfaces to have a turn, and will then resume when they are done.
This gives you a performance boost by reducing the number of interrupts the processor has to process. There's several web sites which describe NAPI in more detail, or you can peruse the code for more details.
John
|