From 80799ea19e95963e7a63045c4d837c6838ca9161 Mon Sep 17 00:00:00 2001 From: lean Date: Thu, 31 Mar 2022 17:50:26 +0800 Subject: [PATCH] ramips/mediatek: enable threaded NAPI in the ethernet driver --- ...net-mtk_eth_soc-enable-threaded-NAPI.patch | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 target/linux/generic/pending-5.4/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch diff --git a/target/linux/generic/pending-5.4/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch b/target/linux/generic/pending-5.4/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch new file mode 100644 index 000000000..a39549c5f --- /dev/null +++ b/target/linux/generic/pending-5.4/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch @@ -0,0 +1,41 @@ +From: Felix Fietkau +Date: Mon, 21 Mar 2022 20:39:59 +0100 +Subject: [PATCH] net: ethernet: mtk_eth_soc: enable threaded NAPI + +This can improve performance under load by ensuring that NAPI processing is +not pinned on CPU 0. + +Signed-off-by: Felix Fietkau +--- + +--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c ++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +@@ -2179,8 +2179,8 @@ static irqreturn_t mtk_handle_irq_rx(int + + eth->rx_events++; + if (likely(napi_schedule_prep(ð->rx_napi))) { +- __napi_schedule(ð->rx_napi); + mtk_rx_irq_disable(eth, MTK_RX_DONE_INT); ++ __napi_schedule(ð->rx_napi); + } + + return IRQ_HANDLED; +@@ -2192,8 +2192,8 @@ static irqreturn_t mtk_handle_irq_tx(int + + eth->tx_events++; + if (likely(napi_schedule_prep(ð->tx_napi))) { +- __napi_schedule(ð->tx_napi); + mtk_tx_irq_disable(eth, MTK_TX_DONE_INT); ++ __napi_schedule(ð->tx_napi); + } + + return IRQ_HANDLED; +@@ -3300,6 +3300,8 @@ static int mtk_probe(struct platform_dev + * for NAPI to work + */ + init_dummy_netdev(ð->dummy_dev); ++ eth->dummy_dev.threaded = 1; ++ strcpy(eth->dummy_dev.name, "mtk_eth"); + netif_napi_add(ð->dummy_dev, ð->tx_napi, mtk_napi_tx, + MTK_NAPI_WEIGHT); + netif_napi_add(ð->dummy_dev, ð->rx_napi, mtk_napi_rx, \ No newline at end of file