On 03-09-2018 15:07, Jerome Brunet wrote: > > You had it on what you sent in the RFT, but this different.
Yeah, I had to fix the logic where tx queues != rx queues... > > Like with the RFT, the network breakdown we had is no longer reproduced. > However this patch wreck the Rx throughput (680MBps -> 35MBps) Damn, thats low. And I cant reproduce it here :/ Strange because I barely messed around with RX path... Can you try attached patch in top of this one please? > > BTW, this patch and the RFT assume that 4ae0169fd1b3 ("net: stmmac: Do not > keep > rearming the coalesce timer in stmmac_xmit") is still applied but I believe > David reverted the patch. > > If you still need this change, you should include it back in your changeset. Yes I know it was reverted but -net was not merged into -next yet... Thanks and Best Regards, Jose Miguel Abreu > >> Thanks and Best Regards, >> Jose Miguel Abreu >> --- >> drivers/net/ethernet/stmicro/stmmac/common.h | 4 +- >> drivers/net/ethernet/stmicro/stmmac/stmmac.h | 7 +- >> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 177 >> +++++++++++++++------- >> 3 files changed, 126 insertions(+), 62 deletions(-) >
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 14f890f2a970..3c7cfda80433 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2247,10 +2247,8 @@ static void stmmac_tx_timer(struct timer_list *t) struct stmmac_tx_queue *tx_q = from_timer(tx_q, t, txtimer); struct stmmac_priv *priv = tx_q->priv_data; - if (napi_schedule_prep(&tx_q->napi)) { - stmmac_disable_dma_irq(priv, priv->ioaddr, tx_q->queue_index); + if (napi_schedule_prep(&tx_q->napi)) __napi_schedule(&tx_q->napi); - } tx_q->tx_timer_active = 0; }