Sync some patchs from upstreaming and modifies are as follow: - net/hns3: fix mailbox sync - net/hns3: report maximum buffer size - ethdev: add maximum Rx buffer size - app/procinfo: show RSS hash algorithm - ethdev: get RSS algorithm names - app/procinfo: adjust format of RSS info - app/procinfo: fix RSS info - net/hns3: support setting and querying RSS hash function - net/hns3: report RSS hash algorithms capability - ethdev: set and query RSS hash algorithm - ethdev: clarify RSS related fields usage - net/hns3: fix uninitialized hash algo value - net/hns3: keep set/get algo key functions local - net/hns3: fix some error logs - net/hns3: fix some return values - net/hns3: fix LRO offload to report - net/hns3: fix setting DCB capability - app/testpmd: ease configuring all offloads - net/hns3: refactor interrupt state query - net/hns3: fix IMP or global reset - net/hns3: fix multiple reset detected log - net/hns3: remove reset log in secondary - net/hns3: fix double stats for IMP and global reset - net/hns3: fix crash for NEON and SVE - net/hns3: fix unchecked Rx free threshold - net/hns3: fix typo in function name - net/hns3: fix build warning - telemetry: fix repeat display when callback don't init dict Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From e21bdbf93b0ec692c86d9457a23acb3e3209243b Mon Sep 17 00:00:00 2001
|
|
From: Dengdui Huang <huangdengdui@huawei.com>
|
|
Date: Fri, 27 Oct 2023 14:09:40 +0800
|
|
Subject: [PATCH 370/394] net/hns3: fix unchecked Rx free threshold
|
|
|
|
[ upstream commit c1f0cd3a4c834c2e550370b6d31b6bcd456a15f9 ]
|
|
|
|
To reduce the frequency of updating the head pointer of Rx queue,
|
|
driver just updates this pointer when the number of processed
|
|
descriptors is greater than the Rx free threshold. If the Rx free
|
|
threshold is set to a value greater than or equal to the number of
|
|
descriptors in Rx queue, the driver does not update this pointer.
|
|
As a result, the hardware cannot receive more packets.
|
|
|
|
This patch fix it by adding Rx free threshold check.
|
|
|
|
Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")
|
|
Cc: stable@dpdk.org
|
|
|
|
Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
|
|
---
|
|
drivers/net/hns3/hns3_rxtx.c | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
|
|
index 4c79163e3f..208c725cd5 100644
|
|
--- a/drivers/net/hns3/hns3_rxtx.c
|
|
+++ b/drivers/net/hns3/hns3_rxtx.c
|
|
@@ -1785,6 +1785,12 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,
|
|
return -EINVAL;
|
|
}
|
|
|
|
+ if (conf->rx_free_thresh >= nb_desc) {
|
|
+ hns3_err(hw, "rx_free_thresh (%u) must be less than %u",
|
|
+ conf->rx_free_thresh, nb_desc);
|
|
+ return -EINVAL;
|
|
+ }
|
|
+
|
|
if (conf->rx_drop_en == 0)
|
|
hns3_warn(hw, "if no descriptors available, packets are always "
|
|
"dropped and rx_drop_en (1) is fixed on");
|
|
--
|
|
2.23.0
|
|
|