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

Reply via email to