From: <tristram...@microchip.com> Date: Wed, 21 Nov 2018 02:13:30 +0000
> Slightly out of topic I am not sure why NAPI is used on the transmit side. > Originally NAPI was designed to fix the receive interrupt happening on each > receive frame problem, so on transmit side it is to avoid the transmit > done interrupt on each transmit frame? Typically hardware has a way > to trigger transmit done interrupt or not in each transmit frame. It puts transmit completion, like receive processing, inside of a software instead of a hardware interrupt. It is very much intended that all drivers do transmit completion inside of a NAPI context. Avoiding TX interrupts by clearing interrupt indication bits in the TX descriptors or turning TX completion interrupts off compeltely is a non-starter. All TX completion events MUST occur in a short finite amount of time, otherwise you wedge TCP sockets waiting for memory to be free'd up etc.