[dpdk-dev] [PATCH v2 3/3] net/sfc: support multi-process

Ferruh Yigit ferruh.yigit at intel.com
Mon May 22 14:54:28 CEST 2017


On 5/22/2017 1:44 PM, Andrew Rybchenko wrote:
> On 05/22/2017 03:36 PM, Ferruh Yigit wrote:
>> On 5/22/2017 1:07 PM, Andrew Rybchenko wrote:
>>> On 05/22/2017 02:29 PM, Ferruh Yigit wrote:
>>>> On 5/18/2017 3:00 PM, Andrew Rybchenko wrote:
>>>>> Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
>>>>> Reviewed-by: Andy Moreton <amoreton at solarflare.com>
>>>> <...>
>>>>
>>>>> diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c
>>>>> index 1484bab..60812cb 100644
>>>>> --- a/drivers/net/sfc/sfc_ef10_rx.c
>>>>> +++ b/drivers/net/sfc/sfc_ef10_rx.c
>>>>> @@ -699,7 +699,7 @@ struct sfc_dp_rx sfc_ef10_rx = {
>>>>>  		.type		= SFC_DP_RX,
>>>>>  		.hw_fw_caps	= SFC_DP_HW_FW_CAP_EF10,
>>>>>  	},
>>>>> -	.features		= 0,
>>>>> +	.features		= SFC_DP_RX_FEAT_MULTI_PROCESS,
>>>> Why this flag is needed, I mean why multi process support is not always
>>>> enabled by default?
>>> libefx-based datapath intensively uses function pointers (primary
>>> process function pointers stored in data structures). So, it does not
>>> work in multi process.
>> But this currently added always, if I don't miss anything. And only
>> checked once in secondary path and error returned if not set.
>>
>> Is there any code path that behaves different based on this flag? Or any
>> case that this flags shouldn't be set?
> 
> sfc_efx_rx (and sfc_efx_tx) does not have the flag.

Got it, thanks.

> 
>> What happens if this flag removed, and assumed it is always set? (this
>> and tx version of this flag)
> 
> Init in the secondary process fails if datapath chosen by the primary
> process does not have the flag.
> 
>>>> <...>
> 
> 



More information about the dev mailing list