702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. From: Felix Fietkau <[email protected]>
  2. Date: Mon, 21 Mar 2022 20:39:59 +0100
  3. Subject: [PATCH] net: ethernet: mtk_eth_soc: enable threaded NAPI
  4. This can improve performance under load by ensuring that NAPI processing is
  5. not pinned on CPU 0.
  6. Signed-off-by: Felix Fietkau <[email protected]>
  7. ---
  8. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  9. +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  10. @@ -2802,8 +2802,8 @@ static irqreturn_t mtk_handle_irq_rx(int
  11. eth->rx_events++;
  12. if (likely(napi_schedule_prep(&eth->rx_napi))) {
  13. - __napi_schedule(&eth->rx_napi);
  14. mtk_rx_irq_disable(eth, eth->soc->txrx.rx_irq_done_mask);
  15. + __napi_schedule(&eth->rx_napi);
  16. }
  17. return IRQ_HANDLED;
  18. @@ -2815,8 +2815,8 @@ static irqreturn_t mtk_handle_irq_tx(int
  19. eth->tx_events++;
  20. if (likely(napi_schedule_prep(&eth->tx_napi))) {
  21. - __napi_schedule(&eth->tx_napi);
  22. mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
  23. + __napi_schedule(&eth->tx_napi);
  24. }
  25. return IRQ_HANDLED;
  26. @@ -4114,6 +4114,8 @@ static int mtk_probe(struct platform_dev
  27. * for NAPI to work
  28. */
  29. init_dummy_netdev(&eth->dummy_dev);
  30. + eth->dummy_dev.threaded = 1;
  31. + strcpy(eth->dummy_dev.name, "mtk_eth");
  32. netif_napi_add(&eth->dummy_dev, &eth->tx_napi, mtk_napi_tx,
  33. NAPI_POLL_WEIGHT);
  34. netif_napi_add(&eth->dummy_dev, &eth->rx_napi, mtk_napi_rx,