> -----Original Message-----
> From: Zeng, ZhichaoX <zhichaox.z...@intel.com>
> Sent: Friday, July 1, 2022 11:13 AM
> To: Zhang, Qi Z <qi.z.zh...@intel.com>; dev@dpdk.org
> Cc: sta...@dpdk.org; Yang, Qiming <qiming.y...@intel.com>;
> alvinx.zh...@intel.com; Guo, Junfeng <junfeng....@intel.com>; Su, Simei
> <simei...@intel.com>; Burakov, Anatoly <anatoly.bura...@intel.com>;
> Ferruh Yigit <ferruh.yi...@intel.com>
> Subject: RE: [PATCH v4] net/igc: add support for secondary processes
>
> >> The RX function was not specified in the secondary process, causing
> >> the secondary process to segfault in a multi-process environment.
> >>
> >> This patch specify RX/TX functions in "dev_init" to support secondary
> processes.
> >>
> >> Fixes: 66fde1b943eb ("net/igc: add skeleton")
> >> Cc: alvinx.zh...@intel.com
> >> Cc: sta...@dpdk.org
> >>
> >> Signed-off-by: Zhichao Zeng <zhichaox.z...@intel.com>
> >>
> >> ---
> >> v2:
> >> remove unnecessary parameters, move declaration to relevant header
> >> file
> >> ---
> >> v3:
> >> remove redundant code, optimize commit log
> >> ---
> >> v4:
> >> rework patch
> >> ---
> >> drivers/net/igc/igc_ethdev.c | 9 ++++++++-
> >> drivers/net/igc/igc_txrx.c | 8 ++++----
> >> drivers/net/igc/igc_txrx.h | 6 ++++++
> >> 3 files changed, 18 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/net/igc/igc_ethdev.c
> >> b/drivers/net/igc/igc_ethdev.c index
> >> b9933b395d..7f221a5d34 100644
> >> --- a/drivers/net/igc/igc_ethdev.c
> >> +++ b/drivers/net/igc/igc_ethdev.c
> >> @@ -1240,8 +1240,15 @@ eth_igc_dev_init(struct rte_eth_dev *dev)
> >> * has already done this work. Only check we don't need a different
> >> * RX function.
> >> */
> >> - if (rte_eal_process_type() != RTE_PROC_PRIMARY)
> >> + if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
> >> + dev->rx_pkt_burst = igc_recv_pkts;
> >> + if (dev->data->scattered_rx)
> >> + dev->rx_pkt_burst = igc_recv_scattered_pkts;
> >
> >Please removed the redundant code in igc_rx_init
>
> Only the main process will execute "igc_rx_init", and the secondary process
> will not execute it.
> So, the data path of the secondary process is not initialized.
>
> The code that this patch adds to initialize the data path in "dev_init" will
> only be executed in the secondary process. The same code in "igc_rx_init" is
> not redundant.
Ok, I missed this point, the implementation is correct.
Acked-by: Qi Zhang <qi.z.zh...@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
>
> May I ask if the commit log is confusing, and should I submit new patch to
> correct it?
>
> Regards
> Zhichao