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.

