From: Ilias Apalodimas <ilias.apalodi...@linaro.org>
Date: Fri, 14 Dec 2018 10:59:00 +0200

> Running pktgen with packets sizes > 512b ends up in the interface Txq
> getting stuck.
> "netsec 522d0000.ethernet eth0: netsec_netdev_start_xmit: TxQFull!"
> appears on dmesg but the interface never recovers. It requires an
> ifconfig down/up to make the interface usable again.
> 
> The reason that triggers this, is a race condition between
> .ndo_start_xmit and the napi completion. The available budget is
> calculated first and indicates the queue is full. Due to a costly
> netif_err() the queue is not stopped in time while the napi completion
> runs, clears the irq and frees up descriptors, thus the queue never wakes
> up again.
> 
> Fix this by moving the print after stopping the queue, make the print
> ratelimited, add barriers and check for cleaned descriptors..
> 
> Signed-off-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>

Applied.

Reply via email to