Module Name: src Committed By: msaitoh Date: Wed Sep 13 07:28:51 UTC 2023
Modified Files: src/sys/dev/pci/ixgbe: ixgbe.c ixgbe.h ixv.c Log Message: ixgbe: Reorder some event counters for readability. To generate a diff of this commit: cvs rdiff -u -r1.326 -r1.327 src/sys/dev/pci/ixgbe/ixgbe.c cvs rdiff -u -r1.86 -r1.87 src/sys/dev/pci/ixgbe/ixgbe.h cvs rdiff -u -r1.183 -r1.184 src/sys/dev/pci/ixgbe/ixv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/ixgbe/ixgbe.c diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.326 src/sys/dev/pci/ixgbe/ixgbe.c:1.327 --- src/sys/dev/pci/ixgbe/ixgbe.c:1.326 Mon May 15 08:01:22 2023 +++ src/sys/dev/pci/ixgbe/ixgbe.c Wed Sep 13 07:28:51 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ixgbe.c,v 1.326 2023/05/15 08:01:22 msaitoh Exp $ */ +/* $NetBSD: ixgbe.c,v 1.327 2023/09/13 07:28:51 msaitoh Exp $ */ /****************************************************************************** @@ -64,7 +64,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.326 2023/05/15 08:01:22 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.327 2023/09/13 07:28:51 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1870,7 +1870,7 @@ ixgbe_add_hw_stats(struct adapter *adapt for (i = 0; i < adapter->num_queues; i++, rxr++, txr++) { #ifdef LRO struct lro_ctrl *lro = &rxr->lro; -#endif /* LRO */ +#endif snprintf(adapter->queues[i].evnamebuf, sizeof(adapter->queues[i].evnamebuf), "%s q%d", xname, i); @@ -1910,27 +1910,6 @@ ixgbe_add_hw_stats(struct adapter *adapt 0, CTL_CREATE, CTL_EOL) != 0) break; - evcnt_attach_dynamic(&adapter->queues[i].irqs, EVCNT_TYPE_INTR, - NULL, adapter->queues[i].evnamebuf, "IRQs on queue"); - evcnt_attach_dynamic(&adapter->queues[i].handleq, - EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, - "Handled queue in softint"); - evcnt_attach_dynamic(&adapter->queues[i].req, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "Requeued in softint"); - evcnt_attach_dynamic(&txr->tso_tx, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "TSO"); - evcnt_attach_dynamic(&txr->no_desc_avail, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, - "TX Queue No Descriptor Available"); - evcnt_attach_dynamic(&txr->total_packets, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, - "Queue Packets Transmitted"); -#ifndef IXGBE_LEGACY_TX - evcnt_attach_dynamic(&txr->pcq_drops, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, - "Packets dropped in pcq"); -#endif - if (sysctl_createv(log, 0, &rnode, &cnode, CTLFLAG_READONLY, CTLTYPE_INT, "rxd_nxck", SYSCTL_DESCR("Receive Descriptor next to check"), @@ -1959,33 +1938,62 @@ ixgbe_add_hw_stats(struct adapter *adapt CTL_CREATE, CTL_EOL) != 0) break; - if (i < __arraycount(stats->qprc)) { - evcnt_attach_dynamic(&stats->qprc[i], EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "qprc"); - evcnt_attach_dynamic(&stats->qptc[i], EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "qptc"); - evcnt_attach_dynamic(&stats->qbrc[i], EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "qbrc"); + evcnt_attach_dynamic(&adapter->queues[i].irqs, EVCNT_TYPE_INTR, + NULL, adapter->queues[i].evnamebuf, "IRQs on queue"); + evcnt_attach_dynamic(&adapter->queues[i].handleq, + EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, + "Handled queue in softint"); + evcnt_attach_dynamic(&adapter->queues[i].req, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, "Requeued in softint"); + if (i < __arraycount(stats->qbtc)) evcnt_attach_dynamic(&stats->qbtc[i], EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "qbtc"); - if (hw->mac.type >= ixgbe_mac_82599EB) - evcnt_attach_dynamic(&stats->qprdc[i], - EVCNT_TYPE_MISC, NULL, - adapter->queues[i].evnamebuf, "qprdc"); - } - - evcnt_attach_dynamic(&rxr->rx_packets, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "qbtc"); + evcnt_attach_dynamic(&txr->total_packets, EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, - "Queue Packets Received"); + "Queue Packets Transmitted"); + if (i < __arraycount(stats->qptc)) + evcnt_attach_dynamic(&stats->qptc[i], EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "qptc"); +#ifndef IXGBE_LEGACY_TX + evcnt_attach_dynamic(&txr->pcq_drops, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "Packets dropped in pcq"); +#endif + evcnt_attach_dynamic(&txr->no_desc_avail, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "TX Queue No Descriptor Available"); + evcnt_attach_dynamic(&txr->tso_tx, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, "TSO"); + evcnt_attach_dynamic(&rxr->rx_bytes, EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, "Queue Bytes Received"); - evcnt_attach_dynamic(&rxr->rx_copies, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "Copied RX Frames"); + if (i < __arraycount(stats->qbrc)) + evcnt_attach_dynamic(&stats->qbrc[i], EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "qbrc"); + evcnt_attach_dynamic(&rxr->rx_packets, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "Queue Packets Received"); + if (i < __arraycount(stats->qprc)) + evcnt_attach_dynamic(&stats->qprc[i], EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "qprc"); + if ((i < __arraycount(stats->qprdc)) && + (hw->mac.type >= ixgbe_mac_82599EB)) + evcnt_attach_dynamic(&stats->qprdc[i], + EVCNT_TYPE_MISC, NULL, + adapter->queues[i].evnamebuf, + "qprdc"); + evcnt_attach_dynamic(&rxr->no_mbuf, EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, "Rx no mbuf"); evcnt_attach_dynamic(&rxr->rx_discarded, EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, "Rx discarded"); + evcnt_attach_dynamic(&rxr->rx_copies, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, "Copied RX Frames"); #ifdef LRO SYSCTL_ADD_INT(ctx, queue_list, OID_AUTO, "lro_queued", CTLFLAG_RD, &lro->lro_queued, 0, @@ -2157,12 +2165,12 @@ ixgbe_clear_evcnt(struct adapter *adapte IXGBE_EVC_STORE(&adapter->queues[i].irqs, 0); IXGBE_EVC_STORE(&adapter->queues[i].handleq, 0); IXGBE_EVC_STORE(&adapter->queues[i].req, 0); - IXGBE_EVC_STORE(&txr->no_desc_avail, 0); IXGBE_EVC_STORE(&txr->total_packets, 0); - IXGBE_EVC_STORE(&txr->tso_tx, 0); #ifndef IXGBE_LEGACY_TX IXGBE_EVC_STORE(&txr->pcq_drops, 0); #endif + IXGBE_EVC_STORE(&txr->no_desc_avail, 0); + IXGBE_EVC_STORE(&txr->tso_tx, 0); txr->q_efbig_tx_dma_setup = 0; txr->q_mbuf_defrag_failed = 0; txr->q_efbig2_tx_dma_setup = 0; @@ -3772,12 +3780,12 @@ ixgbe_detach(device_t dev, int flags) evcnt_detach(&adapter->queues[i].irqs); evcnt_detach(&adapter->queues[i].handleq); evcnt_detach(&adapter->queues[i].req); - evcnt_detach(&txr->no_desc_avail); evcnt_detach(&txr->total_packets); - evcnt_detach(&txr->tso_tx); #ifndef IXGBE_LEGACY_TX evcnt_detach(&txr->pcq_drops); #endif + evcnt_detach(&txr->no_desc_avail); + evcnt_detach(&txr->tso_tx); if (i < __arraycount(stats->qprc)) { evcnt_detach(&stats->qprc[i]); Index: src/sys/dev/pci/ixgbe/ixgbe.h diff -u src/sys/dev/pci/ixgbe/ixgbe.h:1.86 src/sys/dev/pci/ixgbe/ixgbe.h:1.87 --- src/sys/dev/pci/ixgbe/ixgbe.h:1.86 Mon May 30 05:08:17 2022 +++ src/sys/dev/pci/ixgbe/ixgbe.h Wed Sep 13 07:28:51 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ixgbe.h,v 1.86 2022/05/30 05:08:17 msaitoh Exp $ */ +/* $NetBSD: ixgbe.h,v 1.87 2023/09/13 07:28:51 msaitoh Exp $ */ /****************************************************************************** SPDX-License-Identifier: BSD-3-Clause @@ -390,10 +390,10 @@ struct tx_ring { u64 bytes; /* Used for AIM */ u64 packets; /* Soft Stats */ - struct evcnt tso_tx; - struct evcnt no_desc_avail; struct evcnt total_packets; struct evcnt pcq_drops; + struct evcnt no_desc_avail; + struct evcnt tso_tx; /* Per queue conters. The adapter total is in struct adapter */ u64 q_efbig_tx_dma_setup; u64 q_mbuf_defrag_failed; Index: src/sys/dev/pci/ixgbe/ixv.c diff -u src/sys/dev/pci/ixgbe/ixv.c:1.183 src/sys/dev/pci/ixgbe/ixv.c:1.184 --- src/sys/dev/pci/ixgbe/ixv.c:1.183 Wed Jul 6 06:31:47 2022 +++ src/sys/dev/pci/ixgbe/ixv.c Wed Sep 13 07:28:51 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ixv.c,v 1.183 2022/07/06 06:31:47 msaitoh Exp $ */ +/* $NetBSD: ixv.c,v 1.184 2023/09/13 07:28:51 msaitoh Exp $ */ /****************************************************************************** @@ -35,7 +35,7 @@ /*$FreeBSD: head/sys/dev/ixgbe/if_ixv.c 331224 2018-03-19 20:55:05Z erj $*/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ixv.c,v 1.183 2022/07/06 06:31:47 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ixv.c,v 1.184 2023/09/13 07:28:51 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -648,12 +648,12 @@ ixv_detach(device_t dev, int flags) evcnt_detach(&adapter->queues[i].irqs); evcnt_detach(&adapter->queues[i].handleq); evcnt_detach(&adapter->queues[i].req); - evcnt_detach(&txr->no_desc_avail); evcnt_detach(&txr->total_packets); - evcnt_detach(&txr->tso_tx); #ifndef IXGBE_LEGACY_TX evcnt_detach(&txr->pcq_drops); #endif + evcnt_detach(&txr->no_desc_avail); + evcnt_detach(&txr->tso_tx); evcnt_detach(&rxr->rx_packets); evcnt_detach(&rxr->rx_bytes); @@ -2644,6 +2644,10 @@ ixv_add_stats_sysctls(struct adapter *ad NULL, xname, "Admin event"); for (int i = 0; i < adapter->num_queues; i++, rxr++, txr++) { +#ifdef LRO + struct lro_ctrl *lro = &rxr->lro; +#endif + snprintf(adapter->queues[i].evnamebuf, sizeof(adapter->queues[i].evnamebuf), "%s q%d", xname, i); snprintf(adapter->queues[i].namebuf, @@ -2682,31 +2686,6 @@ ixv_add_stats_sysctls(struct adapter *ad 0, CTL_CREATE, CTL_EOL) != 0) break; - evcnt_attach_dynamic(&adapter->queues[i].irqs, EVCNT_TYPE_INTR, - NULL, adapter->queues[i].evnamebuf, "IRQs on queue"); - evcnt_attach_dynamic(&adapter->queues[i].handleq, - EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, - "Handled queue in softint"); - evcnt_attach_dynamic(&adapter->queues[i].req, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "Requeued in softint"); - evcnt_attach_dynamic(&txr->tso_tx, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "TSO"); - evcnt_attach_dynamic(&txr->no_desc_avail, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, - "TX Queue No Descriptor Available"); - evcnt_attach_dynamic(&txr->total_packets, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, - "Queue Packets Transmitted"); -#ifndef IXGBE_LEGACY_TX - evcnt_attach_dynamic(&txr->pcq_drops, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, - "Packets dropped in pcq"); -#endif - -#ifdef LRO - struct lro_ctrl *lro = &rxr->lro; -#endif /* LRO */ - if (sysctl_createv(log, 0, &rnode, &cnode, CTLFLAG_READONLY, CTLTYPE_INT, "rxd_nxck", SYSCTL_DESCR("Receive Descriptor next to check"), @@ -2735,18 +2714,39 @@ ixv_add_stats_sysctls(struct adapter *ad CTL_CREATE, CTL_EOL) != 0) break; - evcnt_attach_dynamic(&rxr->rx_packets, EVCNT_TYPE_MISC, + evcnt_attach_dynamic(&adapter->queues[i].irqs, EVCNT_TYPE_INTR, + NULL, adapter->queues[i].evnamebuf, "IRQs on queue"); + evcnt_attach_dynamic(&adapter->queues[i].handleq, + EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, + "Handled queue in softint"); + evcnt_attach_dynamic(&adapter->queues[i].req, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, "Requeued in softint"); + evcnt_attach_dynamic(&txr->total_packets, EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, - "Queue Packets Received"); + "Queue Packets Transmitted"); +#ifndef IXGBE_LEGACY_TX + evcnt_attach_dynamic(&txr->pcq_drops, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "Packets dropped in pcq"); +#endif + evcnt_attach_dynamic(&txr->no_desc_avail, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "TX Queue No Descriptor Available"); + evcnt_attach_dynamic(&txr->tso_tx, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, "TSO"); + evcnt_attach_dynamic(&rxr->rx_bytes, EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, "Queue Bytes Received"); - evcnt_attach_dynamic(&rxr->rx_copies, EVCNT_TYPE_MISC, - NULL, adapter->queues[i].evnamebuf, "Copied RX Frames"); + evcnt_attach_dynamic(&rxr->rx_packets, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, + "Queue Packets Received"); evcnt_attach_dynamic(&rxr->no_mbuf, EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, "Rx no mbuf"); evcnt_attach_dynamic(&rxr->rx_discarded, EVCNT_TYPE_MISC, NULL, adapter->queues[i].evnamebuf, "Rx discarded"); + evcnt_attach_dynamic(&rxr->rx_copies, EVCNT_TYPE_MISC, + NULL, adapter->queues[i].evnamebuf, "Copied RX Frames"); #ifdef LRO SYSCTL_ADD_INT(ctx, queue_list, OID_AUTO, "lro_queued", CTLFLAG_RD, &lro->lro_queued, 0, @@ -2823,12 +2823,12 @@ ixv_clear_evcnt(struct adapter *adapter) IXGBE_EVC_STORE(&adapter->queues[i].irqs, 0); IXGBE_EVC_STORE(&adapter->queues[i].handleq, 0); IXGBE_EVC_STORE(&adapter->queues[i].req, 0); - IXGBE_EVC_STORE(&txr->tso_tx, 0); - IXGBE_EVC_STORE(&txr->no_desc_avail, 0); IXGBE_EVC_STORE(&txr->total_packets, 0); #ifndef IXGBE_LEGACY_TX IXGBE_EVC_STORE(&txr->pcq_drops, 0); #endif + IXGBE_EVC_STORE(&txr->no_desc_avail, 0); + IXGBE_EVC_STORE(&txr->tso_tx, 0); txr->q_efbig_tx_dma_setup = 0; txr->q_mbuf_defrag_failed = 0; txr->q_efbig2_tx_dma_setup = 0;