Hi Shiyang,

> -----Original Message-----
> From: He, ShiyangX <shiyangx...@intel.com>
> Sent: 2023年1月13日 17:08
> To: He, ShiyangX <shiyangx...@intel.com>; Zhang, Yuying
> <yuying.zh...@intel.com>
> Cc: dev@dpdk.org; Zhou, YidingX <yidingx.z...@intel.com>;
> sta...@dpdk.org; Singh, Aman Deep <aman.deep.si...@intel.com>;
> Burakov, Anatoly <anatoly.bura...@intel.com>; Li, Xiaoyun
> <xiaoyun...@intel.com>; Alvin Zhang <alvinx.zh...@intel.com>
> Subject: RE: [PATCH] app/testpmd: fix secondary process not forwarding
> 
> @Zhang, Yuying Hi, please take a look at this patch! Are there any comments?
> 
> >-----Original Message-----
> >From: He, ShiyangX <shiyangx...@intel.com>
> >Sent: Wednesday, January 4, 2023 10:02 AM
> >To: Stephen Hemminger <step...@networkplumber.org>
> >Cc: dev@dpdk.org; Zhou, YidingX <yidingx.z...@intel.com>;
> >sta...@dpdk.org; Singh, Aman Deep <aman.deep.si...@intel.com>; Zhang,
> >Yuying <yuying.zh...@intel.com>; Burakov, Anatoly
> ><anatoly.bura...@intel.com>; Li, Xiaoyun <xiaoyun...@intel.com>; Alvin
> >Zhang <alvinx.zh...@intel.com>
> >Subject: RE: [PATCH] app/testpmd: fix secondary process not forwarding
> >
> >>> Under multi-process scenario, the secondary process gets queue state
> >>> from the wrong location (the global variable 'ports'). Therefore,
> >>> the secondary process can not forward since "stream_init" is not called.
> >>>
> >>> This commit fixes the issue by calling 'rte_eth_rx/tx_queue_info_get'
> >>> to get queue state from shared memory.
> >>>
> >>> Fixes: a78040c990cb ("app/testpmd: update forward engine beginning")
> >>> Cc: sta...@dpdk.org
> >>>
> >>> Signed-off-by: Shiyang He <shiyangx...@intel.com>
> >>
> >>Would it be possible to fix this the initialization of ports variable,
> >>rather than doing a per-state fixup here?
> >
> >In multi-process scenario, the secondary process does not initialize
> >the queue state in the 'ports' variable, and the ethdev's queue state
> >may be changed by any other process, which causes 'ports' queue state
> >of per-process and ethdev's queue state are inconsistent. Therefore,
> >getting the queue state from ethdev is a feasible way which I can think of.

You should fix the queue state in the 'ports' variable of secondary process in 
the initialization
of ports variable instead of fixup here.

Reply via email to