Can polling for receive buffers rather than using interrupts help improve performance?
A. While processing transmit completions within the “send” function itself is effective at reducing transmit completion interrupts, polling for receive buffers is not recommended for the following reasons: Polling for receive buffers would require polling at a high fixed rate depending on the number of descriptor lists configured. A typical polling rate would be around every 100-200 microseconds. This latency can not be too high or the buffer descriptor lists will overrun. Regardless of the operating system, it may be difficult to poll at such an interval and to guarantee this poll rate without using a high-speed system hardware timer. Since a hardware timer also produces an interrupt — the polling may not be better then the controller’s interrupt itself. If polling is performed with a background task, it would be required to run at a low system priority as not to block other system tasks. It would likely be difficult to time the poll rate to not be too slow or fast. Also, the task or