[dpdk-dev] [PATCH] net/i40e: force promiscuous state after VF reset

Eelco Chaudron echaudro at redhat.com
Tue Nov 12 12:09:16 CET 2019



On 12 Nov 2019, at 1:52, Zhang, Xiao wrote:

> Hi Eelco,
>
> Seems you missed this mail.

Not sure why I missed this email, as it does not show up in my email 
client :(
See below…


<SNIP>
>>>>>> Hi Eelco,
>>>>>>
>>>>>> I think you may need add more detailed message in the commit log
>>>>>> or comments.
>>>>>
>>>>> My interpretation of the request was that Beilei wanted to know 
>>>>> why
>>>>> disabling promiscuous mode in HW was failing. Beilei can you
>>>>> comment, is the additional description from Xiao enough?
>>>>
>>>> Yes, promisc_unicast_enabled flag is not cleared during vf reset
>>>> because fail to disable promiscuous mode, So I think we need to 
>>>> root
>>>> cause why fail to  disable promiscuous mode first.
>>>> This patch looks like a workaround but not a fix.
>>>>
>>>
>>> This was debugged together with Xiao and from what I understand is
>>> that DPDK fails to reset promiscuous mode in hardware as PF and VF
>>> operations are not synced between kernel and DPDK.
>>>
>>> Xiao told me this could not be fixed in another way, Xiao can you
>>> comment?
>>>
>>
>> Checked again, the root cause is not synced issue between kernel and 
>> DPDK
>> during reset.

What is the root cause, so I can update the patch description for the 
next revision.

>> Suggest to remove the checking and setting of promisc_unicast_enabled 
>> flag,
>> since this flag is only used when enable/disable promiscuous mode.
>> Considering the un-synced issue, it will be more clean if remove the 
>> flag.
>> Also same with flag promisc_multicast_enabled.

So if I understand it correctly remove the following code:

2203  	/* If enabled, just return */
2204  	if (vf->promisc_multicast_enabled)
2205  		return 0;

and

2222  	/* If enabled, just return */
2223  	if (!vf->promisc_multicast_enabled)
2224  		return 0;

Or to remove the flags from the i40e_vf structure (and relative  code):

1051  	bool promisc_unicast_enabled;
1052  	bool promisc_multicast_enabled;

Let me know and I craft up a patch…


Cheers,


Eelco



More information about the dev mailing list