From owner-freebsd-bugs@FreeBSD.ORG Tue Jun 5 06:10:19 2012 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A1A1C10656D8 for ; Tue, 5 Jun 2012 06:10:19 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id EFE868FC08 for ; Tue, 5 Jun 2012 06:10:15 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q556AFBV012582 for ; Tue, 5 Jun 2012 06:10:15 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q556AF5p012581; Tue, 5 Jun 2012 06:10:15 GMT (envelope-from gnats) Date: Tue, 5 Jun 2012 06:10:15 GMT Message-Id: <201206050610.q556AF5p012581@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/168649: commit references a PR X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jun 2012 06:10:19 -0000 The following reply was made to PR kern/168649; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/168649: commit references a PR Date: Tue, 5 Jun 2012 06:04:18 +0000 (UTC) Author: adrian Date: Tue Jun 5 06:03:55 2012 New Revision: 236599 URL: http://svn.freebsd.org/changeset/base/236599 Log: Mostly revert previous commit(s). After doing a bunch of local testing, it turns out that it negatively affects performance. I'm stil investigating exactly why deferring the IO causes such negative TCP performance but doesn't affect UDP preformance. Leave the ath_tx_kick() change in there however; it's going to be useful to have that there for if_transmit() work. PR: kern/168649 Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_ath_misc.h head/sys/dev/ath/if_athvar.h Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Tue Jun 5 05:16:04 2012 (r236598) +++ head/sys/dev/ath/if_ath.c Tue Jun 5 06:03:55 2012 (r236599) @@ -142,7 +142,6 @@ static void ath_vap_delete(struct ieee80 static void ath_init(void *); static void ath_stop_locked(struct ifnet *); static void ath_stop(struct ifnet *); -static void ath_tx_tasklet(void *arg, int npending); static int ath_reset_vap(struct ieee80211vap *, u_long); static int ath_media_change(struct ifnet *); static void ath_watchdog(void *); @@ -374,7 +373,6 @@ ath_attach(u_int16_t devid, struct ath_s "%s taskq", ifp->if_xname); TASK_INIT(&sc->sc_rxtask, 0, ath_rx_tasklet, sc); - TASK_INIT(&sc->sc_txstarttask, 0, ath_tx_tasklet, sc); TASK_INIT(&sc->sc_bmisstask, 0, ath_bmiss_proc, sc); TASK_INIT(&sc->sc_bstucktask,0, ath_bstuck_proc, sc); TASK_INIT(&sc->sc_resettask,0, ath_reset_proc, sc); @@ -2327,15 +2325,6 @@ void ath_start(struct ifnet *ifp) { struct ath_softc *sc = ifp->if_softc; - - taskqueue_enqueue(sc->sc_tq, &sc->sc_txstarttask); -} - -static void -ath_tx_tasklet(void *arg, int npending) -{ - struct ath_softc *sc = (struct ath_softc *) arg; - struct ifnet *ifp = sc->sc_ifp; struct ieee80211_node *ni; struct ath_buf *bf; struct mbuf *m, *next; Modified: head/sys/dev/ath/if_ath_misc.h ============================================================================== --- head/sys/dev/ath/if_ath_misc.h Tue Jun 5 05:16:04 2012 (r236598) +++ head/sys/dev/ath/if_ath_misc.h Tue Jun 5 06:03:55 2012 (r236599) @@ -88,12 +88,7 @@ static inline void ath_tx_kick(struct ath_softc *sc) { - /* - * Use a taskqueue to schedule a TX completion task, - * even if we're in taskqueue context. That way this can - * be called from any context. - */ - taskqueue_enqueue(sc->sc_tq, &sc->sc_txstarttask); + ath_start(sc->sc_ifp); } #endif Modified: head/sys/dev/ath/if_athvar.h ============================================================================== --- head/sys/dev/ath/if_athvar.h Tue Jun 5 05:16:04 2012 (r236598) +++ head/sys/dev/ath/if_athvar.h Tue Jun 5 06:03:55 2012 (r236599) @@ -476,7 +476,6 @@ struct ath_softc { struct mbuf *sc_rxpending; /* pending receive data */ u_int32_t *sc_rxlink; /* link ptr in last RX desc */ struct task sc_rxtask; /* rx int processing */ - struct task sc_txstarttask; /* ath_start() processing */ u_int8_t sc_defant; /* current default antenna */ u_int8_t sc_rxotherant; /* rx's on non-default antenna*/ u_int64_t sc_lastrx; /* tsf at last rx'd frame */ _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"