[PATCHv2] mac80211: increment rx stats according to USES_RSS flag

Thiraviyam Mariyappan tmariyap at codeaurora.org
Wed Apr 21 17:48:46 BST 2021


On 2021-04-08 15:31, Johannes Berg wrote:
> On Wed, 2021-02-17 at 17:26 +0530, Thiraviyam Mariyappan wrote:
>> Currently, rx_stats were updated regardless of USES_RSS flag is
>> enabled/disabled. So, updating the rx_stats from percpu pointers
>> according to the USES_RSS flag.
The issue is rx packets not incremented in mesh link and this change 
made to
overcome the issue.
> 
> OK actually, I'm not going to fix the commit log, you'll probably have
> to resend it anyway.
> 
> 
>> @@ -425,7 +426,8 @@ static void mesh_sta_info_init(struct 
>> ieee80211_sub_if_data *sdata,
>>  					&basic_rates);
> 
>>  	spin_lock_bh(&sta->mesh->plink_lock);
>> -	sta->rx_stats.last_rx = jiffies;
>> +	stats = ieee80211_get_rx_stats(&local->hw, sta);
>> +	stats->last_rx = jiffies;
> 
> This doesn't really make much sense? Not sure why that is even updating
> anything at all, it doesn't update anything else?
> 
> Or at least you didn't change anything else, maybe you should have?
>> 
>> @@ -1734,49 +1745,49 @@ ieee80211_rx_h_sta_process(struct 
>> ieee80211_rx_data *rx)
>>  	 * something went wrong the first time.
>>  	 */
>>  	if (rx->sdata->vif.type == NL80211_IFTYPE_ADHOC) {
>> -		u8 *bssid = ieee80211_get_bssid(hdr, rx->skb->len,
>> +		u8 *bssid = ieee80211_get_bssid(hdr, skb->len,
> 
> That seems unrelated.
> 
>> @@ -3625,8 +3648,10 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data 
>> *rx)
>>  	/* queue up frame and kick off work to process it */
>>  	skb_queue_tail(&sdata->skb_queue, rx->skb);
>>  	ieee80211_queue_work(&rx->local->hw, &sdata->work);
>> -	if (rx->sta)
>> -		rx->sta->rx_stats.packets++;
>> +	if (rx->sta) {
>> +		stats = ieee80211_get_rx_stats(&rx->sdata->local->hw, rx->sta);
>> +		stats->packets++;
>> +	}
>> 
> 
> Picking this for no particular reason - everything else in this patch 
> is
> unnecessary since we have rx_path_lock held afaict, so it doesn't
> matter. The whole per-cpu status stuff only matters once you get into
> fast-rx path.
In case of Mesh fast_rx is not applicable, but still USES_RSS can be 
enabled from driver
when parallel RX is supported by HW/Driver, right? Hence checked for 
USES_RSS support to
update per cpu stats.Please correct me if the meaning of USES_RSS is 
misunderstood and
it applies only when fast_rx for a STA is enabled.
> 
> 
> I'd argue that had you written a proper commit log that actually says
> why you need to change things, you'd probably even have noticed these
> issues yourself.
> 
> johannes



More information about the ath11k mailing list