From 63efadf0294ce893234c3c9a9cb712b1f9929fdf Mon Sep 17 00:00:00 2001 From: Ryan Zezeski Date: Wed, 1 Mar 2017 11:11:28 -0700 Subject: [PATCH] 8561 export all ixgbe tx ring stats Reviewed by: Jerry Jelinek Reviewed by: Robert Mustachci Approved by: Dan McDonald --- usr/src/uts/common/io/ixgbe/ixgbe_debug.h | 9 +-------- usr/src/uts/common/io/ixgbe/ixgbe_stat.c | 10 ++++++++++ usr/src/uts/common/io/ixgbe/ixgbe_sw.h | 9 +++------ usr/src/uts/common/io/ixgbe/ixgbe_tx.c | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/usr/src/uts/common/io/ixgbe/ixgbe_debug.h b/usr/src/uts/common/io/ixgbe/ixgbe_debug.h index 1d0fd18424..be5f1a00d1 100644 --- a/usr/src/uts/common/io/ixgbe/ixgbe_debug.h +++ b/usr/src/uts/common/io/ixgbe/ixgbe_debug.h @@ -28,6 +28,7 @@ /* * Copyright 2016 OmniTI Computer Consulting, Inc. All rights reserved. + * Copyright 2017 Joyent, Inc. */ #ifndef _IXGBE_DEBUG_H @@ -55,9 +56,6 @@ extern "C" { #define IXGBE_DEBUGLOG_6(adapter, fmt, d1, d2, d3, d4, d5, d6) \ ixgbe_log((adapter), (fmt), (d1), (d2), (d3), (d4), (d5), (d6)) -#define IXGBE_DEBUG_STAT_COND(val, cond) if (cond) (val)++; -#define IXGBE_DEBUG_STAT(val) (val)++; - #else #define IXGBE_DEBUGLOG_0(adapter, fmt) @@ -66,9 +64,6 @@ extern "C" { #define IXGBE_DEBUGLOG_3(adapter, fmt, d1, d2, d3) #define IXGBE_DEBUGLOG_6(adapter, fmt, d1, d2, d3, d4, d5, d6) -#define IXGBE_DEBUG_STAT_COND(val, cond) -#define IXGBE_DEBUG_STAT(val) - #endif /* IXGBE_DEBUG */ #ifdef IXGBE_DEBUG @@ -124,8 +119,6 @@ void ixgbe_dump_addr(void *, char *, const uint8_t *); */ #define DEBUGFUNC(F) -#define IXGBE_STAT(val) (val)++; - extern void ixgbe_log(void *, const char *, ...); #ifdef __cplusplus diff --git a/usr/src/uts/common/io/ixgbe/ixgbe_stat.c b/usr/src/uts/common/io/ixgbe/ixgbe_stat.c index 2e550a9d36..96b5aeb646 100644 --- a/usr/src/uts/common/io/ixgbe/ixgbe_stat.c +++ b/usr/src/uts/common/io/ixgbe/ixgbe_stat.c @@ -76,6 +76,8 @@ ixgbe_update_stats(kstat_t *ks, int rw) ixgbe_ks->tx_fail_no_tcb.value.ui64 = 0; ixgbe_ks->tx_fail_dma_bind.value.ui64 = 0; ixgbe_ks->tx_reschedule.value.ui64 = 0; + ixgbe_ks->tx_break_tbd_limit.value.ui64 = 0; + ixgbe_ks->tx_lso_header_fail.value.ui64 = 0; for (i = 0; i < ixgbe->num_tx_rings; i++) { ixgbe_ks->tx_overload.value.ui64 += ixgbe->tx_rings[i].stat_overload; @@ -87,6 +89,10 @@ ixgbe_update_stats(kstat_t *ks, int rw) ixgbe->tx_rings[i].stat_fail_dma_bind; ixgbe_ks->tx_reschedule.value.ui64 += ixgbe->tx_rings[i].stat_reschedule; + ixgbe_ks->tx_break_tbd_limit.value.ui64 += + ixgbe->tx_rings[i].stat_break_tbd_limit; + ixgbe_ks->tx_lso_header_fail.value.ui64 += + ixgbe->tx_rings[i].stat_lso_header_fail; } /* @@ -260,6 +266,10 @@ ixgbe_init_stats(ixgbe_t *ixgbe) KSTAT_DATA_UINT64); kstat_named_init(&ixgbe_ks->tx_reschedule, "tx_reschedule", KSTAT_DATA_UINT64); + kstat_named_init(&ixgbe_ks->tx_break_tbd_limit, "tx_break_tbd_limit", + KSTAT_DATA_UINT64); + kstat_named_init(&ixgbe_ks->tx_lso_header_fail, "tx_lso_header_fail", + KSTAT_DATA_UINT64); kstat_named_init(&ixgbe_ks->gprc, "good_pkts_recvd", KSTAT_DATA_UINT64); diff --git a/usr/src/uts/common/io/ixgbe/ixgbe_sw.h b/usr/src/uts/common/io/ixgbe/ixgbe_sw.h index 0486972aaf..986061bfad 100644 --- a/usr/src/uts/common/io/ixgbe/ixgbe_sw.h +++ b/usr/src/uts/common/io/ixgbe/ixgbe_sw.h @@ -511,14 +511,9 @@ typedef struct ixgbe_tx_ring { uint32_t stat_fail_no_tcb; uint32_t stat_fail_dma_bind; uint32_t stat_reschedule; - -#ifdef IXGBE_DEBUG - /* - * Debug statistics - */ uint32_t stat_break_tbd_limit; uint32_t stat_lso_header_fail; -#endif + uint64_t stat_obytes; uint64_t stat_opackets; @@ -774,6 +769,8 @@ typedef struct ixgbe_stat { kstat_named_t tx_fail_no_tbd; /* Tx Fail Desc Ring Empty */ kstat_named_t tx_fail_dma_bind; /* Tx Fail DMA bind */ kstat_named_t tx_reschedule; /* Tx Reschedule */ + kstat_named_t tx_break_tbd_limit; /* Reached single xmit desc limit */ + kstat_named_t tx_lso_header_fail; /* New mblk for last LSO hdr frag */ kstat_named_t gprc; /* Good Packets Received Count */ kstat_named_t gptc; /* Good Packets Xmitted Count */ diff --git a/usr/src/uts/common/io/ixgbe/ixgbe_tx.c b/usr/src/uts/common/io/ixgbe/ixgbe_tx.c index 95e6a3b389..b29448eb26 100644 --- a/usr/src/uts/common/io/ixgbe/ixgbe_tx.c +++ b/usr/src/uts/common/io/ixgbe/ixgbe_tx.c @@ -214,7 +214,7 @@ ixgbe_ring_tx(void *arg, mblk_t *mp) if ((hdr_nmp != mp) || (P2NPHASE((uintptr_t)hdr_nmp->b_rptr, ixgbe->sys_page_size) < hdr_len)) { - IXGBE_DEBUG_STAT(tx_ring->stat_lso_header_fail); + tx_ring->stat_lso_header_fail++; /* * reallocate the mblk for the last header fragment, * expect to bcopy into pre-allocated page-aligned @@ -393,7 +393,7 @@ adjust_threshold: * descriptors is needed. */ if (desc_total + 1 > IXGBE_TX_DESC_LIMIT) { - IXGBE_DEBUG_STAT(tx_ring->stat_break_tbd_limit); + tx_ring->stat_break_tbd_limit++; /* * Discard the mblk and free the used resources -- 2.11.4.GIT