diff options
author | Rafal Ozieblo <rafalo@cadence.com> | 2017-11-30 21:19:56 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-11-30 22:12:46 +0300 |
commit | 512286bbd4b7d5b15d26ba8078c8bfd1fc1129bd (patch) | |
tree | caa9cd4c1f530c2983eafc148a955ded20f9dd3c /drivers/net/ethernet/cadence/macb.h | |
parent | ae1f2a56d2738b8b950e59f09fba2209e540199f (diff) | |
download | linux-512286bbd4b7d5b15d26ba8078c8bfd1fc1129bd.tar.xz |
net: macb: Added some queue statistics
Added statistics per queue:
- qX_rx_packets
- qX_rx_bytes
- qX_rx_dropped
- qX_tx_packets
- qX_tx_bytes
- qX_tx_dropped
Signed-off-by: Rafal Ozieblo <rafalo@cadence.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/cadence/macb.h')
-rw-r--r-- | drivers/net/ethernet/cadence/macb.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h index c756f91cd932..a26e7633f7e8 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -922,6 +922,34 @@ static const struct gem_statistic gem_statistics[] = { #define GEM_STATS_LEN ARRAY_SIZE(gem_statistics) +#define QUEUE_STAT_TITLE(title) { \ + .stat_string = title, \ +} + +/* per queue statistics, each should be unsigned long type */ +struct queue_stats { + union { + unsigned long first; + unsigned long rx_packets; + }; + unsigned long rx_bytes; + unsigned long rx_dropped; + unsigned long tx_packets; + unsigned long tx_bytes; + unsigned long tx_dropped; +}; + +static const struct gem_statistic queue_statistics[] = { + QUEUE_STAT_TITLE("rx_packets"), + QUEUE_STAT_TITLE("rx_bytes"), + QUEUE_STAT_TITLE("rx_dropped"), + QUEUE_STAT_TITLE("tx_packets"), + QUEUE_STAT_TITLE("tx_bytes"), + QUEUE_STAT_TITLE("tx_dropped"), +}; + +#define QUEUE_STATS_LEN ARRAY_SIZE(queue_statistics) + struct macb; struct macb_queue; @@ -989,6 +1017,7 @@ struct macb_queue { struct sk_buff **rx_skbuff; void *rx_buffers; struct napi_struct napi; + struct queue_stats stats; #ifdef CONFIG_MACB_USE_HWSTAMP struct work_struct tx_ts_task; @@ -1046,7 +1075,7 @@ struct macb { int skb_length; /* saved skb length for pci_unmap_single */ unsigned int max_tx_length; - u64 ethtool_stats[GEM_STATS_LEN]; + u64 ethtool_stats[GEM_STATS_LEN + QUEUE_STATS_LEN * MACB_MAX_QUEUES]; unsigned int rx_frm_len_mask; unsigned int jumbo_max_len; |