Hi,

> -----Original Message-----
> From: Zhang, Peng1X <peng1x.zh...@intel.com>
> Sent: Friday, June 24, 2022 2:15 AM
> To: dev@dpdk.org
> Cc: Singh, Aman Deep <aman.deep.si...@intel.com>; Zhang, Yuying
> <yuying.zh...@intel.com>; Zhang, Peng1X <peng1x.zh...@intel.com>;
> sta...@dpdk.org
> Subject: [PATCH] app/testpmd: fix secondary process cannot dump packet
> 
> From: Peng Zhang <peng1x.zh...@intel.com>
> 
> The origin design is whether testpmd is primary or not, if state of receive 
> queue
> is stop, then packets will not be dumped for show.
> While to secondary process, receive queue will not be set up, and state will 
> still
> be stop even if testpmd is started. So packets of stated secondary process
> cannot be dumped for show.
> 
> The current design is to secondary process state of queue will be set to start
> after testpmd is started. Then packets of started secondary process can be
> dumped for show.
> 
> Fixes: a550baf24af9 ("app/testpmd: support multi-process")
> Cc: sta...@dpdk.org
> 
> Signed-off-by: Peng Zhang <peng1x.zh...@intel.com>

Acked-by: Yuying Zhang <yuying.zh...@intel.com>

> ---
>  app/test-pmd/testpmd.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> 205d98ee3d..93ba7e7c9b 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -3007,6 +3007,18 @@ start_port(portid_t pid)
>                       if (setup_hairpin_queues(pi, p_pi, cnt_pi) != 0)
>                               return -1;
>               }
> +
> +             if (port->need_reconfig_queues > 0 && !is_proc_primary()) {
> +                     struct rte_eth_rxconf *rx_conf;
> +                     for (qi = 0; qi < nb_rxq; qi++) {
> +                             rx_conf = &(port->rxq[qi].conf);
> +                             ports[pi].rxq[qi].state =
> +                                     rx_conf->rx_deferred_start ?
> +                                     RTE_ETH_QUEUE_STATE_STOPPED :
> +                                     RTE_ETH_QUEUE_STATE_STARTED;
> +                     }
> +             }
> +
>               configure_rxtx_dump_callbacks(verbose_level);
>               if (clear_ptypes) {
>                       diag = rte_eth_dev_set_ptypes(pi,
> RTE_PTYPE_UNKNOWN,
> --
> 2.25.1

Reply via email to