net: new counter for tx_timeout errors in sysfs
This adds the /sys/class/net/DEV/queues/Q/tx_timeout attribute containing the total number of timeout events on the given queue. It is always available with CONFIG_SYSFS, independently of CONFIG_RPS/XPS. Credits to Stephen Hemminger for a preliminary version of this patch. Tested: without CONFIG_SYSFS (compilation only) with sysfs and without CONFIG_RPS & CONFIG_XPS with sysfs and without CONFIG_RPS with sysfs and without CONFIG_XPS with defaults Signed-off-by: David Decotigny <david.decotigny@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
19b05f8113
commit
ccf5ff69fb
@@ -532,7 +532,7 @@ struct netdev_queue {
|
||||
struct Qdisc *qdisc;
|
||||
unsigned long state;
|
||||
struct Qdisc *qdisc_sleeping;
|
||||
#if defined(CONFIG_RPS) || defined(CONFIG_XPS)
|
||||
#ifdef CONFIG_SYSFS
|
||||
struct kobject kobj;
|
||||
#endif
|
||||
#if defined(CONFIG_XPS) && defined(CONFIG_NUMA)
|
||||
@@ -547,6 +547,12 @@ struct netdev_queue {
|
||||
* please use this field instead of dev->trans_start
|
||||
*/
|
||||
unsigned long trans_start;
|
||||
|
||||
/*
|
||||
* Number of TX timeouts for this queue
|
||||
* (/sys/class/net/DEV/Q/trans_timeout)
|
||||
*/
|
||||
unsigned long trans_timeout;
|
||||
} ____cacheline_aligned_in_smp;
|
||||
|
||||
static inline int netdev_queue_numa_node_read(const struct netdev_queue *q)
|
||||
@@ -1109,9 +1115,11 @@ struct net_device {
|
||||
|
||||
unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add */
|
||||
|
||||
#if defined(CONFIG_RPS) || defined(CONFIG_XPS)
|
||||
#ifdef CONFIG_SYSFS
|
||||
struct kset *queues_kset;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RPS
|
||||
struct netdev_rx_queue *_rx;
|
||||
|
||||
/* Number of RX queues allocated at register_netdev() time */
|
||||
|
Reference in New Issue
Block a user