Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Aug 2011 09:31:50 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r225291 - user/adrian/if_ath_tx/sys/dev/ath
Message-ID:  <201108310931.p7V9VoDR092147@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Wed Aug 31 09:31:50 2011
New Revision: 225291
URL: http://svn.freebsd.org/changeset/base/225291

Log:
  Add another statistic - track how many times the scheduler is called whilst
  the hardware queue is too deep.

Modified:
  user/adrian/if_ath_tx/sys/dev/ath/if_ath_sysctl.c
  user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
  user/adrian/if_ath_tx/sys/dev/ath/if_athioctl.h

Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_sysctl.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath_sysctl.c	Wed Aug 31 09:29:46 2011	(r225290)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_sysctl.c	Wed Aug 31 09:31:50 2011	(r225291)
@@ -323,6 +323,8 @@ ath_sysctl_txagg(SYSCTL_HANDLER_ARGS)
 	    sc->sc_stats.tx_aggr.aggr_aggr_pkt);
 	printf("aggr single packet low hwq: %d\n",
 	    sc->sc_stats.tx_aggr.aggr_low_hwq_single_pkt);
+	printf("aggr sched, no work: %d\n",
+	    sc->sc_stats.tx_aggr.aggr_sched_nopkt);
 	for (i = 0; i < 64; i++) {
 		printf("%2d: %10d ", i, sc->sc_stats.tx_aggr.aggr_pkts[i]);
 		if (i % 4 == 3)

Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c	Wed Aug 31 09:29:46 2011	(r225290)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c	Wed Aug 31 09:31:50 2011	(r225291)
@@ -3323,6 +3323,7 @@ ath_txq_sched(struct ath_softc *sc, stru
 	 * some packets in the aggregation queue.
 	 */
 	if (txq->axq_aggr_depth >= sc->sc_hwq_limit) {
+		sc->sc_stats.tx_aggr.aggr_sched_nopkt++;
 		return;
 	}
 
@@ -3335,9 +3336,6 @@ ath_txq_sched(struct ath_softc *sc, stru
 		/*
 		 * Suspend paused queues here; they'll be resumed
 		 * once the addba completes or times out.
-		 *
-		 * Since this touches tid->paused, it should lock
-		 * the TID lock before checking.
 		 */
 		DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: tid=%d, paused=%d\n",
 		    __func__, tid->tid, tid->paused);

Modified: user/adrian/if_ath_tx/sys/dev/ath/if_athioctl.h
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_athioctl.h	Wed Aug 31 09:29:46 2011	(r225290)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_athioctl.h	Wed Aug 31 09:31:50 2011	(r225291)
@@ -42,6 +42,7 @@ struct ath_tx_aggr_stats {
 	u_int32_t	aggr_aggr_pkt;
 	u_int32_t	aggr_baw_closed_single_pkt;
 	u_int32_t	aggr_low_hwq_single_pkt;
+	u_int32_t	aggr_sched_nopkt;
 };
 
 struct ath_stats {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201108310931.p7V9VoDR092147>