diff options
| author | Robert Mustacchi <rm@joyent.com> | 2017-09-13 22:27:55 +0000 |
|---|---|---|
| committer | Robert Mustacchi <rm@joyent.com> | 2017-09-13 22:52:43 +0000 |
| commit | 06640bd55ff2c7401a7f0365e685acf2c97a17fc (patch) | |
| tree | 0cc1d02cf8313e4ce625d883e6e75f3c7fa7edc7 | |
| parent | d709fbe5025f68320da403c082de4ef170ee9cf7 (diff) | |
| download | illumos-joyent-06640bd55ff2c7401a7f0365e685acf2c97a17fc.tar.gz | |
qede kstat fixes
| -rw-r--r-- | usr/src/uts/common/io/qede/qede_gld.c | 37 | ||||
| -rw-r--r-- | usr/src/uts/common/io/qede/qede_kstat.c | 88 | ||||
| -rw-r--r-- | usr/src/uts/common/io/qede/qede_version.h | 2 |
3 files changed, 93 insertions, 34 deletions
diff --git a/usr/src/uts/common/io/qede/qede_gld.c b/usr/src/uts/common/io/qede/qede_gld.c index 0294c73553..7e7d41745b 100644 --- a/usr/src/uts/common/io/qede/qede_gld.c +++ b/usr/src/uts/common/io/qede/qede_gld.c @@ -588,8 +588,6 @@ qede_mac_stats(void * arg, qede_fastpath_t *fp = &qede->fp_array[0]; qede_rx_ring_t *rx_ring; qede_tx_ring_t *tx_ring; - uint64_t tot_cnt = 0; - int i,j; if ((qede == NULL) || (value == NULL)) { @@ -653,46 +651,19 @@ qede_mac_stats(void * arg, break; case MAC_STAT_RBYTES: - tot_cnt = 0; - for (i = 0; i < qede->num_fp; i++, fp++) { - rx_ring = fp->rx_ring; - tot_cnt += rx_ring->rx_byte_cnt; - } - *value = tot_cnt; + *value = vstats.common.rx_ucast_bytes + vstats.common.rx_mcast_bytes + vstats.common.rx_bcast_bytes; break; case MAC_STAT_IPACKETS: - /* *value = vstats.rx_ucast_pkts + vstats.rx_mcast_pkts + vstats.rx_bcast_pkts; */ - tot_cnt = 0; - for (i = 0; i < qede->num_fp; i++, fp++) { - rx_ring = fp->rx_ring; - tot_cnt += rx_ring->rx_pkt_cnt; - } - *value = tot_cnt; + *value = vstats.common.rx_ucast_pkts + vstats.common.rx_mcast_pkts + vstats.common.rx_bcast_pkts; break; case MAC_STAT_OBYTES: - /**value = vstats.tx_ucast_bytes + vstats.tx_mcast_bytes + vstats.tx_bcast_bytes;*/ - tot_cnt = 0; - for (i = 0; i < qede->num_fp; i++, fp++) { - for (j = 0; j < qede->num_tc; j++) { - tx_ring = fp->tx_ring[j]; - tot_cnt += tx_ring->tx_byte_count; - } - } - *value = tot_cnt; + *value = vstats.common.tx_ucast_bytes + vstats.common.tx_mcast_bytes + vstats.common.tx_bcast_bytes; break; case MAC_STAT_OPACKETS: - /* *value = vstats.tx_ucast_pkts + vstats.tx_mcast_pkts + vstats.tx_bcast_pkts;*/ - tot_cnt = 0; - for (i = 0; i < qede->num_fp; i++, fp++) { - for (j = 0; j < qede->num_tc; j++) { - tx_ring = fp->tx_ring[j]; - tot_cnt += tx_ring->tx_pkt_count; - } - } - *value = tot_cnt; + *value = vstats.common.tx_ucast_pkts + vstats.common.tx_mcast_pkts + vstats.common.tx_bcast_pkts; break; case ETHER_STAT_ALIGN_ERRORS: diff --git a/usr/src/uts/common/io/qede/qede_kstat.c b/usr/src/uts/common/io/qede/qede_kstat.c index 63d7e8d4f2..431b6b4304 100644 --- a/usr/src/uts/common/io/qede/qede_kstat.c +++ b/usr/src/uts/common/io/qede/qede_kstat.c @@ -901,6 +901,7 @@ boolean_t qede_kstat_init(qede_t *qede) { /*BnxeLogWarn(qede, "Failed to create link kstat");*/ cmn_err(CE_WARN, "Failed to create link kstat"); + qede_kstat_fini(qede); return B_FALSE; } @@ -932,6 +933,7 @@ boolean_t qede_kstat_init(qede_t *qede) { /*BnxeLogWarn(qede, "Failed to create intr kstat");*/ cmn_err(CE_WARN, "Failed to create intr kstat"); + qede_kstat_fini(qede); return B_FALSE; } @@ -974,6 +976,87 @@ boolean_t qede_kstat_init(qede_t *qede) kstat_install(qede->kstats_intr); + +/****************************************************************/ + + if ((qede->kstats_vport = kstat_create("qede", + qede->instance, + "L2Stats", + "net", + KSTAT_TYPE_NAMED, + QEDE_KSTAT_VPORT_STATS_SIZE, + 0)) == NULL) + { + /*BnxeLogWarn(qede, "Failed to create l2chip kstat");*/ + cmn_err(CE_WARN, "Failed to create L2Stats kstat"); + qede_kstat_fini(qede); + return B_FALSE; + } + + pStatsVport = (qede_kstat_vport_stats_t *)qede->kstats_vport->ks_data; + + QEDE_KSTAT_VPORT(rxUcastBytes, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxMcastBytes, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxBcastBytes, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxUcastPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxMcastPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxBcastPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txUcastBytes, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txMcastBytes, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txBcastBytes, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txUcastPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txMcastPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txBcastPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx64bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx127bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx255bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx511bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx1023bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx1518bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx1518bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx1522bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx2047bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx4095bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx9216bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rx16383bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx64bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx64to127bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx128to255bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx256to511bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx512to1023bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx1024to1518bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx1519to2047bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx2048to4095bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx4096to9216bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(tx9217to16383bytePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxMacCtrlFrames, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxPauseFrames, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txPauseFrames, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxCRCerrors, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxAlignErrors, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxCarrierErrors, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxOversizeErrors, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxJabbers, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxUndersizePkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(rxFragments, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txLpiEntryCnt, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txTotalCollisions, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(brbTruncates, KSTAT_DATA_UINT64); + + QEDE_KSTAT_VPORT(noBuffDiscards, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(mftagFilterDiscards, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(macFilterDiscards, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(txErrDropPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(coalescedPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(coalescedEvents, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(coalescedAbortsNum, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(nonCoalescedPkts, KSTAT_DATA_UINT64); + QEDE_KSTAT_VPORT(coalescedBytes, KSTAT_DATA_UINT64); + + qede->kstats_vport->ks_update = qede_kstat_vport_stats_update; + qede->kstats_vport->ks_private = (void *)qede; + + kstat_install(qede->kstats_vport); for (i = 0; i < qede->num_fp; i++) { if(!qede_kstat_init_rxq(qede,i)) { @@ -1011,6 +1094,11 @@ void qede_kstat_fini(qede_t *qede) kstat_delete(qede->kstats_intr); qede->kstats_intr = NULL; } + if(qede->kstats_vport) + { + kstat_delete(qede->kstats_vport); + qede->kstats_vport = NULL; + } for (i = 0; i < qede->num_fp; i++) { diff --git a/usr/src/uts/common/io/qede/qede_version.h b/usr/src/uts/common/io/qede/qede_version.h index d1a305e014..a8844ddc50 100644 --- a/usr/src/uts/common/io/qede/qede_version.h +++ b/usr/src/uts/common/io/qede/qede_version.h @@ -36,4 +36,4 @@ #define MAJVERSION 8 #define MINVERSION 0 -#define REVVERSION 21 +#define REVVERSION 22 |
