diff options
author | Andy Lutomirski <luto@amacapital.net> | 2014-06-07 12:13:44 -0400 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-06-24 14:55:30 -0400 |
commit | f40faf623712153a64f39d2bddad2fc5a4f5e12d (patch) | |
tree | 54cd6a85294b8076a7ada7838d95278e0e600152 /drivers/net | |
parent | d536c32b45d2f86c9e9e7780bd94d28d1d7c4660 (diff) |
iwlwifi: pcie: improve debugfs queue info
This adds need_update and write_actual to rx_queue and need_update
and an HCMD indicator to tx_queue.
On my card, rx_queue now looks like:
read: 181
write: 180
write_actual: 176
need_update: 0
free_count: 40
closed_rb_num: 181
tx_queue now looks like:
hwq 00: read=29 write=30 use=1 stop=0 need_update=0
hwq 01: read=0 write=0 use=1 stop=0 need_update=0
hwq 02: read=128 write=128 use=1 stop=0 need_update=0
hwq 03: read=0 write=0 use=1 stop=0 need_update=0
hwq 04: read=94 write=94 use=1 stop=0 need_update=0 HCMD
hwq 05: read=0 write=0 use=0 stop=0 need_update=0
hwq 06: read=0 write=0 use=0 stop=0 need_update=0
hwq 07: read=0 write=0 use=0 stop=0 need_update=0
hwq 08: read=0 write=0 use=0 stop=0 need_update=0
hwq 09: read=0 write=0 use=0 stop=0 need_update=0
hwq 10: read=0 write=0 use=0 stop=0 need_update=0
hwq 11: read=0 write=0 use=0 stop=0 need_update=0
hwq 12: read=0 write=0 use=0 stop=0 need_update=0
hwq 13: read=0 write=0 use=0 stop=0 need_update=0
hwq 14: read=0 write=0 use=0 stop=0 need_update=0
hwq 15: read=0 write=0 use=0 stop=0 need_update=0
hwq 16: read=0 write=0 use=0 stop=0 need_update=0
hwq 17: read=0 write=0 use=0 stop=0 need_update=0
hwq 18: read=0 write=0 use=0 stop=0 need_update=0
hwq 19: read=0 write=0 use=0 stop=0 need_update=0
This may help with debugging queue stalls.
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/trans.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c index 3ffac4888c12..0480857ee6e2 100644 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c | |||
@@ -1573,10 +1573,12 @@ static ssize_t iwl_dbgfs_tx_queue_read(struct file *file, | |||
1573 | txq = &trans_pcie->txq[cnt]; | 1573 | txq = &trans_pcie->txq[cnt]; |
1574 | q = &txq->q; | 1574 | q = &txq->q; |
1575 | pos += scnprintf(buf + pos, bufsz - pos, | 1575 | pos += scnprintf(buf + pos, bufsz - pos, |
1576 | "hwq %.2d: read=%u write=%u use=%d stop=%d\n", | 1576 | "hwq %.2d: read=%u write=%u use=%d stop=%d need_update=%d%s\n", |
1577 | cnt, q->read_ptr, q->write_ptr, | 1577 | cnt, q->read_ptr, q->write_ptr, |
1578 | !!test_bit(cnt, trans_pcie->queue_used), | 1578 | !!test_bit(cnt, trans_pcie->queue_used), |
1579 | !!test_bit(cnt, trans_pcie->queue_stopped)); | 1579 | !!test_bit(cnt, trans_pcie->queue_stopped), |
1580 | txq->need_update, | ||
1581 | (cnt == trans_pcie->cmd_queue ? " HCMD" : "")); | ||
1580 | } | 1582 | } |
1581 | ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos); | 1583 | ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos); |
1582 | kfree(buf); | 1584 | kfree(buf); |
@@ -1598,6 +1600,10 @@ static ssize_t iwl_dbgfs_rx_queue_read(struct file *file, | |||
1598 | rxq->read); | 1600 | rxq->read); |
1599 | pos += scnprintf(buf + pos, bufsz - pos, "write: %u\n", | 1601 | pos += scnprintf(buf + pos, bufsz - pos, "write: %u\n", |
1600 | rxq->write); | 1602 | rxq->write); |
1603 | pos += scnprintf(buf + pos, bufsz - pos, "write_actual: %u\n", | ||
1604 | rxq->write_actual); | ||
1605 | pos += scnprintf(buf + pos, bufsz - pos, "need_update: %d\n", | ||
1606 | rxq->need_update); | ||
1601 | pos += scnprintf(buf + pos, bufsz - pos, "free_count: %u\n", | 1607 | pos += scnprintf(buf + pos, bufsz - pos, "free_count: %u\n", |
1602 | rxq->free_count); | 1608 | rxq->free_count); |
1603 | if (rxq->rb_stts) { | 1609 | if (rxq->rb_stts) { |