[dpdk-dev] [PATCH v4 2/2] net/tap: add queues when attaching from secondary process

Ferruh Yigit ferruh.yigit at intel.com
Wed Oct 3 18:28:06 CEST 2018


On 10/2/2018 12:38 PM, Thomas Monjalon wrote:
> 02/10/2018 12:50, Raslan Darawsheh:
>> From: Thomas Monjalon <thomas at 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" ?


More information about the dev mailing list