From owner-svn-src-user@FreeBSD.ORG Fri Sep 23 15:32:03 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE1B7106564A; Fri, 23 Sep 2011 15:32:03 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A42848FC0C; Fri, 23 Sep 2011 15:32:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8NFW3Nr077782; Fri, 23 Sep 2011 15:32:03 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8NFW3MY077780; Fri, 23 Sep 2011 15:32:03 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201109231532.p8NFW3MY077780@svn.freebsd.org> From: Adrian Chadd Date: Fri, 23 Sep 2011 15:32:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225742 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Sep 2011 15:32:03 -0000 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) {