Message ID | 1420355937-18484-7-git-send-email-changchun.ouyang@intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id CB0325A72; Sun, 4 Jan 2015 08:19:21 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 9E6A35A60 for <dev@dpdk.org>; Sun, 4 Jan 2015 08:19:19 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP; 03 Jan 2015 23:17:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,694,1413270000"; d="scan'208";a="656516667" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by fmsmga002.fm.intel.com with ESMTP; 03 Jan 2015 23:19:18 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id t047JGFP032364; Sun, 4 Jan 2015 15:19:16 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id t047JDQD018560; Sun, 4 Jan 2015 15:19:15 +0800 Received: (from couyang@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t047JD44018556; Sun, 4 Jan 2015 15:19:13 +0800 From: Ouyang Changchun <changchun.ouyang@intel.com> To: dev@dpdk.org Date: Sun, 4 Jan 2015 15:18:57 +0800 Message-Id: <1420355937-18484-7-git-send-email-changchun.ouyang@intel.com> X-Mailer: git-send-email 1.7.12.2 In-Reply-To: <1420355937-18484-1-git-send-email-changchun.ouyang@intel.com> References: <1419398584-19520-1-git-send-email-changchun.ouyang@intel.com> <1420355937-18484-1-git-send-email-changchun.ouyang@intel.com> Subject: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Commit Message
Ouyang Changchun
Jan. 4, 2015, 7:18 a.m. UTC
Set VMDq RSS mode if it has VF(VF number is more than 1) and has RSS information.
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
---
app/test-pmd/testpmd.c | 10 ++++++++++
1 file changed, 10 insertions(+)
Comments
On 01/04/15 09:18, Ouyang Changchun wrote: > Set VMDq RSS mode if it has VF(VF number is more than 1) and has RSS information. > > Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> > --- > app/test-pmd/testpmd.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > index 8c69756..6230f8b 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -1708,6 +1708,16 @@ init_port_config(void) > port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_NONE; > } > > + if (port->dev_info.max_vfs != 0) { > + if (port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) > + port->dev_conf.rxmode.mq_mode = > + ETH_MQ_RX_VMDQ_RSS; > + else { > + port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_NONE; > + port->dev_conf.txmode.mq_mode = ETH_MQ_TX_NONE; And what about the txmode.mq_mode when RSS is available (the :if" clause)? > + } > + } > + > port->rx_conf.rx_thresh = rx_thresh; > port->rx_conf.rx_free_thresh = rx_free_thresh; > port->rx_conf.rx_drop_en = rx_drop_en;
> -----Original Message----- > From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > Sent: Sunday, January 4, 2015 4:50 PM > To: Ouyang, Changchun; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode > > > On 01/04/15 09:18, Ouyang Changchun wrote: > > Set VMDq RSS mode if it has VF(VF number is more than 1) and has RSS > information. > > > > Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> > > --- > > app/test-pmd/testpmd.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index > > 8c69756..6230f8b 100644 > > --- a/app/test-pmd/testpmd.c > > +++ b/app/test-pmd/testpmd.c > > @@ -1708,6 +1708,16 @@ init_port_config(void) > > port->dev_conf.rxmode.mq_mode = > ETH_MQ_RX_NONE; > > } > > > > + if (port->dev_info.max_vfs != 0) { > > + if (port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) > > + port->dev_conf.rxmode.mq_mode = > > + ETH_MQ_RX_VMDQ_RSS; > > + else { > > + port->dev_conf.rxmode.mq_mode = > ETH_MQ_RX_NONE; > > + port->dev_conf.txmode.mq_mode = > ETH_MQ_TX_NONE; > > And what about the txmode.mq_mode when RSS is available (the :if" clause)? I think we can keep its original value for txmode.mq_mode, so don't change its value. How do you think of it? Thanks Changchun
On 01/04/15 11:01, Ouyang, Changchun wrote: >> -----Original Message----- >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] >> Sent: Sunday, January 4, 2015 4:50 PM >> To: Ouyang, Changchun; dev@dpdk.org >> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode >> >> >> On 01/04/15 09:18, Ouyang Changchun wrote: >>> Set VMDq RSS mode if it has VF(VF number is more than 1) and has RSS >> information. >>> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> >>> --- >>> app/test-pmd/testpmd.c | 10 ++++++++++ >>> 1 file changed, 10 insertions(+) >>> >>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index >>> 8c69756..6230f8b 100644 >>> --- a/app/test-pmd/testpmd.c >>> +++ b/app/test-pmd/testpmd.c >>> @@ -1708,6 +1708,16 @@ init_port_config(void) >>> port->dev_conf.rxmode.mq_mode = >> ETH_MQ_RX_NONE; >>> } >>> >>> + if (port->dev_info.max_vfs != 0) { >>> + if (port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) >>> + port->dev_conf.rxmode.mq_mode = >>> + ETH_MQ_RX_VMDQ_RSS; >>> + else { >>> + port->dev_conf.rxmode.mq_mode = >> ETH_MQ_RX_NONE; >>> + port->dev_conf.txmode.mq_mode = >> ETH_MQ_TX_NONE; >> >> And what about the txmode.mq_mode when RSS is available (the :if" clause)? > I think we can keep its original value for txmode.mq_mode, so don't change its value. How do you think of it? I agree that not changing a Tx mq_mode in both cases would be better. > Thanks > Changchun > >
> -----Original Message----- > From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > Sent: Sunday, January 4, 2015 5:47 PM > To: Ouyang, Changchun; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode > > > On 01/04/15 11:01, Ouyang, Changchun wrote: > >> -----Original Message----- > >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > >> Sent: Sunday, January 4, 2015 4:50 PM > >> To: Ouyang, Changchun; dev@dpdk.org > >> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode > >> > >> > >> On 01/04/15 09:18, Ouyang Changchun wrote: > >>> Set VMDq RSS mode if it has VF(VF number is more than 1) and has RSS > >> information. > >>> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> > >>> --- > >>> app/test-pmd/testpmd.c | 10 ++++++++++ > >>> 1 file changed, 10 insertions(+) > >>> > >>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index > >>> 8c69756..6230f8b 100644 > >>> --- a/app/test-pmd/testpmd.c > >>> +++ b/app/test-pmd/testpmd.c > >>> @@ -1708,6 +1708,16 @@ init_port_config(void) > >>> port->dev_conf.rxmode.mq_mode = > >> ETH_MQ_RX_NONE; > >>> } > >>> > >>> + if (port->dev_info.max_vfs != 0) { > >>> + if (port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) > >>> + port->dev_conf.rxmode.mq_mode = > >>> + ETH_MQ_RX_VMDQ_RSS; > >>> + else { > >>> + port->dev_conf.rxmode.mq_mode = > >> ETH_MQ_RX_NONE; > >>> + port->dev_conf.txmode.mq_mode = > >> ETH_MQ_TX_NONE; > >> > >> And what about the txmode.mq_mode when RSS is available (the :if" > clause)? > > I think we can keep its original value for txmode.mq_mode, so don't > change its value. How do you think of it? > > I agree that not changing a Tx mq_mode in both cases would be better. In the else clause, set txmode.mq_mode as ETH_MQ_TX_NONE explicitly to make sure it is neither ETH_MQ_TX_DCB, ETH_MQ_TX_VMDQ_DCB, nor ETH_MQ_TX_VMDQ_ONLY. > > Thanks > > Changchun > > > >
On 01/05/15 04:38, Ouyang, Changchun wrote: > >> -----Original Message----- >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] >> Sent: Sunday, January 4, 2015 5:47 PM >> To: Ouyang, Changchun; dev@dpdk.org >> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode >> >> >> On 01/04/15 11:01, Ouyang, Changchun wrote: >>>> -----Original Message----- >>>> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] >>>> Sent: Sunday, January 4, 2015 4:50 PM >>>> To: Ouyang, Changchun; dev@dpdk.org >>>> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode >>>> >>>> >>>> On 01/04/15 09:18, Ouyang Changchun wrote: >>>>> Set VMDq RSS mode if it has VF(VF number is more than 1) and has RSS >>>> information. >>>>> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> >>>>> --- >>>>> app/test-pmd/testpmd.c | 10 ++++++++++ >>>>> 1 file changed, 10 insertions(+) >>>>> >>>>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index >>>>> 8c69756..6230f8b 100644 >>>>> --- a/app/test-pmd/testpmd.c >>>>> +++ b/app/test-pmd/testpmd.c >>>>> @@ -1708,6 +1708,16 @@ init_port_config(void) >>>>> port->dev_conf.rxmode.mq_mode = >>>> ETH_MQ_RX_NONE; >>>>> } >>>>> >>>>> + if (port->dev_info.max_vfs != 0) { >>>>> + if (port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) >>>>> + port->dev_conf.rxmode.mq_mode = >>>>> + ETH_MQ_RX_VMDQ_RSS; >>>>> + else { >>>>> + port->dev_conf.rxmode.mq_mode = >>>> ETH_MQ_RX_NONE; >>>>> + port->dev_conf.txmode.mq_mode = >>>> ETH_MQ_TX_NONE; >>>> >>>> And what about the txmode.mq_mode when RSS is available (the :if" >> clause)? >>> I think we can keep its original value for txmode.mq_mode, so don't >> change its value. How do you think of it? >> >> I agree that not changing a Tx mq_mode in both cases would be better. > In the else clause, set txmode.mq_mode as ETH_MQ_TX_NONE explicitly to make sure it is neither ETH_MQ_TX_DCB, > ETH_MQ_TX_VMDQ_DCB, nor ETH_MQ_TX_VMDQ_ONLY. It's not obvious to me why u should do that since AFAIK any of these modes requires RX_RSS. Do I miss anything? > >>> Thanks >>> Changchun >>> >>>
> -----Original Message----- > From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > Sent: Monday, January 5, 2015 6:12 PM > To: Ouyang, Changchun; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode > > > On 01/05/15 04:38, Ouyang, Changchun wrote: > > > >> -----Original Message----- > >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > >> Sent: Sunday, January 4, 2015 5:47 PM > >> To: Ouyang, Changchun; dev@dpdk.org > >> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode > >> > >> > >> On 01/04/15 11:01, Ouyang, Changchun wrote: > >>>> -----Original Message----- > >>>> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > >>>> Sent: Sunday, January 4, 2015 4:50 PM > >>>> To: Ouyang, Changchun; dev@dpdk.org > >>>> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS > >>>> mode > >>>> > >>>> > >>>> On 01/04/15 09:18, Ouyang Changchun wrote: > >>>>> Set VMDq RSS mode if it has VF(VF number is more than 1) and has > >>>>> RSS > >>>> information. > >>>>> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> > >>>>> --- > >>>>> app/test-pmd/testpmd.c | 10 ++++++++++ > >>>>> 1 file changed, 10 insertions(+) > >>>>> > >>>>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index > >>>>> 8c69756..6230f8b 100644 > >>>>> --- a/app/test-pmd/testpmd.c > >>>>> +++ b/app/test-pmd/testpmd.c > >>>>> @@ -1708,6 +1708,16 @@ init_port_config(void) > >>>>> port->dev_conf.rxmode.mq_mode = > >>>> ETH_MQ_RX_NONE; > >>>>> } > >>>>> > >>>>> + if (port->dev_info.max_vfs != 0) { > >>>>> + if (port- > >dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) > >>>>> + port->dev_conf.rxmode.mq_mode = > >>>>> + ETH_MQ_RX_VMDQ_RSS; > >>>>> + else { > >>>>> + port->dev_conf.rxmode.mq_mode = > >>>> ETH_MQ_RX_NONE; > >>>>> + port->dev_conf.txmode.mq_mode = > >>>> ETH_MQ_TX_NONE; > >>>> > >>>> And what about the txmode.mq_mode when RSS is available (the :if" > >> clause)? > >>> I think we can keep its original value for txmode.mq_mode, so don't > >> change its value. How do you think of it? > >> > >> I agree that not changing a Tx mq_mode in both cases would be better. > > In the else clause, set txmode.mq_mode as ETH_MQ_TX_NONE explicitly > to > > make sure it is neither ETH_MQ_TX_DCB, ETH_MQ_TX_VMDQ_DCB, nor > ETH_MQ_TX_VMDQ_ONLY. > > It's not obvious to me why u should do that since AFAIK any of these modes > requires RX_RSS. Do I miss anything? No, I don't think so, in the else clause, it doesn't need rx_rss, and no way to do it, because the case is there is no rss configuration information(note: in the else clause, dev_conf.rx_adv_conf.rss_conf.rss_hf == 0). So ETH_MQ_RX_NONE for rx_mode, and ETH_MQ_TX_NONE for tx_mode. > > > >>> Thanks > >>> Changchun > >>> > >>>
On 01/06/15 04:01, Ouyang, Changchun wrote: > >> -----Original Message----- >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] >> Sent: Monday, January 5, 2015 6:12 PM >> To: Ouyang, Changchun; dev@dpdk.org >> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode >> >> >> On 01/05/15 04:38, Ouyang, Changchun wrote: >>>> -----Original Message----- >>>> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] >>>> Sent: Sunday, January 4, 2015 5:47 PM >>>> To: Ouyang, Changchun; dev@dpdk.org >>>> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode >>>> >>>> >>>> On 01/04/15 11:01, Ouyang, Changchun wrote: >>>>>> -----Original Message----- >>>>>> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] >>>>>> Sent: Sunday, January 4, 2015 4:50 PM >>>>>> To: Ouyang, Changchun; dev@dpdk.org >>>>>> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS >>>>>> mode >>>>>> >>>>>> >>>>>> On 01/04/15 09:18, Ouyang Changchun wrote: >>>>>>> Set VMDq RSS mode if it has VF(VF number is more than 1) and has >>>>>>> RSS >>>>>> information. >>>>>>> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> >>>>>>> --- >>>>>>> app/test-pmd/testpmd.c | 10 ++++++++++ >>>>>>> 1 file changed, 10 insertions(+) >>>>>>> >>>>>>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index >>>>>>> 8c69756..6230f8b 100644 >>>>>>> --- a/app/test-pmd/testpmd.c >>>>>>> +++ b/app/test-pmd/testpmd.c >>>>>>> @@ -1708,6 +1708,16 @@ init_port_config(void) >>>>>>> port->dev_conf.rxmode.mq_mode = >>>>>> ETH_MQ_RX_NONE; >>>>>>> } >>>>>>> >>>>>>> + if (port->dev_info.max_vfs != 0) { >>>>>>> + if (port- >>> dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) >>>>>>> + port->dev_conf.rxmode.mq_mode = >>>>>>> + ETH_MQ_RX_VMDQ_RSS; >>>>>>> + else { >>>>>>> + port->dev_conf.rxmode.mq_mode = >>>>>> ETH_MQ_RX_NONE; >>>>>>> + port->dev_conf.txmode.mq_mode = >>>>>> ETH_MQ_TX_NONE; >>>>>> >>>>>> And what about the txmode.mq_mode when RSS is available (the :if" >>>> clause)? >>>>> I think we can keep its original value for txmode.mq_mode, so don't >>>> change its value. How do you think of it? >>>> >>>> I agree that not changing a Tx mq_mode in both cases would be better. >>> In the else clause, set txmode.mq_mode as ETH_MQ_TX_NONE explicitly >> to >>> make sure it is neither ETH_MQ_TX_DCB, ETH_MQ_TX_VMDQ_DCB, nor >> ETH_MQ_TX_VMDQ_ONLY. >> >> It's not obvious to me why u should do that since AFAIK any of these modes >> requires RX_RSS. Do I miss anything? > No, I don't think so, in the else clause, it doesn't need rx_rss, and no way to do it, > because the case is there is no rss configuration information(note: in the else clause, dev_conf.rx_adv_conf.rss_conf.rss_hf == 0). > > So ETH_MQ_RX_NONE for rx_mode, and ETH_MQ_TX_NONE for tx_mode. Of course, however, in general, one may ask, why u configure TX MQ mode in "else" clause an don't do it in the "if" one. Possibly the "if" case in TX MQ context has been handled elsewhere but this is what makes this code confusing: to make it the most readable u'd rather configure the same feature set in both "if" and "else". For instance: if (bla-bla) { tx_mode = X1; rx_mode = X2; } else { tx_mode = Y1; rx_mode = Y2; } Look at the non-SR-IOV clause right above the "if-else" block u've added. Why don't they configure tx_mode there? Is it a bug in their code? By the way, u forgot to fix the remark below /* In SR-IOV mode, RSS mode is not available */ which is located a few lines above the code u've added. ;) > >>>>> Thanks >>>>> Changchun >>>>> >>>>>
> -----Original Message----- > From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > Sent: Tuesday, January 6, 2015 8:53 PM > To: Ouyang, Changchun; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode > > > On 01/06/15 04:01, Ouyang, Changchun wrote: > > > >> -----Original Message----- > >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > >> Sent: Monday, January 5, 2015 6:12 PM > >> To: Ouyang, Changchun; dev@dpdk.org > >> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode > >> > >> > >> On 01/05/15 04:38, Ouyang, Changchun wrote: > >>>> -----Original Message----- > >>>> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > >>>> Sent: Sunday, January 4, 2015 5:47 PM > >>>> To: Ouyang, Changchun; dev@dpdk.org > >>>> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS > >>>> mode > >>>> > >>>> > >>>> On 01/04/15 11:01, Ouyang, Changchun wrote: > >>>>>> -----Original Message----- > >>>>>> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > >>>>>> Sent: Sunday, January 4, 2015 4:50 PM > >>>>>> To: Ouyang, Changchun; dev@dpdk.org > >>>>>> Subject: Re: [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS > >>>>>> mode > >>>>>> > >>>>>> > >>>>>> On 01/04/15 09:18, Ouyang Changchun wrote: > >>>>>>> Set VMDq RSS mode if it has VF(VF number is more than 1) and has > >>>>>>> RSS > >>>>>> information. > >>>>>>> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> > >>>>>>> --- > >>>>>>> app/test-pmd/testpmd.c | 10 ++++++++++ > >>>>>>> 1 file changed, 10 insertions(+) > >>>>>>> > >>>>>>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > >>>>>>> index 8c69756..6230f8b 100644 > >>>>>>> --- a/app/test-pmd/testpmd.c > >>>>>>> +++ b/app/test-pmd/testpmd.c > >>>>>>> @@ -1708,6 +1708,16 @@ init_port_config(void) > >>>>>>> port->dev_conf.rxmode.mq_mode = > >>>>>> ETH_MQ_RX_NONE; > >>>>>>> } > >>>>>>> > >>>>>>> + if (port->dev_info.max_vfs != 0) { > >>>>>>> + if (port- > >>> dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) > >>>>>>> + port->dev_conf.rxmode.mq_mode = > >>>>>>> + ETH_MQ_RX_VMDQ_RSS; > >>>>>>> + else { > >>>>>>> + port->dev_conf.rxmode.mq_mode = > >>>>>> ETH_MQ_RX_NONE; > >>>>>>> + port->dev_conf.txmode.mq_mode = > >>>>>> ETH_MQ_TX_NONE; > >>>>>> > >>>>>> And what about the txmode.mq_mode when RSS is available > (the :if" > >>>> clause)? > >>>>> I think we can keep its original value for txmode.mq_mode, so > >>>>> don't > >>>> change its value. How do you think of it? > >>>> > >>>> I agree that not changing a Tx mq_mode in both cases would be better. > >>> In the else clause, set txmode.mq_mode as ETH_MQ_TX_NONE > explicitly > >> to > >>> make sure it is neither ETH_MQ_TX_DCB, ETH_MQ_TX_VMDQ_DCB, nor > >> ETH_MQ_TX_VMDQ_ONLY. > >> > >> It's not obvious to me why u should do that since AFAIK any of these > >> modes requires RX_RSS. Do I miss anything? > > No, I don't think so, in the else clause, it doesn't need rx_rss, and > > no way to do it, because the case is there is no rss configuration > information(note: in the else clause, dev_conf.rx_adv_conf.rss_conf.rss_hf > == 0). > > > > So ETH_MQ_RX_NONE for rx_mode, and ETH_MQ_TX_NONE for tx_mode. > > Of course, however, in general, one may ask, why u configure TX MQ mode > in "else" clause an don't do it in the "if" one. Possibly the "if" case in TX MQ > context has been handled elsewhere but this is what makes this code > confusing: to make it the most readable u'd rather configure the same > feature set in both "if" and "else". > For instance: > > if (bla-bla) { > tx_mode = X1; > rx_mode = X2; > } else { > tx_mode = Y1; > rx_mode = Y2; > } > > Look at the non-SR-IOV clause right above the "if-else" block u've added. > Why don't they configure tx_mode there? Is it a bug in their code? It also makes sense, I will add tx_mode = ETH_MQ_TX_NONE as no rss for tx mode, Rss only for rx mode. > By the way, u forgot to fix the remark below > > /* In SR-IOV mode, RSS mode is not available */ > > which is located a few lines above the code u've added. ;) Sorry, I missed these few lines before, I will remove them in v5. Thanks Changchun
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 8c69756..6230f8b 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1708,6 +1708,16 @@ init_port_config(void) port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_NONE; } + if (port->dev_info.max_vfs != 0) { + if (port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) + port->dev_conf.rxmode.mq_mode = + ETH_MQ_RX_VMDQ_RSS; + else { + port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_NONE; + port->dev_conf.txmode.mq_mode = ETH_MQ_TX_NONE; + } + } + port->rx_conf.rx_thresh = rx_thresh; port->rx_conf.rx_free_thresh = rx_free_thresh; port->rx_conf.rx_drop_en = rx_drop_en;