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

Liu, Lingyu lingyu.liu at intel.com
Tue Mar 14 00:39:09 UTC 2023


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.

>>   }
>>   
>>   /**
>> -- 
>> 2.25.1
>>
>> _______________________________________________
>> Intel-wired-lan mailing list
>> Intel-wired-lan at osuosl.org
>> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20230314/2f2838a2/attachment-0001.html>


More information about the Intel-wired-lan mailing list