DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Wei Hu (Xavier)" <huwei013@chinasoftinc.com>
To: <dev@dpdk.org>
Cc: <xavier.huwei@huawei.com>
Subject: [dpdk-dev] [PATCH 7/8] net/hns3: add restriction on setting VF MTU
Date: Mon, 7 Sep 2020 17:08:24 +0800	[thread overview]
Message-ID: <20200907090825.1761-8-huwei013@chinasoftinc.com> (raw)
In-Reply-To: <20200907090825.1761-1-huwei013@chinasoftinc.com>

From: "Wei Hu (Xavier)" <xavier.huwei@huawei.com>

when Rx of scattered packets is off, we have some possibility of using
vector Rx process function or simple Rx functions in hns3 PMD driver.
If the input MTU is increased and the maximum length of received packets
is greater than the length of a buffer for Rx packets, the hardware network
engine needs to use multiple BDs and buffers to store these packets. This
will cause problems when still using vector Rx process function or simple
Rx function to receiving packets. So, when Rx of scattered packets is off
and device is started, it is not permitted to increase MTU so that the
maximum length of Rx packets is greater than Rx buffer length.

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
---
 drivers/net/hns3/hns3_ethdev_vf.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 93f2c93..44e51b5 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -871,6 +871,25 @@ hns3vf_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 		return -EIO;
 	}
 
+	/*
+	 * when Rx of scattered packets is off, we have some possibility of
+	 * using vector Rx process function or simple Rx functions in hns3 PMD
+	 * driver. If the input MTU is increased and the maximum length of
+	 * received packets is greater than the length of a buffer for Rx
+	 * packet, the hardware network engine needs to use multiple BDs and
+	 * buffers to store these packets. This will cause problems when still
+	 * using vector Rx process function or simple Rx function to receiving
+	 * packets. So, when Rx of scattered packets is off and device is
+	 * started, it is not permitted to increase MTU so that the maximum
+	 * length of Rx packets is greater than Rx buffer length.
+	 */
+	if (dev->data->dev_started && !dev->data->scattered_rx &&
+	    frame_size > hw->rx_buf_len) {
+		hns3_err(hw, "failed to set mtu because current is "
+			"not scattered rx mode");
+		return -EOPNOTSUPP;
+	}
+
 	rte_spinlock_lock(&hw->lock);
 	ret = hns3vf_config_mtu(hw, mtu);
 	if (ret) {
-- 
2.9.5


  parent reply	other threads:[~2020-09-07  9:10 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-07  9:08 [dpdk-dev] [PATCH 0/8] net/hns3: updates for Rx Tx Wei Hu (Xavier)
2020-09-07  9:08 ` [dpdk-dev] [PATCH 1/8] net/hns3: report Rx free threshold Wei Hu (Xavier)
2020-09-07  9:08 ` [dpdk-dev] [PATCH 2/8] net/hns3: reduce address calculation in Rx Wei Hu (Xavier)
2020-09-07  9:08 ` [dpdk-dev] [PATCH 3/8] net/hns3: add simple Rx process function Wei Hu (Xavier)
2020-09-07  9:08 ` [dpdk-dev] [PATCH 4/8] net/hns3: add simple Tx " Wei Hu (Xavier)
2020-09-07  9:08 ` [dpdk-dev] [PATCH 5/8] net/hns3: add vector Tx burst with NEON instructions Wei Hu (Xavier)
2020-09-07  9:08 ` [dpdk-dev] [PATCH 6/8] net/hns3: add vector Rx " Wei Hu (Xavier)
2020-09-07  9:08 ` Wei Hu (Xavier) [this message]
2020-09-07  9:08 ` [dpdk-dev] [PATCH 8/8] net/hns3: fix segfault when Tx multiple buffer packets Wei Hu (Xavier)
2020-09-09  9:23 ` [dpdk-dev] [PATCH v2 0/8] net/hns3: updates for Rx Tx Wei Hu (Xavier)
2020-09-09  9:23   ` [dpdk-dev] [PATCH v2 1/8] net/hns3: report Rx free threshold Wei Hu (Xavier)
2020-09-09  9:23   ` [dpdk-dev] [PATCH v2 2/8] net/hns3: reduce address calculation in Rx Wei Hu (Xavier)
2020-09-09  9:23   ` [dpdk-dev] [PATCH v2 3/8] net/hns3: add simple Rx process function Wei Hu (Xavier)
2020-09-09  9:23   ` [dpdk-dev] [PATCH v2 4/8] net/hns3: add simple Tx " Wei Hu (Xavier)
2020-09-09  9:23   ` [dpdk-dev] [PATCH v2 5/8] net/hns3: add vector Tx burst with NEON instructions Wei Hu (Xavier)
2020-09-09  9:23   ` [dpdk-dev] [PATCH v2 6/8] net/hns3: add vector Rx " Wei Hu (Xavier)
2020-09-09  9:23   ` [dpdk-dev] [PATCH v2 7/8] net/hns3: add restriction on setting VF MTU Wei Hu (Xavier)
2020-09-09  9:23   ` [dpdk-dev] [PATCH v2 8/8] net/hns3: fix segfault when Tx multiple buffer packets Wei Hu (Xavier)
2020-09-21 12:58   ` [dpdk-dev] [PATCH v2 0/8] net/hns3: updates for Rx Tx Ferruh Yigit

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=20200907090825.1761-8-huwei013@chinasoftinc.com \
    --to=huwei013@chinasoftinc.com \
    --cc=dev@dpdk.org \
    --cc=xavier.huwei@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).