From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path:
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
by inbox.dpdk.org (Postfix) with ESMTP id DC4F5A0032;
Fri, 14 Jan 2022 09:59:40 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
by mails.dpdk.org (Postfix) with ESMTP id C526C4276A;
Fri, 14 Jan 2022 09:59:39 +0100 (CET)
Received: from cmccmta2.chinamobile.com (cmccmta2.chinamobile.com
[221.176.66.80])
by mails.dpdk.org (Postfix) with ESMTP id 310D64275E;
Fri, 14 Jan 2022 08:11:10 +0100 (CET)
Received: from spf.mail.chinamobile.com (unknown[172.16.121.7]) by
rmmx-syy-dmz-app08-12008 (RichMail) with SMTP id 2ee861e1220b4ab-c8ec7;
Fri, 14 Jan 2022 15:11:08 +0800 (CST)
X-RM-TRANSID: 2ee861e1220b4ab-c8ec7
X-RM-SPAM-FLAG: 00000000
Received: from yuwenjun_yewu@cmss.chinamobile.com ( [10.42.68.12] )
by ajax-webmail-syy-appsvr04-11004 (Richmail) with HTTP;
Fri, 14 Jan 2022 15:11:08 +0800 (CST)
Date: Fri, 14 Jan 2022 15:11:08 +0800 (CST)
From: =?utf-8?Q?=E4=BF=9E=E6=96=87=E4=BF=8A=5Fyewu?=
To: "Min Hu (Connor)" ,
tangchengchang ,
"ferruh.yigit"
Cc: dev , stable
Message-ID: <2afc61e1200b486-00003.Richmail.00008071009648883857@cmss.chinamobile.com>
References: <2afa61de7b9e301-0000a.Richmail.00009021307638582857@cmss.chinamobile.com>,
<2b7a133a-3111-e814-d92c-d2252f9bd5e3@huawei.com>
Subject: Re:Re: [PATCH] net/bonding: fix RSS not work for bonding in DPDK21.11
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_Part_19886_1921952870.1642144268503"
X-Priority: 3
X-RM-TRANSID: 2afc61e1200b486-00003
X-RM-OA-ENC-TYPE: 0
X-RM-FontColor: 0
X-CLIENT-INFO: X-TIMING=0&X-MASSSENT=0&X-SENSITIVE=0
X-Mailer: Richmail_Webapp(V2.3.25)
X-Mailman-Approved-At: Fri, 14 Jan 2022 09:59:38 +0100
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dev-bounces@dpdk.org
------=_Part_19886_1921952870.1642144268503
Content-Type: text/plain;charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Sorry=EF=BC=8Cmq_mode is RTE_ETH_MQ_RX_RSS in rte_eth_conf.
call chain:=20
rte_eth_bond_create()->rte_eth_dev_configure()->rte_eth_bond_slave_add()->r=
te_eth_dev_start()
Consider this call chain, internals->rss_key_len is 0 in bond_ethdev_config=
ure() when we call rte_eth_dev_configure().
If internals->rss_key_len is 0, internals->rss_key can not be set properly.
Because memcpy in bond_ethdev_configure() use internals->rss_key_len(it is =
0) as copy size, and internals->rss_key will not be set in other functions.
---
e.g.:
bond_ethdev_configure(struct rte_eth_dev *dev)
{
=09const char *name =3D dev->device->name
=09struct bond_dev_private *internals =3D dev->data->dev_private
...
=09/*
=09 * If RSS is enabled, fill table with default values and
=09 * set key to the value specified in port RSS configuration.
=09 * Fall back to default RSS key if the key is not specified
=09 */
=09if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
=09=09struct rte_eth_rss_conf *rss_conf =3D
=09=09=09&dev->data->dev_conf.rx_adv_conf.rss_conf
=09=09if (rss_conf->rss_key !=3D NULL) {
=09=09=09if (internals->rss_key_len > rss_conf->rss_key_len) {
=09=09=09=09RTE_BOND_LOG(ERR, "Invalid rss key length(%u)",
=09=09=09=09=09=09rss_conf->rss_key_len)
=09=09=09=09return -EINVAL
=09=09=09}
=09=09=09memcpy(internals->rss_key, rss_conf->rss_key,
=09=09=09 internals->rss_key_len)
=09=09} else {
=09=09=09if (internals->rss_key_len > sizeof(default_rss_key)) {
=09=09=09=09RTE_BOND_LOG(ERR,
=09=09=09=09 "There is no suitable default hash key")
=09=09=09=09return -EINVAL
=09=09=09}
=09=09=09memcpy(internals->rss_key, default_rss_key,
=09=09=09 internals->rss_key_len)
=09=09}
----Origin----From=EF=BC=9A"Min Hu (Connor)" To=EF=BC=
=9A"yuwenjun_yewu" ,tangchengchang ,"ferruh.yigit" Cc: dev ,stable Date=EF=BC=9A2022-01-14 08:59:21Subje=
ct=EF=BC=9ARe: [PATCH] net/bonding: fix RSS not work for bonding in DPDK21.=
11Hi,=E5=9C=A8 2022/1/12 15:29, =E4=BF=9E=E6=96=87=E4=BF=8A_yewu =E5=86=99=
=E9=81=93:> From 85c4ffffe32996fc262dd6f69d0ce272ae8e8350 Mon Sep 17 00:00=
:00 2001> > From: Yu Wenjun > > Date: W=
ed, 12 Jan 2022 15:01:10 +0800> > Subject: [PATCH] net/bonding: fix RSS not=
work for bonding> > > RSS don39t work when upgrade to DPDK21.11.Cannot get=
your meaning, Why RSS don39t work?As mq_mode is not RTE_ETH_MQ_RX_RSS in r=
te_eth_conf, RSS is off.Please make it clearer, thanks.> > > e.g.:> > examp=
les/bond/main.c:> > conf:> > static struct rte_eth_conf port_conf =3D {> > =
.rxmode =3D {> > .mq_mode =3D RTE_ETH_MQ_RX_NONE,> > .split_hdr_size =3D 0,=
> > },> > .rx_adv_conf =3D {> > .rss_conf =3D {> > .rss_key =3D NULL,> > .r=
ss_hf =3D RTE_ETH_RSS_IP,> > },> > },> > .txmode =3D {> > .mq_mode =3D RTE_=
ETH_MQ_TX_NONE,> > },> > }> > > call chain:> > rte_eth_bond_create()->rte_e=
th_dev_configure()->rte_eth_bond_slave_add()->rte_eth_dev_start()> > > Sign=
ed-off-by: Yu Wenjun > > ---> > drive=
rs/net/bonding/rte_eth_bond_pmd.c | 5 +++++> > 1 file changed, 5 insertio=
ns(+)> > > diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c > b/drivers/=
net/bonding/rte_eth_bond_pmd.c> > index 84f4900ee5..31bcee15cf 100644> > --=
- a/drivers/net/bonding/rte_eth_bond_pmd.c> > +++ b/drivers/net/bonding/rte=
_eth_bond_pmd.c> > @@ -3504,6 +3504,11 @@ bond_ethdev_configure(struct rte_=
eth_dev *dev)> > if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS=
) {> > struct rte_eth_rss_conf *rss_conf =3D> > &dev->data->dev_conf.rx_adv=
_conf.rss_conf> > +> > +if (internals->rss_key_len =3D=3D 0) {> > +internal=
s->rss_key_len =3D sizeof(default_rss_key)> > +}> > +> > if (rss_conf->rss_=
key !=3D NULL) {> > if (internals->rss_key_len > rss_conf->rss_key_len) {> =
> RTE_BOND_LOG(ERR, "Invalid rss key length(%u)",> > -- > > 2.32.0.windows.=
1> > Subject=EF=BC=9ARe: [PATCH] net/bonding: fix RSS not work for bonding =
in DPDK21.11Hi,=E5=9C=A8 2022/1/12 15:29, =E4=BF=9E=E6=96=87=E4=BF=8A_yewu =
=E5=86=99=E9=81=93:> From 85c4ffffe32996fc262dd6f69d0ce272ae8e8350 Mon Sep=
17 00:00:00 2001> > From: Yu Wenjun > =
> Date: Wed, 12 Jan 2022 15:01:10 +0800> > Subject: [PATCH] net/bonding: fi=
x RSS not work for bonding> > > RSS don39t work when upgrade to DPDK21.11.C=
annot get your meaning, Why RSS don39t work?As mq_mode is not RTE_ETH_MQ_RX=
_RSS in rte_eth_conf, RSS is off.Please make it clearer, thanks.> > > e.g.:=
> > examples/bond/main.c:> > conf:> > static struct rte_eth_conf port_conf =
=3D {> > .rxmode =3D {> > .mq_mode =3D RTE_ETH_MQ_RX_NONE,> > .split_hdr_si=
ze =3D 0,> > },> > .rx_adv_conf =3D {> > .rss_conf =3D {> > .rss_key =3D NU=
LL,> > .rss_hf =3D RTE_ETH_RSS_IP,> > },> > },> > .txmode =3D {> > .mq_mode=
=3D RTE_ETH_MQ_TX_NONE,> > },> > }> > > call chain:> > rte_eth_bond_create=
()->rte_eth_dev_configure()->rte_eth_bond_slave_add()->rte_eth_dev_start()>=
> > Signed-off-by: Yu Wenjun > > ---> =
> drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++> > 1 file changed, 5=
insertions(+)> > > diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c > b=
/drivers/net/bonding/rte_eth_bond_pmd.c> > index 84f4900ee5..31bcee15cf 100=
644> > --- a/drivers/net/bonding/rte_eth_bond_pmd.c> > +++ b/drivers/net/bo=
nding/rte_eth_bond_pmd.c> > @@ -3504,6 +3504,11 @@ bond_ethdev_configure(st=
ruct rte_eth_dev *dev)> > if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_=
MQ_RX_RSS) {> > struct rte_eth_rss_conf *rss_conf =3D> > &dev->data->dev_co=
nf.rx_adv_conf.rss_conf> > +> > +if (internals->rss_key_len =3D=3D 0) {> > =
+internals->rss_key_len =3D sizeof(default_rss_key)> > +}> > +> > if (rss_c=
onf->rss_key !=3D NULL) {> > if (internals->rss_key_len > rss_conf->rss_key=
_len) {> > RTE_BOND_LOG(ERR, "Invalid rss key length(%u)",> > -- > > 2.32.0=
.windows.1> >=20
------=_Part_19886_1921952870.1642144268503
Content-Type: text/html;charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Sorry=EF=BC=8Cmq_mode is RTE_ETH_MQ_RX_RSS in rte_eth_conf.
<=
br/>
call chain:
rte_eth_bond_create()->rte_eth_dev_co=
nfigure()->rte_eth_bond_slave_add()->rte_eth_dev_start()
<=
/p>
Consider this call chain, internals->rss_key_len is 0 in bond_ethd=
ev_configure() when we call rte_eth_dev_configure().
If internals->=
;rss_key_len is 0, internals->rss_key can not be set properly.
Bec=
ause memcpy in bond_ethdev_configure() use internals->rss_key_len(i=
t is 0) as copy size, and internals->rss_key will not be set in other fu=
nctions.
---
e.g.:
bond_ethdev_configure(stru=
ct rte_eth_dev *dev)
{
=09const char *name =3D dev->device->name;
=09struct bond_dev_private *internals =3D dev->data-&g=
t;dev_private;
...
=
=09/*
=09 * If RSS is e=
nabled, fill table with default values and
=09 * set key to the value specified in port RSS configuration=
.
=09 * Fall back to default R=
SS key if the key is not specified
=
=09 */
=09if (dev->d=
ata->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
=09=09struct rte_eth_rss_conf *rss_conf =3D
=09=09=09&dev->data->d=
ev_conf.rx_adv_conf.rss_conf;
=09=09if (rss_conf->rss_key !=3D NULL) {
=09=09=09if (internals->rss_key_len > rss=
_conf->rss_key_len) {
=09=09=09=09=
RTE_BOND_LOG(ERR, "Invalid rss key length(%u)",
=09=09=09=09=09=09rss_conf->rss_key_l=
en);
=09=09=09=09return -EINVA=
L;
=09=09=09}
<=
p>=09=09=09memcpy(internals->rss_=
key, rss_conf->rss_key,
=09=09=09<=
/span> internals->rss_key_len);
=09=09} else {
=09=09=09if (internals->rss_key_len > sizeof(default_=
rss_key)) {
=09=09=09=09RTE_BO=
ND_LOG(ERR,
=09=09=09=09 =
"There is no suitable default hash key");
=09=09=09=09return -EINVAL;
<=
p>=09=09=09}
=09=09=09memcpy(internals->rss_key, de=
fault_rss_key,
=09=09=09 =
internals->rss_key_len);
=09=09}
----Origin----
From=
=EF=BC=9A"Min Hu (Connor)" <humin29@huawei.com&=
gt;
To=EF=BC=9A"yuwenjun_yewu" <yuwenjun_yewu@cmss.ch=
inamobile.com>,tangchengchang <tangchengchang@huawei.com&g=
t;,"ferruh.yigit" <ferruh.yigit@intel.com>
Cc:&nbs=
p;dev <dev@dpdk.org>,stable <stable@dpdk.org=
>
Date=EF=BC=9A2022-01-14 08:59:21
Subject=EF=BC=9ARe: =
;[PATCH] net/bonding: fix RSS not work for&nb=
sp;bonding in DPDK21.11
Hi,
=E5=9C=A8 2022=
/1/12 15:29, =E4=BF=9E=E6=96=87=E4=BF=8A_yewu =E5=86=99=E9=
=81=93:
> From 85c4ffffe32996fc262dd6f69d0ce272ae8e8=
350 Mon Sep 17 00:00:00 2001
>
&g=
t; From: Yu Wenjun <yuwenjun_yewu@cmss.chinamobile.c=
om>
>
> Date: Wed, 12 Jan 2=
022 15:01:10 +0800
>
> Subject: [PA=
TCH] net/bonding: fix RSS not work for b=
onding
>
>
> RSS don't =
work when upgrade to DPDK21.11.
Cannot get&nbs=
p;your meaning, Why RSS don't work?
As&nbs=
p;mq_mode is not RTE_ETH_MQ_RX_RSS in rte_eth_conf=
, RSS is off.
Please make it clearer,&nbs=
p;thanks.
>
>
> e.g.:
&=
gt;
> examples/bond/main.c:
>
> =
conf:
>
> static struct rte_eth_conf&nbs=
p;port_conf =3D {
>
> .rxmode =3D&n=
bsp;{
>
> .mq_mode =3D RTE_ETH_MQ_RX_NON=
E,
>
> .split_hdr_size =3D 0,
>&n=
bsp;
> },
>
> .rx_adv_conf =3D&nb=
sp;{
>
> .rss_conf =3D {
> <=
br/>> .rss_key =3D NULL,
>
> .rs=
s_hf =3D RTE_ETH_RSS_IP,
>
> },
>=
> },
>
> .txmode =3D =
{
>
> .mq_mode =3D RTE_ETH_MQ_TX_NONE,>
> },
>
> };
>&nbs=
p;
>
> call chain:
>
>&nb=
sp;rte_eth_bond_create()->rte_eth_dev_configure()->rte_eth_bond_slave=
_add()->rte_eth_dev_start()
>
>
> =
Signed-off-by: Yu Wenjun <yuwenjun_yewu@cmss.chinamobile.=
com>
>
> ---
>
>  =
; drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++
=
>
> 1 file changed, 5 =
insertions(+)
>
>
> diff --git&n=
bsp;a/drivers/net/bonding/rte_eth_bond_pmd.c
> b/drivers/=
net/bonding/rte_eth_bond_pmd.c
>
> index 84f4=
900ee5..31bcee15cf 100644
>
> --- a/driv=
ers/net/bonding/rte_eth_bond_pmd.c
>
> +++ b/=
drivers/net/bonding/rte_eth_bond_pmd.c
>
> @@ =
;-3504,6 +3504,11 @@ bond_ethdev_configure(struct rte_e=
th_dev *dev)
>
> if (dev->data->de=
v_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
>&nb=
sp;
> struct rte_eth_rss_conf *rss_conf =3D
=
>
> &dev->data->dev_conf.rx_adv_conf.rss_con=
f;
>
> +
>
> +if (in=
ternals->rss_key_len =3D=3D 0) {
>
>&=
nbsp;+internals->rss_key_len =3D sizeof(default_rss_key);
=
>
> +}
>
> +
> > if (rss_conf->rss_key !=3D NULL) {
=
>
> if (internals->rss_key_len > =
rss_conf->rss_key_len) {
>
> RTE_BOND_LOG(=
ERR, "Invalid rss key length(%u)",
>&n=
bsp;
> --
>
> 2.32.0.windows.1>
>
Subject=EF=BC=9ARe: [PATCH] =
;net/bonding: fix RSS not work for bonding&nb=
sp;in DPDK21.11
Hi,
=E5=9C=A8 2022/1/12 15=
:29, =E4=BF=9E=E6=96=87=E4=BF=8A_yewu =E5=86=99=E9=81=93:
>=
; From 85c4ffffe32996fc262dd6f69d0ce272ae8e8350 Mon&nb=
sp;Sep 17 00:00:00 2001
>
> From:&n=
bsp;Yu Wenjun <yuwenjun_yewu@cmss.chinamobile.com>
>=
> Date: Wed, 12 Jan 2022 15:01:=
10 +0800
>
> Subject: [PATCH] net/b=
onding: fix RSS not work for bonding
>=
>
> RSS don't work when&=
nbsp;upgrade to DPDK21.11.
Cannot get your mea=
ning, Why RSS don't work?
As mq_mode =
is not RTE_ETH_MQ_RX_RSS in rte_eth_conf, RSS =
;is off.
Please make it clearer, thanks.
<=
br/>
>
>
> e.g.:
>
&=
gt; examples/bond/main.c:
>
> conf:
>&=
nbsp;
> static struct rte_eth_conf port_conf&nbs=
p;=3D {
>
> .rxmode =3D {
>&=
nbsp;
> .mq_mode =3D RTE_ETH_MQ_RX_NONE,
>&nbs=
p;
> .split_hdr_size =3D 0,
>
>&n=
bsp;},
>
> .rx_adv_conf =3D {
>&n=
bsp;
> .rss_conf =3D {
>
> .=
rss_key =3D NULL,
>
> .rss_hf =3D&n=
bsp;RTE_ETH_RSS_IP,
>
> },
>
>=
},
>
> .txmode =3D {
> =
;
> .mq_mode =3D RTE_ETH_MQ_TX_NONE,
> > },
>
> };
>
>&nbs=
p;
> call chain:
>
> rte_eth_bond=
_create()->rte_eth_dev_configure()->rte_eth_bond_slave_add()->rte_=
eth_dev_start()
>
>
> Signed-off-by:&=
nbsp;Yu Wenjun <yuwenjun_yewu@cmss.chinamobile.com>
>=
;
> ---
>
> drivers/=
net/bonding/rte_eth_bond_pmd.c | 5 +++++
>
=
> 1 file changed, 5 insertions(+)>
>
> diff --git a/drivers/n=
et/bonding/rte_eth_bond_pmd.c
> b/drivers/net/bonding/rte=
_eth_bond_pmd.c
>
> index 84f4900ee5..31bcee1=
5cf 100644
>
> --- a/drivers/net/bonding=
/rte_eth_bond_pmd.c
>
> +++ b/drivers/net/bon=
ding/rte_eth_bond_pmd.c
>
> @@ -3504,6 +=
3504,11 @@ bond_ethdev_configure(struct rte_eth_dev *de=
v)
>
> if (dev->data->dev_conf.rxmode.m=
q_mode & RTE_ETH_MQ_RX_RSS) {
>
>&nb=
sp;struct rte_eth_rss_conf *rss_conf =3D
>
=
> &dev->data->dev_conf.rx_adv_conf.rss_conf;
>&nbs=
p;
> +
>
> +if (internals->rss=
_key_len =3D=3D 0) {
>
> +internals=
->rss_key_len =3D sizeof(default_rss_key);
>
=
> +}
>
> +
>
> if=
(rss_conf->rss_key !=3D NULL) {
>
=
> if (internals->rss_key_len > rss_conf->rs=
s_key_len) {
>
> RTE_BOND_LOG(ERR, "=
;Invalid rss key length(%u)",
>
>&n=
bsp;--
>
> 2.32.0.windows.1
> >
------=_Part_19886_1921952870.1642144268503--