Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Apr 2012 15:10:05 GMT
From:      Andrew Atrens <andrew@atrens.ca>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/166642: in 802.11n mode for FreeBSD AP, having a station in powersave cripples AP TX.
Message-ID:  <201204041510.q34FA5YJ061628@red.freebsd.org>
Resent-Message-ID: <201204041520.q34FK2HN016922@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         166642
>Category:       kern
>Synopsis:       in 802.11n mode for FreeBSD AP, having a station in powersave cripples AP TX.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 04 15:20:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Andrew Atrens
>Release:        trunk
>Organization:
>Environment:
not platform specific.
>Description:
This little bit of code (wrapped by me in notanymore) absolutely cripples FreeBSD 802.11n AP  tx throughput if one or more stations is in power save mode (or as macbooks and ipods do - going in and out of power save mode constantly).

All ping times also ratchet from sub 1ms up to 100+ms.


-- atrens@andrew: /localdisk/freebsd/sys/dev/ath (11:02) --
$ svn diff .
Index: if_ath_tx.c
===================================================================
--- if_ath_tx.c (revision 233851)
+++ if_ath_tx.c (working copy)
@@ -1451,8 +1451,10 @@
         * anyone.  This is likely a very suboptimal way of dealing
         * with things.
         */
+#if notanymore
        if ((! is_ampdu) && (vap->iv_ps_sta || avp->av_mcastq.axq_depth))
                txq = &avp->av_mcastq;
+#endif
 
        /* Do the generic frame setup */
        /* XXX should just bzero the bf_state? */



>How-To-Repeat:
Set up a FreeBSD AP in 802.11n mode and start a ping to any station.  Turn on your ipod and let it connect to the network.  You will see the pings ratchet from sub 1ms up to 100+ms .. FreeBSD AP tx throughput will also be crippled.
>Fix:

Workaround for me is to remove the mentioned code snippet. I'm not sure of the original intent of that change but the net effect of this bug is likely more deleterious than the problem the change attempted to address.

 


>Release-Note:
>Audit-Trail:
>Unformatted:



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