> Subject: [EXTERNAL] Re: [PATCH v5 0/7] multi-process and VF hotplug fixes > > On Thu, 26 Feb 2026 17:59:20 -0800 > Long Li <[email protected]> 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(-) > > > > Looks okay to me, the AI review feedback raised a couple of questions. > If it is ok will take it as is for this release.
Thank you, I recommend taking it as is. " Patch 1: Potential deadlock in hn_vf_close()" is a real issue that may affect netvsc shutdown, I will address this in a future patch. Thanks, Long > > The AI summary was: > > Patch 1: hn_vf_add_unlocked() — when hn_nvs_set_datapath() fails at > switch_data_path: after a fresh attach, the VF is not detached (no goto > detach). > This leaves inconsistent state. > > Patch 2: netvsc_uninit_once() — primary can free the shared memzone while > secondaries still reference netvsc_shared_data, causing a dangling pointer. > The > local-only secondary_cnt check doesn't reflect remote secondary processes. > > Warnings (should consider) > > Patch 1: Potential deadlock in hn_vf_close() — holding write lock while > calling > rte_eth_dev_callback_unregister() which synchronously waits for in-progress > callbacks that may themselves try to acquire the write lock via > hn_remove_delayed(). > > There were a couple more things but these were just AI being overly paranoid. >

