Re: [dpdk-dev] [PATCH v8] app/testpmd: support multi-process
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: 2021-03-30 03:12:05
On Mon, Mar 29, 2021 at 6:48 PM Min Hu (Connor) [off-list ref] wrote:
From: Lijun Ou <redacted> 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) <redacted> Signed-off-by: Lijun Ou <redacted>
Some minor nits below. Otherwise looks fine to me. Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
--- v8: * Added warning info about queue numbers and process numbers.
:::snip::::
+* ``--rxq=N`` + + Set the number of Rx queues per port to N. N is the sum of queues used by primary + and secondary process. Primary process and secondary process should have separate + queues, and each should occupy at least one queue. Where N should be the multiple + of number of processes.
of the number of processes.
+ +* ``--txq=N`` + + Set the number of Tx queues per port to N. N is the sum of queues used by primary + and secondary process. Primary process and secondary process should have separate + queues, and each should occupy at least one queue. Where N should be the multiple + of number of processes.
of the number of processes.
+ +* ``--num-procs=N`` + + The number of processes which will be used. +
:::: snip ::::
+The number of rings should be a multiple of the number of processes. If not, +redundant queues will exist after queues are allocated to processes. After RSS is +enabled, packet loss occurs when traffic is sent to all processes at the same time. +Some traffic enters redundant queues and cannot be forwarded. + +Most dev ops is supported in primary and secondary process. While secondary process
Most dev ops are supported in the primary and secondary process. While....
+is not permitted to allocate or release shared memory, so some ops are not supported +as follows: +``dev_configure`` +``dev_start`` +``dev_stop`` +``rx_queue_setup`` +``tx_queue_setup`` +``rx_queue_release`` +``tx_queue_release``
:::: snip:::