From: Huisong Li <lihuisong@huawei.com>
To: <dev@dpdk.org>
Cc: <ferruh.yigit@amd.com>, <andrew.rybchenko@oktetlabs.ru>,
<3chas3@gmail.com>, <humin29@huawei.com>,
<stephen@networkplumber.org>, <liudongdong3@huawei.com>,
<huangdaode@huawei.com>, <lihuisong@huawei.com>
Subject: [PATCH V2] net/bonding: fix bond3 and bond4 process mbuf fast free
Date: Wed, 9 Nov 2022 10:22:37 +0800 [thread overview]
Message-ID: <20221109022237.49757-1-lihuisong@huawei.com> (raw)
In-Reply-To: <20221108084038.25136-1-lihuisong@huawei.com>
The RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE offload can't be used in bonding
mode Broadcast and mode 8023AD. Currently, bonding driver forcibly removes
from the dev->data->dev_conf.txmode.offloads and processes as success in
bond_ethdev_configure(). But this still cause that rte_eth_dev_configure()
fails to execute because of the failure of validating Tx offload in the
eth_dev_validate_offloads(). So this patch moves the modification of txmode
offlaods to the stage of adding slave device to report the correct txmode
offloads.
Fixes: 18c41457cbae ("net/bonding: fix mbuf fast free usage")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
-v2: report the correct txmode offloads based on bonding mode in the
bonding driver, and not in testpmd.
---
drivers/net/bonding/rte_eth_bond_api.c | 5 +++++
drivers/net/bonding/rte_eth_bond_pmd.c | 11 -----------
2 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c
index 694fe86115..c0178369b4 100644
--- a/drivers/net/bonding/rte_eth_bond_api.c
+++ b/drivers/net/bonding/rte_eth_bond_api.c
@@ -544,6 +544,11 @@ __eth_bond_slave_add_lock_free(uint16_t bonded_port_id, uint16_t slave_port_id)
return ret;
}
+ /* Bond mode Broadcast & 8023AD don't support MBUF_FAST_FREE offload. */
+ if (internals->mode == BONDING_MODE_8023AD ||
+ internals->mode == BONDING_MODE_BROADCAST)
+ internals->tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
+
bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf &=
internals->flow_type_rss_offloads;
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 864e073db8..2efaad1e8e 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -3643,7 +3643,6 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
const char *name = dev->device->name;
struct bond_dev_private *internals = dev->data->dev_private;
struct rte_kvargs *kvlist = internals->kvlist;
- uint64_t offloads;
int arg_count;
uint16_t port_id = dev - rte_eth_devices;
uint32_t link_speeds;
@@ -3708,16 +3707,6 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
}
}
- offloads = dev->data->dev_conf.txmode.offloads;
- if ((offloads & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) &&
- (internals->mode == BONDING_MODE_8023AD ||
- internals->mode == BONDING_MODE_BROADCAST)) {
- RTE_BOND_LOG(WARNING,
- "bond mode broadcast & 8023AD don't support MBUF_FAST_FREE offload, force disable it.");
- offloads &= ~RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
- dev->data->dev_conf.txmode.offloads = offloads;
- }
-
link_speeds = dev->data->dev_conf.link_speeds;
/*
* The default value of 'link_speeds' is zero. From its definition,
--
2.33.0
next prev parent reply other threads:[~2022-11-09 2:22 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-08 8:40 [PATCH 0/2] net/bonding: fix mbuf fast free for bond3 and bond4 Huisong Li
2022-11-08 8:40 ` [PATCH 1/2] net/bonding: fix bond3 and bond4 process mbuf fast free Huisong Li
2022-11-08 8:40 ` [PATCH 2/2] app/testpmd: remove fast free offload for bond3 and bond4 Huisong Li
2022-11-08 18:01 ` Stephen Hemminger
2022-11-09 1:11 ` lihuisong (C)
2022-11-09 2:22 ` Huisong Li [this message]
2022-11-09 3:24 ` [PATCH V2] net/bonding: fix bond3 and bond4 process mbuf fast free Stephen Hemminger
2022-11-09 10:37 ` Andrew Rybchenko
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=20221109022237.49757-1-lihuisong@huawei.com \
--to=lihuisong@huawei.com \
--cc=3chas3@gmail.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@amd.com \
--cc=huangdaode@huawei.com \
--cc=humin29@huawei.com \
--cc=liudongdong3@huawei.com \
--cc=stephen@networkplumber.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.