summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorRyan Zezeski <rpz@joyent.com>2017-03-01 11:11:28 -0700
committerRobert Mustacchi <rm@joyent.com>2017-08-14 18:29:15 +0000
commit63efadf0294ce893234c3c9a9cb712b1f9929fdf (patch)
tree60ec81dedefc87cb738626cd606858f112284e2d /usr/src
parent79d022da827bda94f470706ea9a9a8d6dbab9d07 (diff)
downloadillumos-joyent-63efadf0294ce893234c3c9a9cb712b1f9929fdf.tar.gz
8561 export all ixgbe tx ring stats
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Robert Mustachci <rm@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/io/ixgbe/ixgbe_debug.h9
-rw-r--r--usr/src/uts/common/io/ixgbe/ixgbe_stat.c10
-rw-r--r--usr/src/uts/common/io/ixgbe/ixgbe_sw.h9
-rw-r--r--usr/src/uts/common/io/ixgbe/ixgbe_tx.c4
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