OSDN Git Service

net: stmmac: Fix NAPI poll in TX path when in multi-queue
authorJose Abreu <jose.abreu@synopsys.com>
Tue, 19 Feb 2019 09:38:47 +0000 (10:38 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 Feb 2019 23:42:34 +0000 (15:42 -0800)
commit4ccb45857c2c0776d0f72e39768295062c1a0de1
tree3cda1a991ff5ced34b3da8c131cc8f85be2907f7
parentd0e698d57a94601bef7010e69b2e3c7d6f9aa311
net: stmmac: Fix NAPI poll in TX path when in multi-queue

Commit 8fce33317023 introduced the concept of NAPI per-channel and
independent cleaning of TX path.

This is currently breaking performance in some cases. The scenario
happens when all packets are being received in Queue 0 but the TX is
performed in Queue != 0.

Fix this by using different NAPI instances per each TX and RX queue, as
suggested by Florian.

Changes from v2:
- Only force restart transmission if there are pending packets
Changes from v1:
- Pass entire ring size to TX clean path (Florian)

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Joao Pinto <jpinto@synopsys.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac.h
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c