[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20181120.191205.256037390096473763.davem@davemloft.net>
Date: Tue, 20 Nov 2018 19:12:05 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: Tristram.Ha@...rochip.com
Cc: Bryan.Whitehead@...rochip.com, netdev@...r.kernel.org,
UNGLinuxDriver@...rochip.com, andrew@...n.ch, f.fainelli@...il.com
Subject: Re: [PATCH v1 net] lan743x: fix return value for
lan743x_tx_napi_poll
From: <Tristram.Ha@...rochip.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.
Powered by blists - more mailing lists