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__ */
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to