svn commit: r209809 - head/sys/mips/atheros

Adrian Chadd adrian at FreeBSD.org
Thu Jul 8 15:20:58 UTC 2010


Author: adrian
Date: Thu Jul  8 15:20:57 2010
New Revision: 209809
URL: http://svn.freebsd.org/changeset/base/209809

Log:
  Add TX-path aligned/unaligned stats for if_arge.

Modified:
  head/sys/mips/atheros/if_arge.c
  head/sys/mips/atheros/if_argevar.h

Modified: head/sys/mips/atheros/if_arge.c
==============================================================================
--- head/sys/mips/atheros/if_arge.c	Thu Jul  8 15:05:23 2010	(r209808)
+++ head/sys/mips/atheros/if_arge.c	Thu Jul  8 15:20:57 2010	(r209809)
@@ -209,6 +209,14 @@ arge_attach_sysctl(device_t dev)
 	SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
 		"debug", CTLFLAG_RW, &sc->arge_debug, 0,
 		"arge interface debugging flags");
+
+	SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
+		"tx_pkts_aligned", CTLFLAG_RW, &sc->stats.tx_pkts_aligned, 0,
+		"number of TX aligned packets");
+
+	SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
+		"tx_pkts_unaligned", CTLFLAG_RW, &sc->stats.tx_pkts_unaligned, 0,
+		"number of TX unaligned packets");
 }
 
 static int
@@ -876,13 +884,15 @@ arge_encap(struct arge_softc *sc, struct
 	 */
 	m = *m_head;
 	if (! arge_mbuf_chain_is_tx_aligned(m)) {
+		sc->stats.tx_pkts_unaligned++;
 		m = m_defrag(*m_head, M_DONTWAIT);
 		if (m == NULL) {
 			*m_head = NULL;
 			return (ENOBUFS);
 		}
 		*m_head = m;
-	}
+	} else
+		sc->stats.tx_pkts_aligned++;
 
 	prod = sc->arge_cdata.arge_tx_prod;
 	txd = &sc->arge_cdata.arge_txdesc[prod];

Modified: head/sys/mips/atheros/if_argevar.h
==============================================================================
--- head/sys/mips/atheros/if_argevar.h	Thu Jul  8 15:05:23 2010	(r209808)
+++ head/sys/mips/atheros/if_argevar.h	Thu Jul  8 15:20:57 2010	(r209809)
@@ -155,6 +155,10 @@ struct arge_softc {
 	uint32_t		arge_pll_reg_shift;
 	int			arge_if_flags;
 	uint32_t		arge_debug;
+	struct {
+		uint32_t	tx_pkts_unaligned;
+		uint32_t	tx_pkts_aligned;
+	} stats;
 };
 
 #endif /* __IF_ARGEVAR_H__ */


More information about the svn-src-all mailing list