[dpdk-dev] [PATCH v7] app/testpmd: support multi-process

Min Hu (Connor) humin29 at huawei.com
Tue Mar 30 03:48:43 CEST 2021



在 2021/3/29 15:51, Li, Xiaoyun 写道:
> Hi
> 
>> -----Original Message-----
>> From: Min Hu (Connor) <humin29 at huawei.com>
>> Sent: Friday, March 26, 2021 16:53
>> To: dev at dpdk.org
>> Cc: Yigit, Ferruh <ferruh.yigit at intel.com>; ajit.khaparde at broadcom.com; Li,
>> Xiaoyun <xiaoyun.li at intel.com>
>> Subject: [PATCH v7] app/testpmd: support multi-process
>>
>> From: Lijun Ou <oulijun at huawei.com>
>>
>> This patch adds multi-process support for testpmd.
>> The test cmd example as follows:
>> the primary cmd:
>> ./dpdk-testpmd -a xxx --proc-type=auto -l 0-1 -- -i \
>> --rxq=4 --txq=4 --num-procs=2 --proc-id=0
>>
>> the secondary cmd:
>> ./dpdk-testpmd -a xxx --proc-type=auto -l 2-3 -- -i \
>> --rxq=4 --txq=4 --num-procs=2 --proc-id=1
>>
>> Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
>> Signed-off-by: Lijun Ou <oulijun at huawei.com>
>> ---
>> v7:
>> * Fixed compiling error for unexpected unindent.
>>
>> v6:
>> * Add rte flow description for multiple process.
>>
>> v5:
>> * Fixed run_app.rst for multiple process description.
>> * Fix compiling error.
>>
>> v4:
>> * Fixed minimum vlaue of Rxq or Txq in doc.
>>
>> v3:
>> * Fixed compiling error using gcc10.0.
>>
>> v2:
>> * Added document for this patch.
>> ---
>>   app/test-pmd/cmdline.c                |  12 +++-
>>   app/test-pmd/config.c                 |   9 ++-
>>   app/test-pmd/parameters.c             |  11 +++
>>   app/test-pmd/testpmd.c                | 127 ++++++++++++++++++++++------------
>>   app/test-pmd/testpmd.h                |   7 ++
>>   doc/guides/testpmd_app_ug/run_app.rst |  99 ++++++++++++++++++++++++++
>>   6 files changed, 219 insertions(+), 46 deletions(-)
>>
>> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
>> 14110eb..287d7a0 100644
>> --- a/app/test-pmd/cmdline.c
>> +++ b/app/test-pmd/cmdline.c
>> @@ -71,8 +71,6 @@
> 
> Why not just restrict queue numbers to be multiple of processes here in rss_fwd_config_setup()?
> Or at least print a warning to tell users if it's not multiple, packet loss will happen.
> 
Hi, fixed in v8, thanks.
>>   	setup_fwd_config_of_each_lcore(&cur_fwd_config);
>> -	rxp = 0; rxq = 0;
>> +	start = proc_id * nb_q / num_procs;
>> +	end = start + nb_q / num_procs;
>> +	rxp = 0;
>> +	rxq = start;
>>   	for (sm_id = 0; sm_id < cur_fwd_config.nb_fwd_streams; sm_id++) {
>>   		struct fwd_stream *fs;
>>
>> @@ -2861,6 +2866,8 @@ rss_fwd_config_setup(void)
>>   			continue;
>>   		rxp = 0;
>>   		rxq++;
>> +		if (rxq >= end)
>> +			rxq = start;
>>   	}
>>   }
>>
>> +*   ``--txq=N``
>> +
>> +    Set the number of Tx queues per port to N. N is the sum of queues used by
>> primary
>> +    and secondary process. As primary process and secondary process should
>> have separate
>> +    queues, and each should occupy at least one queue.where N should be no
>> less than two.
> 
> Where N should be the multiple of number of processes.
> 
Fixed in v8, thanks.
> BRs
> Xiaoyun
>> +
>> 2.7.4
> 


More information about the dev mailing list