2020-05-05 18:10:01

by Seevalamuthu Mariappan

[permalink] [raw]
Subject: [PATCH] mac80211: Fix station dump inactive time after sta connection

When USES_RSS is enabled, last_rx becomes zero in first few
minutes after sta connection in sta_get_last_rx_stats. This
leads to inactive time showing current jiffies in msecs.

Station 8c:fd:f0:02:10:dd (on wlan0)
inactive time: 4294701656 ms
.
.
connected time: 2 seconds

Fix this by avoid overwriting last_rx with percpu_stat's last_rx
if it is zero.

Signed-off-by: Seevalamuthu Mariappan <[email protected]>
---
net/mac80211/sta_info.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index f8d5c25..df40c0a 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -2089,6 +2089,9 @@ u8 sta_info_tx_streams(struct sta_info *sta)

cpustats = per_cpu_ptr(sta->pcpu_rx_stats, cpu);

+ if (!cpustats->last_rx)
+ continue;
+
if (time_after(cpustats->last_rx, stats->last_rx))
stats = cpustats;
}
--
1.9.1


2020-05-25 08:36:38

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Fix station dump inactive time after sta connection

On Tue, 2020-05-05 at 23:38 +0530, Seevalamuthu Mariappan wrote:
> When USES_RSS is enabled, last_rx becomes zero in first few
> minutes after sta connection

This is wrong - it's something like "in the first few minutes after
system boot" or something?

> in sta_get_last_rx_stats. This
> leads to inactive time showing current jiffies in msecs.
>
> Station 8c:fd:f0:02:10:dd (on wlan0)
> inactive time: 4294701656 ms
> .
> .
> connected time: 2 seconds
>
> Fix this by avoid overwriting last_rx with percpu_stat's last_rx
> if it is zero.

This doesn't seem like the right fix - shouldn't we just initialize
last_rx better so the wrap won't cause any trouble?

johannes