On 10/2/2018 12:38 PM, Thomas Monjalon wrote:
> 02/10/2018 12:50, Raslan Darawsheh:
>> From: Thomas Monjalon <tho...@monjalon.net> 
>>> 02/10/2018 12:34, Raslan Darawsheh:
>>>> @@ -2056,6 +2179,13 @@ rte_pmd_tap_probe(struct rte_vdev_device *dev)
>>>>
>>>>         TAP_LOG(NOTICE, "Initializing pmd_tap for %s as %s",
>>>>         
>>>>                 name, tap_name);
>>>>
>>>> +       /* Register IPC feed callback */
>>>> +       ret = rte_mp_action_register(TAP_MP_KEY, tap_mp_sync_queues);
>>>> +       if (ret < 0 && rte_errno != EEXIST) {
>>>> +               TAP_LOG(ERR, "%s: Failed to register IPC callback: %s",
>>>> +                       tuntap_name, strerror(rte_errno));
>>>> +               goto leave;
>>>> +       }
>>>>
>>>>         ret = eth_dev_tap_create(dev, tap_name, remote_iface, &user_mac,
>>>>         
>>>>                 ETH_TUNTAP_TYPE_TAP);
>>>
>>> Is it an issue registering tap_mp_sync_queues at each tap probing?
>>> Should we do it only once?
>>
>> It should be as of per device so we should do it for each port alone since 
>> several ports can have different queues.
>>
>> Moreover, if the port that has the registration was closed or unplugged 
>> we'll not be able to sync qeues for other ports. 
> 
> I think we should do register on first tap device probing and never 
> unregisters.
> 
> Ferruh, any opinion?

I think it is good to unregister, but we need to keep number of active tap
devices, so register if "active_tap == 1", unregister when "active_tap == 0" ?

Reply via email to