From 76602b9c184fb4f7e20126d0cfc0c999fc9cbce0 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 23 Jun 2022 14:28:10 +0200 Subject: [PATCH] nss-dp: edma-v1: switch to napi_gro_receive Utilize napi_gro_receive instead of plain netif_receive_skb on EDMA v1. It provides significant performance improvements when testing with iperf3. Signed-off-by: Robert Marko --- ...p-edma-v1-switch-to-napi_gro_receive.patch | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 qca/qca-nss-dp/patches/0014-nss-dp-edma-v1-switch-to-napi_gro_receive.patch diff --git a/qca/qca-nss-dp/patches/0014-nss-dp-edma-v1-switch-to-napi_gro_receive.patch b/qca/qca-nss-dp/patches/0014-nss-dp-edma-v1-switch-to-napi_gro_receive.patch new file mode 100644 index 0000000..3a437bd --- /dev/null +++ b/qca/qca-nss-dp/patches/0014-nss-dp-edma-v1-switch-to-napi_gro_receive.patch @@ -0,0 +1,46 @@ +From 57b521e876986844dfe34457f39c62dc8100424d Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Thu, 23 Jun 2022 14:18:50 +0200 +Subject: [PATCH] nss-dp: edma-v1: switch to napi_gro_receive + +Utilize napi_gro_receive instead of plain netif_receive_skb on EDMA v1. +It provides significant performance improvements when testing with iperf3. + +Signed-off-by: Robert Marko +--- + Makefile | 2 +- + hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c | 4 ++++ + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 8e81317..dcfa8ca 100644 +--- a/Makefile ++++ b/Makefile +@@ -25,7 +25,7 @@ qca-nss-dp-objs += hal/dp_ops/edma_dp/edma_v1/edma_cfg.o \ + hal/gmac_ops/qcom/qcom_if.o \ + hal/gmac_ops/syn/xgmac/syn_if.o + NSS_DP_INCLUDE += -I$(obj)/hal/dp_ops/edma_dp/edma_v1/include +-ccflags-y += -DNSS_DP_PPE_SUPPORT ++ccflags-y += -DNSS_DP_PPE_SUPPORT -DNSS_DP_ENABLE_NAPI_GRO + endif + + ifeq ($(SoC),$(filter $(SoC),ipq807x)) +diff --git a/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c b/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c +index 5780a30..6ee1451 100644 +--- a/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c ++++ b/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c +@@ -411,7 +411,11 @@ static uint32_t edma_clean_rx(struct edma_hw *ehw, + NSS_PTP_EVENT_SERVICE_CODE)) + nss_phy_tstamp_rx_buf(ndev, skb); + else ++#if defined(NSS_DP_ENABLE_NAPI_GRO) ++ napi_gro_receive(&ehw->napi, skb); ++#else + netif_receive_skb(skb); ++#endif + + next_rx_desc: + /* +-- +2.36.1 +