[dpdk-dev] [PATCH v6 3/3] net/tap: allow secondary process to access primary device queues

Ferruh Yigit ferruh.yigit at intel.com
Wed Oct 17 09:59:25 CEST 2018


On 10/17/2018 7:54 AM, Raslan Darawsheh wrote:
> Hi,
> 
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit at intel.com>
>> Sent: Tuesday, October 16, 2018 2:28 PM
>> To: Raslan Darawsheh <rasland at mellanox.com>; keith.wiles at intel.com
>> Cc: Thomas Monjalon <thomas at monjalon.net>; dev at dpdk.org; Shahaf
>> Shuler <shahafs at mellanox.com>; Ori Kam <orika at mellanox.com>
>> Subject: Re: [PATCH v6 3/3] net/tap: allow secondary process to access
>> primary device queues
>>
>> On 10/16/2018 11:06 AM, Raslan Darawsheh wrote:
>>> Hi Ferruh,
>>>
>>> I didn't do it this way since I don't want it to unregister in case it was the
>> second device for example and it failed to prob.
>>> Which means only the first probed tap and the last removed tap will handle
>> this registration and deregistration.
>>
>> What I am saying will do the same, only register in the first device probed and
>> unregister in the last device.
>>
>> `tap_devices_count` is already there, why you don't rely on it, but call
>> rte_mp_action_register() anyway and rely on it will return EEXIST in second
>> and later calls.
>>
>> Both will work, just I think using `tap_devices_count` is simpler.
>>
> You are right about probing.
> but, not in the closing of the ports, 
> since any port will try to unregister the first one which will do the unregister will succeed.
> meanwhile, I need only the last one to unregister.

The unregister done already with `tap_devices_count` checks, all I am suggesting
is doing same thing for register part.

> 
>>>
>>> Kindest regards,
>>> Raslan Darawsheh
>>>
>>>> -----Original Message-----
>>>> From: Ferruh Yigit <ferruh.yigit at intel.com>
>>>> Sent: Thursday, October 11, 2018 7:33 PM
>>>> To: Raslan Darawsheh <rasland at mellanox.com>; keith.wiles at intel.com
>>>> Cc: Thomas Monjalon <thomas at monjalon.net>; dev at dpdk.org; Shahaf
>>>> Shuler <shahafs at mellanox.com>; Ori Kam <orika at mellanox.com>
>>>> Subject: Re: [PATCH v6 3/3] net/tap: allow secondary process to
>>>> access primary device queues
>>>>
>>>> On 10/10/2018 3:39 PM, Raslan Darawsheh wrote:
>>>>> @@ -2082,6 +2214,14 @@ 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_devices_count) {
>>>>> +		TAP_LOG(ERR, "%s: Failed to register IPC callback: %s",
>>>>> +			tuntap_name, strerror(rte_errno));
>>>>> +		goto leave;
>>>>> +	}
>>>>> +	tap_devices_count++;
>>>>>  	ret = eth_dev_tap_create(dev, tap_name, remote_iface,
>>>> &user_mac,
>>>>>  		ETH_TUNTAP_TYPE_TAP);
>>>>
>>>> Why not rely on "tap_devices_count" but call rte_mp_action_register()
>>>> every time and try to figure out status from ret?
>>>>
>>>> if (tap_devices_count == 0) {
>>>>   ret = rte_mp_action_register(TAP_MP_KEY, tap_mp_sync_queues);
>>>>   if (ret < 0) {
>>>>     TAP_LOG();
>>>>     goto leave;
>>>>   }
>>>> }
>>>> tap_devices_count++;
>>>
> 
> 
> Kindest regards,
> Raslan Darawsheh
> 



More information about the dev mailing list