RE: [EXTERNAL] Re: [PATCH v5 0/7] multi-process and VF hotplug fixes

Long Li
2026-03-01T05:01:03Z

> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Saturday, February 28, 2026 9:04 AM
> To: Long Li <longli@microsoft.com>
> Cc: dev@dpdk.org; Wei Hu <weh@microsoft.com>; stable@dpdk.org; Dariusz
> Sosnowski <dsosnowski@nvidia.com>; Viacheslav Ovsiienko
> <viacheslavo@nvidia.com>; Bing Zhao <bingz@nvidia.com>; Ori Kam
> <orika@nvidia.com>; Suanming Mou <suanmingm@nvidia.com>; Matan Azrad
> <matan@nvidia.com>
> Subject: [EXTERNAL] Re: [PATCH v5 0/7] multi-process and VF hotplug fixes
>
> On Thu, 26 Feb 2026 17:59:20 -0800
> Long Li <longli@microsoft.com> wrote:
>
> > Fix several issues with VF hotplug and multi-process support in
> > netvsc, mana, mlx5, and mlx4 drivers:
> >
> > - Fix race conditions between VSP notifications and DPDK device events
> > during VF add/remove, with proper locking of VF-related fields
> > - Add multi-process communication infrastructure for coordinating VF
> > removal across primary and secondary processes
> > - Fix Protection Domain resource leak on device close in mana
> > - Fix devargs memory leak during VF hotplug in netvsc
> > - Fix fast-path ops (rte_eth_fp_ops) setup in secondary processes for
> > mana, mlx5, and mlx4, ensuring burst function pointers are restored
> > after STOP->START cycles
> >
> > v5:
> > - Patches 5,6,7: Also restore rte_eth_fp_ops burst function pointers
> > (rx_pkt_burst, tx_pkt_burst) in START_RXTX handler, not just queue
> > data pointers. Without this, after a STOP->START cycle the secondary
> > process burst pointers remain set to dummy functions.
> >
> > v4:
> > - Patch 1: Check hn_vf_add() return value in netvsc_hotplug_retry
> > - Patch 1: Track fresh_attach to avoid tearing down original VF
> > attachment when configure/start fails on an -EEXIST path
> > - Patch 2: Move counter decrement and netvsc_uninit_once() after device
> > cleanup in eth_hn_remove() to prevent use-after-free of shared data
> > - Patch 2: Clear netvsc_shared_data on init failure paths to prevent
> > dangling pointer
> >
> > v3:
> > - Fix review comments from v2
> >
> > v2:
> > - Initial rework of VF add/remove locking
> >
> > Long Li (7):
> > net/netvsc: fix race conditions on VF add/remove events
> > net/netvsc: add multi-process VF device removal support
> > net/mana: fix PD resource leak on device close
> > net/netvsc: fix devargs memory leak on hotplug
> > net/mana: fix fast-path ops setup in secondary process
> > net/mlx5: fix fast-path ops setup in secondary process
> > net/mlx4: fix fast-path ops setup in secondary process
> >
> > drivers/net/mana/mana.c | 14 ++
> > drivers/net/mana/mp.c | 8 +
> > drivers/net/mlx4/mlx4_mp.c | 6 +
> > drivers/net/mlx5/linux/mlx5_mp_os.c | 6 +
> > drivers/net/netvsc/hn_ethdev.c | 300 +++++++++++++++++++++++++++-
> > drivers/net/netvsc/hn_nvs.h | 6 +
> > drivers/net/netvsc/hn_rxtx.c | 40 ++--
> > drivers/net/netvsc/hn_var.h | 1 +
> > drivers/net/netvsc/hn_vf.c | 148 ++++++++------
> > 9 files changed, 437 insertions(+), 92 deletions(-)
>
> Applied to next-net.
> The SHA hashes of those fixes tags was off; fixed them by matching on the
> subject.
>
> Also fixed a couple checkpatch warnings for:
>
> CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
> #295: FILE: drivers/net/netvsc/hn_ethdev.c:1763:
> + rte_atomic_fetch_add_explicit(

Thank you!

Long