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

Andrew Rybchenko arybchenko at solarflare.com
Mon May 22 14:44:25 CEST 2017


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.

> 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