Hi Shiyang,

> -----Original Message-----
> From: He, ShiyangX <[email protected]>
> Sent: 2023年1月13日 17:08
> To: He, ShiyangX <[email protected]>; Zhang, Yuying
> <[email protected]>
> Cc: [email protected]; Zhou, YidingX <[email protected]>;
> [email protected]; Singh, Aman Deep <[email protected]>;
> Burakov, Anatoly <[email protected]>; Li, Xiaoyun
> <[email protected]>; Alvin Zhang <[email protected]>
> 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 <[email protected]>
> >Sent: Wednesday, January 4, 2023 10:02 AM
> >To: Stephen Hemminger <[email protected]>
> >Cc: [email protected]; Zhou, YidingX <[email protected]>;
> >[email protected]; Singh, Aman Deep <[email protected]>; Zhang,
> >Yuying <[email protected]>; Burakov, Anatoly
> ><[email protected]>; Li, Xiaoyun <[email protected]>; Alvin
> >Zhang <[email protected]>
> >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: [email protected]
> >>>
> >>> Signed-off-by: Shiyang He <[email protected]>
> >>
> >>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