From: "Li, Xiaoyun" <xiaoyun.li@intel.com>
To: Huisong Li <lihuisong@huawei.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Yigit, Ferruh" <ferruh.yigit@intel.com>
Subject: Re: [dpdk-dev] [PATCH V2 1/7] app/testpmd: fix forward lcores number when DCB test
Date: Wed, 28 Apr 2021 02:13:00 +0000 [thread overview]
Message-ID: <DM4PR11MB55341C53BA22EE896617364D99409@DM4PR11MB5534.namprd11.prod.outlook.com> (raw)
In-Reply-To: <efe98c04-f70b-a5ba-78b9-37ace2de2630@huawei.com>
> -----Original Message-----
> From: Huisong Li <lihuisong@huawei.com>
> Sent: Tuesday, April 27, 2021 21:50
> To: Li, Xiaoyun <xiaoyun.li@intel.com>; dev@dpdk.org
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>
> Subject: Re: [PATCH V2 1/7] app/testpmd: fix forward lcores number when DCB
> test
>
>
> 在 2021/4/27 17:20, Li, Xiaoyun 写道:
> >
> >> -----Original Message-----
> >> From: Huisong Li <lihuisong@huawei.com>
> >> Sent: Tuesday, April 20, 2021 15:32
> >> To: dev@dpdk.org
> >> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; Li, Xiaoyun
> >> <xiaoyun.li@intel.com>; linuxarm@openeuler.org; lihuisong@huawei.com
> >> Subject: [PATCH V2 1/7] app/testpmd: fix forward lcores number when
> >> DCB test
> >>
> >> Currently, 'nb_fwd_lcores' value are both adjusted based on
> >> 'nb_fwd_streams' in rss/simple/icmp_echo_fwd_config_setup.
> >> But the operation is missing in dcb_fwd_config_setup, which may lead
> >> to a bad behavior in which multiple polling threads operate on the same
> queue.
> > This patch is OK. But commit log is redundant and confusing.
> > The above is enough to explain what your patch is doing and can even be more
> simple.
> Sorry, I will fix it.
> >> In this
> >> case, the device sends and receives packets, causing unexpected
> >> results. The procedure is as follows:
> > I don't understand what you're saying here. The commands you're showing is 8
> nbcores dealing with 16 queues. So it's one thread dealing with multiple queues
> which doesn't have issues at all.
> > Please remove the useless and confusing commands.
>
> In the DCB test scenario, each TC is assigned a core, and one core can process
> multiple streams, that is, multiple queues.
>
> In this scenario, if four TCs are enabled and the total number of Rx/Tx queues
> are set to 16, each TC is responsible for four queues. If we set
> 8 core to start forwarding, and then 8 polling threads will be pulled up. Actually,
> the last four threads are redundant.
>
> Before changing the number of polling cores, if the number of columns is
> greater than the number of TCs used later. In the running process of the
> dcb_fwd_config_setup(), the data structure 'fwd_lcores[]'
> corresponding to the last four cores is not reinitialized. As a result, the last four
> threads would use the queue polled by the first four cores.
>
> It's probably a bit of a twist. In general, it is conditional that multiple cores
> operate on the same queue. That's why I posted the following steps.
>
> In different forwarding mode, 'fwd_lcores[]' of all cores may need to be cleared
> before 'fwd_lcores[]' of each forwarding core is initialized.
> What do you think?
Understood. But then you actually don't need to set rxq/txq to 16. Even if it's 8 queues, each tc is responsible for 2 queues. 8 cores will still cause that issue.
Changing queue number will be confusing. Like I didn't read it very carefully then I misunderstood what you were trying to explain here.
The example doesn't make your commit log clear but more confusing.
And the code is actually quite straightforward. I think the easy explanation is better.
But anyway, if you still want to keep the example, remove setting queue number again.
>
> >> 1/ run testpmd with "--rxq=8 --txq=8"
> >> 2/ port stop all
> >> 3/ set nbcore 8
> >> 4/ port config 0 dcb vt off 4 pfc on
> >> 5/ port config all rxq 16
> >> 6/ port config all txq 16
> >> 7/ port start all
> >> 8/ set fwd mac
> >> 9/ start
> >>
> >> For the DCB forwarding test, each core is assigned to each traffic
> >> class and each core is assigned a multi-stream.
> >> Therefore, 'nb_fwd_lcores' value needs to be adjusted based on
> 'total_tc_num'
> >> in all forwarding ports.
> > Please refer to the RSS fwd config fix patch to write your own commit log. Use
> simple and easy-understanding words to explain yourself.
> > Below is the reference of RSS.
> >
> > commit 017d680a91fcf30da14a6d3a2f96d41f6dda3a0f
> > Author: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> > Date: Mon Jun 27 23:35:19 2016 +0100
> >
> > app/testpmd: limit number of forwarding cores
> >
> > Number of forwarding cores must be equal or less than
> > number of forwarding streams, otherwise two cores
> > would try to use a same queue on a port, which is not allowed.
> >
> >> Fixes: 900550de04a7 ("app/testpmd: add dcb support")
> >> Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
> >> Cc: stable@dpdk.org
> >>
> >> Signed-off-by: Huisong Li <lihuisong@huawei.com>
> >> Signed-off-by: Lijun Ou <oulijun@huawei.com>
> >> ---
> >> app/test-pmd/config.c | 19 +++++++++++++++++++
> >> 1 file changed, 19 insertions(+)
> >>
> >> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index
> >> ccb9bd3..03ee40c 100644
> >> --- a/app/test-pmd/config.c
> >> +++ b/app/test-pmd/config.c
> >> @@ -2961,6 +2961,21 @@ rss_fwd_config_setup(void)
> >> }
> >> }
> >>
> >> +static uint16_t
> >> +get_fwd_port_total_tc_num(void)
> >> +{
> >> + struct rte_eth_dcb_info dcb_info;
> >> + uint16_t total_tc_num = 0;
> >> + unsigned int i;
> >> +
> >> + for (i = 0; i < nb_fwd_ports; i++) {
> >> + (void)rte_eth_dev_get_dcb_info(fwd_ports_ids[i], &dcb_info);
> >> + total_tc_num += dcb_info.nb_tcs;
> >> + }
> >> +
> >> + return total_tc_num;
> >> +}
> >> +
> >> /**
> >> * For the DCB forwarding test, each core is assigned on each traffic class.
> >> *
> >> @@ -2980,12 +2995,16 @@ dcb_fwd_config_setup(void)
> >> lcoreid_t lc_id;
> >> uint16_t nb_rx_queue, nb_tx_queue;
> >> uint16_t i, j, k, sm_id = 0;
> >> + uint16_t total_tc_num;
> >> uint8_t tc = 0;
> >>
> >> cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
> >> cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
> >> cur_fwd_config.nb_fwd_streams =
> >> (streamid_t) (nb_rxq * cur_fwd_config.nb_fwd_ports);
> >> + total_tc_num = get_fwd_port_total_tc_num();
> >> + if (cur_fwd_config.nb_fwd_lcores > total_tc_num)
> >> + cur_fwd_config.nb_fwd_lcores = total_tc_num;
> >>
> >> /* reinitialize forwarding streams */
> >> init_fwd_streams();
> >> --
> >> 2.7.4
> > .
next prev parent reply other threads:[~2021-04-28 2:13 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-05 10:22 [dpdk-dev] [PATCH 0/3] Fixes for testpmd Lijun Ou
2021-03-05 10:22 ` [dpdk-dev] [PATCH 1/3] app/testpmd: fix forwarding configuration when DCB test Lijun Ou
2021-03-23 8:55 ` Li, Xiaoyun
2021-03-23 14:17 ` oulijun
2021-03-23 14:17 ` oulijun
2021-03-24 1:51 ` Li, Xiaoyun
2021-04-10 1:12 ` Ferruh Yigit
2021-04-10 2:53 ` oulijun
2021-03-23 14:18 ` oulijun
2021-03-24 2:03 ` Li, Xiaoyun
2021-03-24 13:40 ` [dpdk-dev] [Linuxarm] " oulijun
2021-03-25 2:21 ` Li, Xiaoyun
2021-03-27 3:53 ` oulijun
2021-04-10 0:56 ` Ferruh Yigit
2021-04-10 2:58 ` oulijun
2021-04-12 7:52 ` Ferruh Yigit
2021-04-12 12:20 ` oulijun
2021-03-05 10:22 ` [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx Lijun Ou
2021-03-23 7:50 ` Li, Xiaoyun
2021-03-24 1:00 ` oulijun
2021-03-24 1:44 ` Li, Xiaoyun
2021-03-25 3:03 ` oulijun
2021-03-29 1:53 ` Li, Xiaoyun
2021-04-02 1:44 ` oulijun
2021-04-02 2:33 ` Li, Xiaoyun
2021-04-09 6:09 ` [dpdk-dev] [Linuxarm] " oulijun
2021-04-09 7:08 ` Li, Xiaoyun
2021-04-10 3:02 ` oulijun
2021-04-12 10:35 ` [dpdk-dev] " Ferruh Yigit
2021-04-12 12:20 ` oulijun
2021-03-05 10:22 ` [dpdk-dev] [PATCH 3/3] app/testpmd: use of Rx/Tx in testpmd Lijun Ou
2021-03-23 3:12 ` Li, Xiaoyun
2021-03-23 3:17 ` Li, Xiaoyun
2021-03-23 7:25 ` Andrew Rybchenko
2021-03-23 7:46 ` Tu, Lijuan
2021-03-23 7:51 ` oulijun
2021-03-23 7:58 ` Li, Xiaoyun
2021-03-23 10:42 ` Ferruh Yigit
2021-03-23 7:59 ` Tu, Lijuan
2021-03-20 1:19 ` [dpdk-dev] [PATCH 0/3] Fixes for testpmd Min Hu (Connor)
2021-04-20 7:31 ` [dpdk-dev] [PATCH V2 0/7] modifications about DCB forwarding configuration Huisong Li
2021-04-20 7:32 ` [dpdk-dev] [PATCH V2 1/7] app/testpmd: fix forward lcores number when DCB test Huisong Li
2021-04-27 9:20 ` Li, Xiaoyun
2021-04-27 13:49 ` Huisong Li
2021-04-28 2:13 ` Li, Xiaoyun [this message]
2021-04-20 7:32 ` [dpdk-dev] [PATCH V2 2/7] app/testpmd: fix DCB forwarding configuration Huisong Li
2021-04-20 7:32 ` [dpdk-dev] [PATCH V2 3/7] app/testpmd: fix a segment fault when DCB test Huisong Li
2021-04-20 7:32 ` [dpdk-dev] [PATCH V2 4/7] app/testpmd: add check for support of reporting DCB info Huisong Li
2021-04-20 7:32 ` [dpdk-dev] [PATCH V2 5/7] app/testpmd: move position of verifying DCB test Huisong Li
2021-04-20 7:32 ` [dpdk-dev] [PATCH V2 6/7] app/testpmd: add forwarding config in start port Huisong Li
2021-04-20 7:32 ` [dpdk-dev] [PATCH V2 7/7] app/testpmd: remove redundant fwd streams initialization Huisong Li
2021-04-20 7:35 ` [dpdk-dev] [PATCH 0/3] Fixes for testpmd Huisong Li
2021-04-20 9:00 ` [dpdk-dev] [PATCH V3 0/7] modifications about DCB forwarding configuration Huisong Li
2021-04-20 9:01 ` [dpdk-dev] [PATCH V3 1/7] app/testpmd: fix forward lcores number when DCB test Huisong Li
2021-04-27 10:18 ` Li, Xiaoyun
2021-04-20 9:01 ` [dpdk-dev] [PATCH V3 2/7] app/testpmd: fix DCB forwarding configuration Huisong Li
2021-04-27 10:59 ` Li, Xiaoyun
2021-04-27 14:13 ` Huisong Li
2021-04-20 9:01 ` [dpdk-dev] [PATCH V3 3/7] app/testpmd: fix a segment fault when DCB test Huisong Li
2021-04-27 11:19 ` Li, Xiaoyun
2021-04-27 14:10 ` Huisong Li
2021-04-28 2:02 ` Li, Xiaoyun
2021-04-28 2:26 ` Huisong Li
2021-04-20 9:01 ` [dpdk-dev] [PATCH V3 4/7] app/testpmd: add check for support of reporting DCB info Huisong Li
2021-04-27 11:26 ` Li, Xiaoyun
2021-04-20 9:01 ` [dpdk-dev] [PATCH V3 5/7] app/testpmd: move position of verifying DCB test Huisong Li
2021-04-27 11:33 ` Li, Xiaoyun
2021-04-20 9:01 ` [dpdk-dev] [PATCH V3 6/7] app/testpmd: add forwarding config in start port Huisong Li
2021-04-27 11:43 ` Li, Xiaoyun
2021-04-28 2:14 ` Huisong Li
2021-04-20 9:01 ` [dpdk-dev] [PATCH V3 7/7] app/testpmd: remove redundant fwd streams initialization Huisong Li
2021-04-27 11:50 ` Li, Xiaoyun
2021-04-28 6:40 ` [dpdk-dev] [PATCH V4 0/7] modifications about DCB forwarding configuration Huisong Li
2021-04-28 6:40 ` [dpdk-dev] [PATCH V4 1/7] app/testpmd: fix forward lcores number when DCB test Huisong Li
2021-04-28 6:40 ` [dpdk-dev] [PATCH V4 2/7] app/testpmd: fix DCB forwarding configuration Huisong Li
2021-04-28 6:40 ` [dpdk-dev] [PATCH V4 3/7] app/testpmd: fix a segment fault when DCB test Huisong Li
2021-04-28 6:40 ` [dpdk-dev] [PATCH V4 4/7] app/testpmd: add check for support of reporting DCB info Huisong Li
2021-04-28 6:40 ` [dpdk-dev] [PATCH V4 5/7] app/testpmd: move position of verifying DCB test Huisong Li
2021-04-28 6:40 ` [dpdk-dev] [PATCH V4 6/7] app/testpmd: add forwarding configuration when config DCB Huisong Li
2021-04-28 6:40 ` [dpdk-dev] [PATCH V4 7/7] app/testpmd: remove redundant fwd streams initialization Huisong Li
2021-04-28 7:01 ` [dpdk-dev] [PATCH V4 0/7] modifications about DCB forwarding configuration Li, Xiaoyun
2021-04-29 16:13 ` 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=DM4PR11MB55341C53BA22EE896617364D99409@DM4PR11MB5534.namprd11.prod.outlook.com \
--to=xiaoyun.li@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=lihuisong@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).