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

Zhang, Xiao xiao.zhang at intel.com
Wed Nov 13 02:14:43 CET 2019



> -----Original Message-----
> From: Eelco Chaudron [mailto:echaudro at redhat.com]
> Sent: Tuesday, November 12, 2019 7:09 PM
> To: Zhang, Xiao <xiao.zhang at intel.com>
> Cc: Zhang, Qi Z <qi.z.zhang at intel.com>; dev at dpdk.org; Xing, Beilei
> <beilei.xing at intel.com>
> Subject: Re: [dpdk-dev] [PATCH] net/i40e: force promiscuous state after VF
> reset
> 
> 
> 
> 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.

Kernel PF do reset once VF mac changed and send reset event to VF,
VF do reset once received even if reset task not done by PF, so admin q message will not get response.

> 
> >> 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…

You can remove promisc_unicast_enabled/promisc_multicast_enabled and related code.

Thanks,
Xiao
> 
> 
> Cheers,
> 
> 
> Eelco



More information about the dev mailing list