On 15/05/2025 10:38, Roi Dayan wrote: > > > On 15/05/2025 10:28, David Marchand wrote: >> On Thu, May 15, 2025 at 9:04 AM Roi Dayan via dev >> <[email protected]> wrote: >>> >>> The callback is registered in netdev initialization but isn't >>> unregistered in netdev destruct. Fix it. >> >> What is the issue exactly? >> >>> >>> Fixes: 988fd4639149 ("netdev-dpdk: add support for the >>> RTE_ETH_EVENT_INTR_RESET event.") >>> Change-Id: I645170825523f5b0c83f5ad3af8ea4a61cb257de >>> Signed-off-by: Roi Dayan <[email protected]> >>> Acked-by: Eli Britstein <[email protected]> >>> --- >>> lib/netdev-dpdk.c | 8 ++++++++ >>> 1 file changed, 8 insertions(+) >>> >>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c >>> index 549887b31373..e6d9b58f914e 100644 >>> --- a/lib/netdev-dpdk.c >>> +++ b/lib/netdev-dpdk.c >>> @@ -1762,6 +1762,10 @@ common_destruct(struct netdev_dpdk *dev) >>> >>> static void dpdk_rx_steer_unconfigure(struct netdev_dpdk *); >>> >>> +static int >>> +dpdk_eth_event_callback(dpdk_port_t port_id, enum rte_eth_event_type type, >>> + void *param OVS_UNUSED, void *ret_param >>> OVS_UNUSED); >>> + >>> static void >>> netdev_dpdk_destruct(struct netdev *netdev) >>> { >>> @@ -1831,6 +1835,10 @@ netdev_dpdk_destruct(struct netdev *netdev) >>> } >>> } >>> >>> + rte_eth_dev_callback_unregister(RTE_ETH_ALL, >>> + RTE_ETH_EVENT_INTR_RESET, >>> + dpdk_eth_event_callback, NULL); >> >> This unregisters the callback for *all* DPDK ports, not just the port >> associated to this OVS netdev. >> > > hmm, let me go over the patch again then. the issue is re-adding dpdk-port to > a bridge > We noticed hugepages allocation keeps increasing and not freed. we traced it > to > type INTR_USER_CALLBACK which is registered by this callback. >
I see it shouldn't have happen. init should have been called once. The leak does look from rte_eth_dev_callback_register()/INTR_USER_CALLBACK so I need to recheck how it happens on re-adding a port. It did stop adding the unregister callback. sorry for the hassle for now i'll go over this again. >> > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
