ath5k: Count how many times a queue got stuck
Add a counter to show how many times a queue got stuck in the debugfs queue file. Signed-off-by: Bruno Randolf <br1@einfach.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
4edd761f40
commit
923e5b3d3d
|
@ -892,6 +892,7 @@ ath5k_txq_setup(struct ath5k_softc *sc,
|
||||||
txq->setup = true;
|
txq->setup = true;
|
||||||
txq->txq_len = 0;
|
txq->txq_len = 0;
|
||||||
txq->txq_poll_mark = false;
|
txq->txq_poll_mark = false;
|
||||||
|
txq->txq_stuck = 0;
|
||||||
}
|
}
|
||||||
return &sc->txqs[qnum];
|
return &sc->txqs[qnum];
|
||||||
}
|
}
|
||||||
|
@ -2193,6 +2194,7 @@ ath5k_tx_complete_poll_work(struct work_struct *work)
|
||||||
"TX queue stuck %d\n",
|
"TX queue stuck %d\n",
|
||||||
txq->qnum);
|
txq->qnum);
|
||||||
needreset = true;
|
needreset = true;
|
||||||
|
txq->txq_stuck++;
|
||||||
spin_unlock_bh(&txq->lock);
|
spin_unlock_bh(&txq->lock);
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -88,6 +88,7 @@ struct ath5k_txq {
|
||||||
bool setup;
|
bool setup;
|
||||||
int txq_len; /* number of queued buffers */
|
int txq_len; /* number of queued buffers */
|
||||||
bool txq_poll_mark;
|
bool txq_poll_mark;
|
||||||
|
unsigned int txq_stuck; /* informational counter */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ATH5K_LED_MAX_NAME_LEN 31
|
#define ATH5K_LED_MAX_NAME_LEN 31
|
||||||
|
|
|
@ -785,6 +785,8 @@ static ssize_t read_file_queue(struct file *file, char __user *user_buf,
|
||||||
|
|
||||||
len += snprintf(buf+len, sizeof(buf)-len,
|
len += snprintf(buf+len, sizeof(buf)-len,
|
||||||
" len: %d bufs: %d\n", txq->txq_len, n);
|
" len: %d bufs: %d\n", txq->txq_len, n);
|
||||||
|
len += snprintf(buf+len, sizeof(buf)-len,
|
||||||
|
" stuck: %d\n", txq->txq_stuck);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len > sizeof(buf))
|
if (len > sizeof(buf))
|
||||||
|
|
Loading…
Reference in New Issue