wil6210: interrupt statistics
Track number of interrupts and Tx/Rx packets; expose through debugfs 'info'. Reset upon read. Used to analyse effectivness of interrupt coalescing and NAPI. Read twice with some interval like cat info > /dev/null; sleep 1; cat info Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
84bb29b7ab
commit
be299858d0
|
@ -851,10 +851,21 @@ static const struct file_operations fops_link = {
|
|||
/*---------info------------*/
|
||||
static int wil_info_debugfs_show(struct seq_file *s, void *data)
|
||||
{
|
||||
struct wil6210_priv *wil = s->private;
|
||||
struct net_device *ndev = wil_to_ndev(wil);
|
||||
int is_ac = power_supply_is_system_supplied();
|
||||
int rx = atomic_xchg(&wil->isr_count_rx, 0);
|
||||
int tx = atomic_xchg(&wil->isr_count_tx, 0);
|
||||
static ulong rxf_old, txf_old;
|
||||
ulong rxf = ndev->stats.rx_packets;
|
||||
ulong txf = ndev->stats.tx_packets;
|
||||
|
||||
/* >0 : AC; 0 : battery; <0 : error */
|
||||
seq_printf(s, "AC powered : %d\n", is_ac);
|
||||
seq_printf(s, "Rx irqs:packets : %8d : %8ld\n", rx, rxf - rxf_old);
|
||||
seq_printf(s, "Tx irqs:packets : %8d : %8ld\n", tx, txf - txf_old);
|
||||
rxf_old = rxf;
|
||||
txf_old = txf;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -208,6 +208,7 @@ static irqreturn_t wil6210_irq_rx(int irq, void *cookie)
|
|||
|
||||
/* Rx IRQ will be enabled when NAPI processing finished */
|
||||
|
||||
atomic_inc(&wil->isr_count_rx);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
@ -246,6 +247,7 @@ static irqreturn_t wil6210_irq_tx(int irq, void *cookie)
|
|||
|
||||
/* Tx IRQ will be enabled when NAPI processing finished */
|
||||
|
||||
atomic_inc(&wil->isr_count_tx);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
|
|
@ -412,6 +412,7 @@ struct wil6210_priv {
|
|||
struct mutex mutex; /* for wil6210_priv access in wil_{up|down} */
|
||||
/* statistics */
|
||||
struct wil6210_stats stats;
|
||||
atomic_t isr_count_rx, isr_count_tx;
|
||||
/* debugfs */
|
||||
struct dentry *debug;
|
||||
struct debugfs_blob_wrapper fw_code_blob;
|
||||
|
|
Loading…
Reference in New Issue