wil6210: add per-MCS Rx stats
Provide detailed statistics for the Rx frames per MCS Statistics printed in "stations" debugfs entry Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
0fd37ff8ee
commit
c4a110d853
|
@ -1360,7 +1360,7 @@ static int wil_sta_debugfs_show(struct seq_file *s, void *data)
|
||||||
__acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock)
|
__acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock)
|
||||||
{
|
{
|
||||||
struct wil6210_priv *wil = s->private;
|
struct wil6210_priv *wil = s->private;
|
||||||
int i, tid;
|
int i, tid, mcs;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(wil->sta); i++) {
|
for (i = 0; i < ARRAY_SIZE(wil->sta); i++) {
|
||||||
struct wil_sta_info *p = &wil->sta[i];
|
struct wil_sta_info *p = &wil->sta[i];
|
||||||
|
@ -1390,6 +1390,12 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spin_unlock_bh(&p->tid_rx_lock);
|
spin_unlock_bh(&p->tid_rx_lock);
|
||||||
|
seq_puts(s, "Rx/MCS:");
|
||||||
|
for (mcs = 0; mcs < ARRAY_SIZE(p->stats.rx_per_mcs);
|
||||||
|
mcs++)
|
||||||
|
seq_printf(s, " %lld",
|
||||||
|
p->stats.rx_per_mcs[mcs]);
|
||||||
|
seq_puts(s, "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -427,6 +427,8 @@ static struct sk_buff *wil_vring_reap_rx(struct wil6210_priv *wil,
|
||||||
cid = wil_rxdesc_cid(d);
|
cid = wil_rxdesc_cid(d);
|
||||||
stats = &wil->sta[cid].stats;
|
stats = &wil->sta[cid].stats;
|
||||||
stats->last_mcs_rx = wil_rxdesc_mcs(d);
|
stats->last_mcs_rx = wil_rxdesc_mcs(d);
|
||||||
|
if (stats->last_mcs_rx < ARRAY_SIZE(stats->rx_per_mcs))
|
||||||
|
stats->rx_per_mcs[stats->last_mcs_rx]++;
|
||||||
|
|
||||||
/* use radiotap header only if required */
|
/* use radiotap header only if required */
|
||||||
if (ndev->type == ARPHRD_IEEE80211_RADIOTAP)
|
if (ndev->type == ARPHRD_IEEE80211_RADIOTAP)
|
||||||
|
|
|
@ -464,6 +464,7 @@ enum wil_sta_status {
|
||||||
};
|
};
|
||||||
|
|
||||||
#define WIL_STA_TID_NUM (16)
|
#define WIL_STA_TID_NUM (16)
|
||||||
|
#define WIL_MCS_MAX (12) /* Maximum MCS supported */
|
||||||
|
|
||||||
struct wil_net_stats {
|
struct wil_net_stats {
|
||||||
unsigned long rx_packets;
|
unsigned long rx_packets;
|
||||||
|
@ -473,6 +474,7 @@ struct wil_net_stats {
|
||||||
unsigned long tx_errors;
|
unsigned long tx_errors;
|
||||||
unsigned long rx_dropped;
|
unsigned long rx_dropped;
|
||||||
u16 last_mcs_rx;
|
u16 last_mcs_rx;
|
||||||
|
u64 rx_per_mcs[WIL_MCS_MAX + 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue