summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath
diff options
context:
space:
mode:
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>2014-06-16 16:37:04 (GMT)
committerJohn W. Linville <linville@tuxdriver.com>2014-06-19 19:49:24 (GMT)
commit67c3e1b41efe4dd400f444c6dccc4538b627758c (patch)
treecd94e35ffba475ede4e030c852e6e7ab2dcb0f71 /drivers/net/wireless/ath
parent8eea944af0efcdba09dac1ad220c9bfa68293279 (diff)
downloadlinux-67c3e1b41efe4dd400f444c6dccc4538b627758c.tar.xz
wil6210: more debug info for vring
print used/available counters on debugfs; print to dmesg when Tx vring becomes empty This aids with performance investigation Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r--drivers/net/wireless/ath/wil6210/debugfs.c9
-rw-r--r--drivers/net/wireless/ath/wil6210/txrx.c4
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c
index 4fb3375..d90aa28 100644
--- a/drivers/net/wireless/ath/wil6210/debugfs.c
+++ b/drivers/net/wireless/ath/wil6210/debugfs.c
@@ -72,11 +72,16 @@ static int wil_vring_debugfs_show(struct seq_file *s, void *data)
if (vring->va) {
int cid = wil->vring2cid_tid[i][0];
int tid = wil->vring2cid_tid[i][1];
+ u32 swhead = vring->swhead;
+ u32 swtail = vring->swtail;
+ int used = (vring->size + swhead - swtail)
+ % vring->size;
+ int avail = vring->size - used - 1;
char name[10];
snprintf(name, sizeof(name), "tx_%2d", i);
- seq_printf(s, "\n%pM CID %d TID %d\n",
- wil->sta[cid].addr, cid, tid);
+ seq_printf(s, "\n%pM CID %d TID %d [%3d|%3d]\n",
+ wil->sta[cid].addr, cid, tid, used, avail);
wil_print_vring(s, wil, name, vring, '_', 'H');
}
}
diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c
index 0784ef3..c08d041 100644
--- a/drivers/net/wireless/ath/wil6210/txrx.c
+++ b/drivers/net/wireless/ath/wil6210/txrx.c
@@ -1132,6 +1132,10 @@ int wil_tx_complete(struct wil6210_priv *wil, int ringid)
done++;
}
}
+
+ if (wil_vring_is_empty(vring))
+ wil_dbg_txrx(wil, "Ring[%2d] empty\n", ringid);
+
if (wil_vring_avail_tx(vring) > wil_vring_wmark_high(vring))
netif_tx_wake_all_queues(wil_to_ndev(wil));