patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Dongdong Liu <liudongdong3@huawei.com>
To: <dev@dpdk.org>, <andrew.rybchenko@oktetlabs.ru>,
	<ferruh.yigit@xilinx.com>, <thomas@monjalon.net>
Cc: <stable@dpdk.org>, Chengwen Feng <fengchengwen@huawei.com>,
	Dongdong Liu <liudongdong3@huawei.com>,
	Yisen Zhuang <yisen.zhuang@huawei.com>,
	Lijun Ou <oulijun@huawei.com>,
	"Min Hu (Connor)" <humin29@huawei.com>
Subject: [PATCH 1/8] net/hns3: fix segment fault when using SVE xmit
Date: Wed, 27 Jul 2022 18:36:09 +0800	[thread overview]
Message-ID: <20220727103616.18596-2-liudongdong3@huawei.com> (raw)
In-Reply-To: <20220727103616.18596-1-liudongdong3@huawei.com>

From: Chengwen Feng <fengchengwen@huawei.com>

Currently, the number of Tx send bytes is obtained by accumulating the
length of the batch 'mbuf' packets of the current loop cycle.
Unfortunately, it uses svcntd (which means all lane, regardless of
whether the corresponding lane is valid) which may lead to overflow,
and thus refers to an invalid mbuf.

Because the SVE xmit algorithm applies only to a single mbuf, the
mbuf's data_len is equal pkt_len, so this patch fixes it by using
svaddv_u64(svbool_t pg, svuint64_t data_len) which only adds valid
lanes.

Fixes: fdcd6a3e0246 ("net/hns3: add bytes stats")
Cc: stable@dpdk.org

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_rxtx_vec_sve.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx_vec_sve.c b/drivers/net/hns3/hns3_rxtx_vec_sve.c
index be1fdbcdf0..b0dfb052bb 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_sve.c
+++ b/drivers/net/hns3/hns3_rxtx_vec_sve.c
@@ -435,9 +435,8 @@ hns3_tx_fill_hw_ring_sve(struct hns3_tx_queue *txq,
 				offsets, svdup_n_u64(valid_bit));
 
 		/* Increment bytes counter */
-		uint32_t idx;
-		for (idx = 0; idx < svcntd(); idx++)
-			txq->basic_stats.bytes += pkts[idx]->pkt_len;
+		txq->basic_stats.bytes +=
+			(svaddv_u64(pg, data_len) >> HNS3_UINT16_BIT);
 
 		/* update index for next loop */
 		i += svcntd();
-- 
2.22.0


  reply	other threads:[~2022-07-27 10:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-27 10:36 [PATCH 0/8] some bugfixes for hns3 Dongdong Liu
2022-07-27 10:36 ` Dongdong Liu [this message]
2022-07-27 10:36 ` [PATCH 2/8] net/hns3: fix next-to-use overflow when using SVE xmit Dongdong Liu
2022-07-27 10:36 ` [PATCH 3/8] net/hns3: fix next-to-use overflow when using simple xmit Dongdong Liu
2022-07-27 10:36 ` [PATCH 4/8] net/hns3: optimize SVE xmit performance Dongdong Liu
2022-07-27 10:36 ` [PATCH 5/8] net/hns3: fix segment fault when secondary process access FW Dongdong Liu
2022-07-27 10:36 ` [PATCH 6/8] net/hns3: delete rte unused tag Dongdong Liu
2022-07-27 10:36 ` [PATCH 7/8] net/hns3: fix uncleared hardware MAC statistics Dongdong Liu
2022-07-27 10:36 ` [PATCH 8/8] net/hns3: revert optimize Tx performance Dongdong Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220727103616.18596-2-liudongdong3@huawei.com \
    --to=liudongdong3@huawei.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=fengchengwen@huawei.com \
    --cc=ferruh.yigit@xilinx.com \
    --cc=humin29@huawei.com \
    --cc=oulijun@huawei.com \
    --cc=stable@dpdk.org \
    --cc=thomas@monjalon.net \
    --cc=yisen.zhuang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).