From owner-svn-src-head@FreeBSD.ORG Mon May 13 21:18:01 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 3163DCEA; Mon, 13 May 2013 21:18:01 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0979DAD9; Mon, 13 May 2013 21:18:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r4DLI0kk093913; Mon, 13 May 2013 21:18:00 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r4DLI0lI093907; Mon, 13 May 2013 21:18:00 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201305132118.r4DLI0lI093907@svn.freebsd.org> From: Adrian Chadd Date: Mon, 13 May 2013 21:18:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r250619 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 May 2013 21:18:01 -0000 Author: adrian Date: Mon May 13 21:18:00 2013 New Revision: 250619 URL: http://svnweb.freebsd.org/changeset/base/250619 Log: Add ALQ beacon debugging. Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_ath_alq.h head/sys/dev/ath/if_ath_beacon.c Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Mon May 13 21:17:27 2013 (r250618) +++ head/sys/dev/ath/if_ath.c Mon May 13 21:18:00 2013 (r250619) @@ -3058,6 +3058,11 @@ ath_bstuck_proc(void *arg, int pending) if (ath_hal_gethangstate(sc->sc_ah, 0xff, &hangs) && hangs != 0) if_printf(ifp, "bb hang detected (0x%x)\n", hangs); +#ifdef ATH_DEBUG_ALQ + if (if_ath_alq_checkdebug(&sc->sc_alq, ATH_ALQ_STUCK_BEACON)) + if_ath_alq_post(&sc->sc_alq, ATH_ALQ_STUCK_BEACON, 0, NULL); +#endif + if_printf(ifp, "stuck beacon; resetting (bmiss count %u)\n", sc->sc_bmisscount); sc->sc_stats.ast_bstuck++; Modified: head/sys/dev/ath/if_ath_alq.h ============================================================================== --- head/sys/dev/ath/if_ath_alq.h Mon May 13 21:17:27 2013 (r250618) +++ head/sys/dev/ath/if_ath_alq.h Mon May 13 21:18:00 2013 (r250619) @@ -99,6 +99,20 @@ struct if_ath_alq_interrupt { uint32_t intr_syncstate; }; +#define ATH_ALQ_MIB_COUNTERS 11 +struct if_ath_alq_mib_counters { + uint32_t valid; + uint32_t tx_busy; + uint32_t rx_busy; + uint32_t chan_busy; + uint32_t ext_chan_busy; + uint32_t cycle_count; +}; + +#define ATH_ALQ_MISSED_BEACON 12 +#define ATH_ALQ_STUCK_BEACON 13 +#define ATH_ALQ_RESUME_BEACON 14 + /* * These will always be logged, regardless. */ Modified: head/sys/dev/ath/if_ath_beacon.c ============================================================================== --- head/sys/dev/ath/if_ath_beacon.c Mon May 13 21:17:27 2013 (r250618) +++ head/sys/dev/ath/if_ath_beacon.c Mon May 13 21:18:00 2013 (r250619) @@ -399,6 +399,11 @@ ath_beacon_miss(struct ath_softc *sc) hangs); } +#ifdef ATH_DEBUG_ALQ + if (if_ath_alq_checkdebug(&sc->sc_alq, ATH_ALQ_MISSED_BEACON)) + if_ath_alq_post(&sc->sc_alq, ATH_ALQ_MISSED_BEACON, 0, NULL); +#endif + DPRINTF(sc, ATH_DEBUG_BEACON, "%s: valid=%d, txbusy=%u, rxbusy=%u, chanbusy=%u, " "extchanbusy=%u, cyclecount=%u\n", @@ -451,6 +456,10 @@ ath_beacon_proc(void *arg, int pending) "%s: resume beacon xmit after %u misses\n", __func__, sc->sc_bmisscount); sc->sc_bmisscount = 0; +#ifdef ATH_DEBUG_ALQ + if (if_ath_alq_checkdebug(&sc->sc_alq, ATH_ALQ_RESUME_BEACON)) + if_ath_alq_post(&sc->sc_alq, ATH_ALQ_RESUME_BEACON, 0, NULL); +#endif } if (sc->sc_stagbeacons) { /* staggered beacons */