[Intel-wired-lan] [PATCH net v2] ice: add FDIR counter reset in FDIR init stage

Michal Swiatkowski michal.swiatkowski at linux.intel.com
Mon Mar 27 08:34:47 UTC 2023


On Tue, Mar 14, 2023 at 08:39:09AM +0800, Liu, Lingyu wrote:
> 
> On 3/10/2023 6:19 PM, Michal Swiatkowski wrote:
> > On Thu, Mar 09, 2023 at 02:49:34AM +0000, Lingyu Liu wrote:
> > > From: Junfeng Guo<junfeng.guo at intel.com>
> > > 
> > > This patch added the missing FDIR counters reset process when
> > > FDIR inits. Without this patch, when VF initializes or resets,
> > > all the FDIR counters will not be cleaned, which may cause
> > > unexpected behaviors for future FDIR rule create (e.g., rule
> > > conflict).
> > > 
> > > Fixes: 1f7ea1cd6a37 ("ice: Enable FDIR Configure for AVF")
> > > Signed-off-by: Junfeng Guo<junfeng.guo at intel.com>
> > > Signed-off-by: Lingyu Liu<lingyu.liu at intel.com>
> > > ---
> > > v2: change commit message to apply more to a kernel use
> > > ---
> > >   drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c | 15 +++++++++++++++
> > >   1 file changed, 15 insertions(+)
> > > 
> > > diff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c b/drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c
> > > index e6ef6b303222..60c9da4aac1d 100644
> > > --- a/drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c
> > > +++ b/drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c
> > > @@ -541,6 +541,20 @@ static void ice_vc_fdir_rem_prof_all(struct ice_vf *vf)
> > >   	}
> > >   }
> > > +/**
> > > + * ice_vc_fdir_reset_cnt_all - reset all FDIR counters for this VF FDIR
> > > + * @fdir: pointer to the VF FDIR structure
> > > + */
> > > +static void ice_vc_fdir_reset_cnt_all(struct ice_vf_fdir *fdir)
> > > +{
> > > +	enum ice_fltr_ptype flow = ICE_FLTR_PTYPE_NONF_NONE;
> > > +
> > > +	for (; flow < ICE_FLTR_PTYPE_MAX; flow++) {
> > > +		fdir->fdir_fltr_cnt[flow][0] = 0;
> > > +		fdir->fdir_fltr_cnt[flow][1] = 0;
> > > +	}
> > > +}
> > > +
> > >   /**
> > >    * ice_vc_fdir_write_flow_prof
> > >    * @vf: pointer to the VF structure
> > > @@ -1924,6 +1938,7 @@ void ice_vf_fdir_init(struct ice_vf *vf)
> > >   	spin_lock_init(&fdir->ctx_lock);
> > >   	fdir->ctx_irq.flags = 0;
> > >   	fdir->ctx_done.flags = 0;
> > > +	ice_vc_fdir_reset_cnt_all(fdir);
> > I am fine with this change, however, maybe the better place for
> > resetting counters will be when the flows are removed? Or maybe
> > the flow are removed only by hw?
> 
> The flows are removed in ice_vf_fdir_exit(). When VF resets,
> ice_vf_fdir_init() and ice_vf_fdir_exit() is called in pairs.
> While ice_vf_fdir_init() is called when vf entry initializes,
> where these counters should be initialized.
> 

Ok, thanks.

Sorry, I missed the replay :(

Reviewed-by: Michal Swiatkowski <michal.swiatkowski at linux.intel.com>

> > >   }
> > >   /**
> > > -- 
> > > 2.25.1
> > > 
> > > _______________________________________________
> > > Intel-wired-lan mailing list
> > > Intel-wired-lan at osuosl.org
> > > https://lists.osuosl.org/mailman/listinfo/intel-wired-lan


More information about the Intel-wired-lan mailing list