svn commit: r225742 - user/adrian/if_ath_tx/sys/dev/ath

Adrian Chadd adrian at FreeBSD.org
Fri Sep 23 15:32:03 UTC 2011


Author: adrian
Date: Fri Sep 23 15:32:03 2011
New Revision: 225742
URL: http://svn.freebsd.org/changeset/base/225742

Log:
  Use fast taskqueues here.

Modified:
  user/adrian/if_ath_tx/sys/dev/ath/if_ath.c

Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c	Fri Sep 23 14:55:26 2011	(r225741)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c	Fri Sep 23 15:32:03 2011	(r225742)
@@ -372,7 +372,7 @@ ath_attach(u_int16_t devid, struct ath_s
 
 	ATH_TXBUF_LOCK_INIT(sc);
 
-	sc->sc_tq = taskqueue_create("ath_taskq", M_NOWAIT,
+	sc->sc_tq = taskqueue_create_fast("ath_taskq", M_NOWAIT,
 		taskqueue_thread_enqueue, &sc->sc_tq);
 	taskqueue_start_threads(&sc->sc_tq, 1, PI_NET,
 		"%s taskq", ifp->if_xname);
@@ -1405,7 +1405,7 @@ ath_intr(void *arg)
 				 * traffic so any frames held on the staging
 				 * queue are aged and potentially flushed.
 				 */
-				taskqueue_enqueue(sc->sc_tq, &sc->sc_rxtask);
+				taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_rxtask);
 #endif
 			}
 		}
@@ -1433,7 +1433,7 @@ ath_intr(void *arg)
 			 * is in the RX queue.
 			 * This will then kick the PCU.
 			 */
-			taskqueue_enqueue(sc->sc_tq, &sc->sc_rxtask);
+			taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_rxtask);
 			sc->sc_rxlink = NULL;
 			sc->sc_kickpcu = 1;
 		}
@@ -1444,15 +1444,15 @@ ath_intr(void *arg)
 		}
 		if (status & HAL_INT_RX) {
 			sc->sc_stats.ast_rx_intr++;
-			taskqueue_enqueue(sc->sc_tq, &sc->sc_rxtask);
+			taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_rxtask);
 		}
 		if (status & HAL_INT_TX) {
 			sc->sc_stats.ast_tx_intr++;
-			taskqueue_enqueue(sc->sc_tq, &sc->sc_txtask);
+			taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask);
 		}
 		if (status & HAL_INT_BMISS) {
 			sc->sc_stats.ast_bmiss++;
-			taskqueue_enqueue(sc->sc_tq, &sc->sc_bmisstask);
+			taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_bmisstask);
 		}
 		if (status & HAL_INT_GTT)
 			sc->sc_stats.ast_tx_timeout++;
@@ -2579,7 +2579,7 @@ ath_beacon_proc(void *arg, int pending)
 			"%s: missed %u consecutive beacons\n",
 			__func__, sc->sc_bmisscount);
 		if (sc->sc_bmisscount >= ath_bstuck_threshold)
-			taskqueue_enqueue(sc->sc_tq, &sc->sc_bstucktask);
+			taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_bstucktask);
 		return;
 	}
 	if (sc->sc_bmisscount != 0) {
@@ -3719,6 +3719,7 @@ ath_rx_proc(void *arg, int npending)
 		 * If the datalen is greater than the buffer itself,
 		 * it's a corrupted status descriptor; skip.
 		 * Yes, it may actually have data in it.
+		 * XXX this may not actually be needed.
 		 */
 		if (rs->rs_datalen > m->m_len) {
 			device_printf(sc->sc_dev,
@@ -4029,7 +4030,7 @@ rx_next:
 
 	/* Queue DFS tasklet if needed */
 	if (ath_dfs_tasklet_needed(sc, sc->sc_curchan))
-		taskqueue_enqueue(sc->sc_tq, &sc->sc_dfstask);
+		taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_dfstask);
 
 	/*
 	 * Now that all the RX frames were handled that
@@ -6166,7 +6167,7 @@ ath_tdma_beacon_send(struct ath_softc *s
 			"%s: missed %u consecutive beacons\n",
 			__func__, sc->sc_bmisscount);
 		if (sc->sc_bmisscount >= ath_bstuck_threshold)
-			taskqueue_enqueue(sc->sc_tq, &sc->sc_bstucktask);
+			taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_bstucktask);
 		return;
 	}
 	if (sc->sc_bmisscount != 0) {


More information about the svn-src-user mailing list