I originally reported this problem to the CeroWrt list.
Thought I should include the driver developers as well.
The Cerowrt release uses 3.10.17 kernel but problem continues with 3.10.21.
The ath9k driver goes catatonic under load. This message has the most log
info.
Begin forwarded message:
Date: Wed, 11 Dec 2013 21:41:30 +0100
From: Sebastian Moeller <[email protected]>
To: Dave Taht <[email protected]>
Cc: Stephen Hemminger <[email protected]>, "[email protected]" <[email protected]>
Subject: Re: [Cerowrt-devel] Wireless failures 3.10.17-3
Hi List, hi Dave,
On Dec 11, 2013, at 19:41 , Dave Taht <[email protected]> wrote:
> I have the regrettable problem of mostly testing the 5ghz channel due
> to interference issues on the 2ghz band.
>
> What I am seeing in the last several releases of the 3.8.x and 3.10
> series is after tons of traffic and multiple days of uptime a DMA tx
> error which you can see via the logread or dmesg tool, and once it
> happens, at least sometimes, that radio can "go away" and not be
> resettable. "cannot stop tx dma" is the error.
I think I can make tho error appear "at will" by running netperf-wrapper against my wndr3700v2, just tested under 3.10.21-1:
/netperf-wrapper -l 300 -H gw.home.lan rrul -p all -t hms-beagle_cerowrt3.10.21-1_2_nacktmulle
dmesg on the router:
[ 53.007812] IPv6: ADDRCONF(NETDEV_CHANGE): gw11: link becomes ready
[28792.039062] ath: phy1: Failed to stop TX DMA, queues=0x00e!
[28794.078125] ath: phy1: Failed to stop TX DMA, queues=0x00e!
[28807.164062] ath: phy1: Failed to stop TX DMA, queues=0x00e!
[28809.191406] ath: phy1: Failed to stop TX DMA, queues=0x002!
[28823.269531] ath: phy1: Failed to stop TX DMA, queues=0x00e!
dmesg was clean before so these 5 failures are from the rrul test over the 5GHz radio
running the same over the 2.4GHz radio adds the following:
[29200.921875] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29206.980468] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29209.019531] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29211.066406] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29215.109375] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29227.195312] ath: phy0: Failed to stop TX DMA, queues=0x006!
[29233.257812] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29238.308593] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29240.351562] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29247.417968] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29251.480468] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29253.515625] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29256.558593] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29262.617187] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29264.652343] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29269.699218] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29273.750000] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29278.804687] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29281.859375] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29291.933593] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29294.972656] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29304.050781] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29312.117187] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29315.167968] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29322.246093] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29325.292968] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29330.355468] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29332.390625] ath: phy0: Failed to stop TX DMA, queues=0x00a!
[29334.445312] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29336.484375] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29337.527343] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29343.617187] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29349.679687] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29358.757812] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29361.816406] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29363.851562] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29364.882812] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29370.937500] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29371.976562] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29376.031250] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29378.062500] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29381.105468] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29388.175781] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29393.230468] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29401.292968] ath: phy0: Failed to stop TX DMA, queues=0x003!
[29403.332031] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29413.429687] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29417.480468] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29422.542968] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29424.582031] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29427.636718] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29429.671875] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29431.718750] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29433.765625] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29445.835937] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29449.898437] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29454.960937] ath: phy0: Failed to stop TX DMA, queues=0x00f!
[29461.023437] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29463.062500] ath: phy0: Failed to stop TX DMA, queues=0x00e!
[29466.117187] ath: phy0: Failed to stop TX DMA, queues=0x00f!
I have to admit before today I never tested with 2.4GHz and only say the 4 to 5 messages in the 5GHz band.
Running the same over the wired interface does not cause these messages?
And running from a 5GHz client through the router to a wired client (both on the internal side) just adds:
[30643.500000] ath: phy1: Failed to stop TX DMA, queues=0x00c!
[30736.898437] ath: phy1: Failed to stop TX DMA, queues=0x00e!
It does not immediately lead to a drop of the radio though...
Maybe this can be helpful in the hands of a real expert?
> I have seen this error
> many, many times in cerowrt releases for the last 2 years, but this
> time it seems more severe than usual.
>
> There was also a bug in dnsmasq or somewhere in the lower level of the
> stack where it stops responding to multicast dhcp packets.
>
> The upcoming 3.10.23-1 development release has a refresh of mac80211,
> and a bug fix related to multicast, so I have some hope for it.
>
> It has also the latest dnsmasq 2.68 (which fixes a bug in cname
> handling in particular), and also pie v3 but I am (as usual) not in a
> position to test it right now.
>
> It is my hope that now that the bug happens a lot we can track it
> down. Or, that it's fixed. :)
>
> I just put that release up at:
>
> http://snapon.lab.bufferbloat.net/~cero2/cerowrt/wndr/3.10.23-1/
>
> It does not have the updated aqm-scripts code and gui (sorry
> sebastian),
Ah, even better, I finished the discussed cosmetic changes and tested them, I will try to send them before Sunday, so they might end up in the next cero release. That means you will have to integrate with your changes to avoid HTB for high bandwidths? (or you just put your version in and I will do the integration after the next release :) )
Also, I still need to figure out how to make mutually exclusive with the default QOS system...
> nor the pie v4 drop that just got rejected for kernel
> mainline. I'll try to do a respin this weekend with those, and poke
> harder at the dma tx issue after I get back in the lab. Thoughts
> towards being able to isolate the cause and minimize the effect are
> welcomed - it's one of the biggest barriers to declaring a stable
> release at this point!
>
>
> On Wed, Dec 11, 2013 at 8:58 AM, Stephen Hemminger
> <[email protected]> wrote:
>> Has anyone seen wireless failing after several days with 3.10.17-3?
>>
>> The symptoms are devices fall off the net several days (or a week) after
>> router has been running. I saw the bg AP go away, but the 5 Ghz AP still
>> working. Wired attachment works.
>> _______________________________________________
>> Cerowrt-devel mailing list
>> [email protected]
>> https://lists.bufferbloat.net/listinfo/cerowrt-devel
>
>
>
> --
> Dave T?ht
>
> Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
> _______________________________________________
> Cerowrt-devel mailing list
> [email protected]
> https://lists.bufferbloat.net/listinfo/cerowrt-devel
Hi Sebastian,
> I think I can make tho error appear "at will" by running netperf-wrapper
> against my wndr3700v2, just tested under 3.10.21-1:
> /netperf-wrapper -l 300 -H gw.home.lan rrul -p all -t hms-beagle_cerowrt3.10.21-1_2_nacktmulle
>
> dmesg on the router:
> [ 53.007812] IPv6: ADDRCONF(NETDEV_CHANGE): gw11: link becomes ready
> [28792.039062] ath: phy1: Failed to stop TX DMA, queues=0x00e!
> [28794.078125] ath: phy1: Failed to stop TX DMA, queues=0x00e!
> [28807.164062] ath: phy1: Failed to stop TX DMA, queues=0x00e!
> [28809.191406] ath: phy1: Failed to stop TX DMA, queues=0x002!
> [28823.269531] ath: phy1: Failed to stop TX DMA, queues=0x00e!
What board is this ? Can you post the initial bootlog ?
Sujith
On Fri, Dec 13, 2013 at 1:27 AM, Sujith Manoharan <[email protected]> wrote:
> Sebastian Moeller wrote:
>> It is a net gear WNDR3700 v2, so according to:
>> http://wiki.openwrt.org/toh/netgear/wndr3700 it is a Atheros AR7161 rev 2 680
>> MHz soc with the following wireless parts: Atheros AR9223 802.11bgn / Atheros
>> AR9220 802.11an.
>>
>> Sure, I hope I got the right one. Now this is not from the same boot as the
>> one with the errors, but I assume that does not make a difference? Since I am
>> located in Germany I set the regulatory domain to DE. please let me know if I
>> you need any additional information or testing (note I am not set up to build
>> cerowrt myself, so I would need Dave T?ht's help to build a modified firmware)
THANK YOU!
I have applied the patch to the next build of cerowrt-3.10.24-1 for
the wndr3700v2 and 3800 which will be here when the build completes:
http://snapon.lab.bufferbloat.net/~cero2/cerowrt/wndr/3.10.24-1
100% completely untested by me til sunday! Don't try this on your
default home router.
While I'm here on linux-wireless:
Cerowrt really needs a new maintainer and more people able to build
it. I am generally working on some queuing theory (in wireless/wifi)
right now, fixing a new chipset in a new box that I can't talk about
(yet), and low on free time, and working on standardizing fq_codel in
the ietf is eating what little spare time I have left.
Although dedicating my sundays to Cero, I'm losing the general purpose
skill set required to keep the continuous integration phase from
openwrt to cero on the wndr3800 going. I care about keeping cero
going, but after 3 years of building it and after struggling to make
it stable since august, I'm feeling washed up and burned out on it. I
think we are very close to a stable release, though, and I'll feel
much better about things after this bug is gone?
But while I'm limping along...
Any volunteers to help get the next release after this one out? Any
suggestions for doing it mo better? Or a better strategy for testing
more fixes for bufferbloat?
There MIGHT be some funding for Cero next year. There never has been
before, and there have been too many broken promises, sooo the only
true reward I know of for working on bufferbloat with cerowrt (and it
is major!) is doing bleeding edge research on the Internet's most
nagging problems?. and *solving them*.
OK, then there's also the user base, which is wonderful. And the
notoriety. And kicking the vendors and ISPs making crappy routers in
the shins on a regular basis. Etc.
I'd like to add a next-generation bleeding edge chip to the effort but
can't without more funding and more volunteers.
> Can you try this patch ?
I have folded this into cerowrt-3.10.24-1. Note that in addition to
this problem the last couple builds have been testing dnsmasq 2.68
which may have also broke at the same time, and I am far from the
yurtlab right now so I am unable to test before sunday. (use fixed ip
addrs if it's still busted)
:Crossed fingers:
I note that I don't know if there is a cause or effect relationship in
the DMA tx bug to what we are actually seeing, with radios falling off
the net. I have a similar long-standing bug with babel doing ipv6
ad-hoc mode multicasts and receives and seeing other nodes, but no
actual unicast traffic being capable of being transmitted. That too
seems to happen after seeing the DMA tx bug and days of uptime.
I have also setup an ath9k in several x86 boxes to see if this problem
occurs there. I'd thought it didn't, and that pointed to some sort of
write barrier problem, maybe...
thanks again for taking a stab at the problem! I was merely going to
add a WARN_ON to start searching, didn't think this would arrive in my
mailbox this morning!
> diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> index 8d78253..0337de7 100644
> --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> @@ -76,9 +76,16 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
> mask2 |= ATH9K_INT_CST;
> if (isr2 & AR_ISR_S2_TSFOOR)
> mask2 |= ATH9K_INT_TSFOOR;
> +
> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
> + REG_WRITE(ah, AR_ISR_S2, isr2);
> + isr &= ~AR_ISR_BCNMISC;
> + }
> }
>
> - isr = REG_READ(ah, AR_ISR_RAC);
> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)
> + isr = REG_READ(ah, AR_ISR_RAC);
> +
> if (isr == 0xffffffff) {
> *masked = 0;
> return false;
> @@ -97,11 +104,23 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
>
> *masked |= ATH9K_INT_TX;
>
> - s0_s = REG_READ(ah, AR_ISR_S0_S);
> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED) {
> + s0_s = REG_READ(ah, AR_ISR_S0_S);
> + s1_s = REG_READ(ah, AR_ISR_S1_S);
> + } else {
> + s0_s = REG_READ(ah, AR_ISR_S0);
> + REG_WRITE(ah, AR_ISR_S0, s0_s);
> + s1_s = REG_READ(ah, AR_ISR_S1);
> + REG_WRITE(ah, AR_ISR_S1, s1_s);
> +
> + isr &= ~(AR_ISR_TXOK |
> + AR_ISR_TXDESC |
> + AR_ISR_TXERR |
> + AR_ISR_TXEOL);
> + }
> +
> ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXOK);
> ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXDESC);
> -
> - s1_s = REG_READ(ah, AR_ISR_S1_S);
> ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXERR);
> ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXEOL);
> }
> @@ -120,7 +139,12 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
> if (isr & AR_ISR_GENTMR) {
> u32 s5_s;
>
> - s5_s = REG_READ(ah, AR_ISR_S5_S);
> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED) {
> + s5_s = REG_READ(ah, AR_ISR_S5_S);
> + } else {
> + s5_s = REG_READ(ah, AR_ISR_S5);
> + }
> +
> ah->intr_gen_timer_trigger =
> MS(s5_s, AR_ISR_S5_GENTIMER_TRIG);
>
> @@ -133,6 +157,16 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
> if ((s5_s & AR_ISR_S5_TIM_TIMER) &&
> !(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
> *masked |= ATH9K_INT_TIM_TIMER;
> +
> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
> + REG_WRITE(ah, AR_ISR_S5, s5_s);
> + isr &= ~AR_ISR_GENTMR;
> + }
> + }
> +
> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
> + REG_WRITE(ah, AR_ISR, isr);
> + REG_READ(ah, AR_ISR);
> }
>
> if (sync_cause) {
>
>
> A version that applies over OpenWrt trunk is here:
> http://msujith.org/dir/patches/wl/Dec-13-2013/0001-ath9k-Interrupt-handling-fix-for-AR9002-family.patch
Lots of whitespace errors in the git tree. applied. THANKS!
>
> Sujith
> _______________________________________________
> Cerowrt-devel mailing list
> [email protected]
> https://lists.bufferbloat.net/listinfo/cerowrt-devel
--
Dave T?ht
Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
On 2013-12-13 10:48, Sebastian Moeller wrote:
> Hi Sujith,
>
> On Dec 13, 2013, at 10:27 , Sujith Manoharan <[email protected]> wrote:
>
>> Sebastian Moeller wrote:
>>> It is a net gear WNDR3700 v2, so according to:
>>> http://wiki.openwrt.org/toh/netgear/wndr3700 it is a Atheros AR7161 rev 2 680
>>> MHz soc with the following wireless parts: Atheros AR9223 802.11bgn / Atheros
>>> AR9220 802.11an.
>>>
>>> Sure, I hope I got the right one. Now this is not from the same boot as the
>>> one with the errors, but I assume that does not make a difference? Since I am
>>> located in Germany I set the regulatory domain to DE. please let me know if I
>>> you need any additional information or testing (note I am not set up to build
>>> cerowrt myself, so I would need Dave T?ht's help to build a modified firmware)
>>
>> Can you try this patch ?
>
> I will, but it will take some time, as I cannot build the firmware for this device myself, but need help. So I let you know once I tested the patched kernel.
On OpenWrt/CeroWrt you should not patch it into the kernel. You need to
add it as a patch for package/kernel/mac80211.
- Felix
Dave Taht wrote:
> OK, I couldn't help myself but boot up that release. Wet paint! It
> successfully brought up
> the 5ghz radio, but did not manage to assign an ip address to it
> (netifd bug?) and failed on the 2ghz radio utterly.
>
> trying to restart it manually fails to bring up the 5ghz radio as well.
> Here's an strace of that.
>
> http://snapon.lab.bufferbloat.net/~d/hostapd.strace.txt
>
> I don't see it beacon, either.
>
> Now, I don't have a grip on what started happening two releases back
> (I was out of town) but I figure it is perhaps more relevant than
> chasing the DMA tx thing. And ENOTIME for me on this til sunday. I
> will revert this patch and bisect backwards.
I am not sure how the patch would break things.
Booting OpenWrt trunk (with the patch) on an AP96 reference board seems
to work fine: http://pastebin.com/3rPSfuad
Sujith
Sebastian Moeller wrote:
> It is a net gear WNDR3700 v2, so according to:
> http://wiki.openwrt.org/toh/netgear/wndr3700 it is a Atheros AR7161 rev 2 680
> MHz soc with the following wireless parts: Atheros AR9223 802.11bgn / Atheros
> AR9220 802.11an.
>
> Sure, I hope I got the right one. Now this is not from the same boot as the
> one with the errors, but I assume that does not make a difference… Since I am
> located in Germany I set the regulatory domain to DE. please let me know if I
> you need any additional information or testing (note I am not set up to build
> cerowrt myself, so I would need Dave Täht's help to build a modified firmware)
Can you try this patch ?
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
index 8d78253..0337de7 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
@@ -76,9 +76,16 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
mask2 |= ATH9K_INT_CST;
if (isr2 & AR_ISR_S2_TSFOOR)
mask2 |= ATH9K_INT_TSFOOR;
+
+ if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
+ REG_WRITE(ah, AR_ISR_S2, isr2);
+ isr &= ~AR_ISR_BCNMISC;
+ }
}
- isr = REG_READ(ah, AR_ISR_RAC);
+ if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)
+ isr = REG_READ(ah, AR_ISR_RAC);
+
if (isr == 0xffffffff) {
*masked = 0;
return false;
@@ -97,11 +104,23 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
*masked |= ATH9K_INT_TX;
- s0_s = REG_READ(ah, AR_ISR_S0_S);
+ if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED) {
+ s0_s = REG_READ(ah, AR_ISR_S0_S);
+ s1_s = REG_READ(ah, AR_ISR_S1_S);
+ } else {
+ s0_s = REG_READ(ah, AR_ISR_S0);
+ REG_WRITE(ah, AR_ISR_S0, s0_s);
+ s1_s = REG_READ(ah, AR_ISR_S1);
+ REG_WRITE(ah, AR_ISR_S1, s1_s);
+
+ isr &= ~(AR_ISR_TXOK |
+ AR_ISR_TXDESC |
+ AR_ISR_TXERR |
+ AR_ISR_TXEOL);
+ }
+
ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXOK);
ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXDESC);
-
- s1_s = REG_READ(ah, AR_ISR_S1_S);
ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXERR);
ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXEOL);
}
@@ -120,7 +139,12 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
if (isr & AR_ISR_GENTMR) {
u32 s5_s;
- s5_s = REG_READ(ah, AR_ISR_S5_S);
+ if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED) {
+ s5_s = REG_READ(ah, AR_ISR_S5_S);
+ } else {
+ s5_s = REG_READ(ah, AR_ISR_S5);
+ }
+
ah->intr_gen_timer_trigger =
MS(s5_s, AR_ISR_S5_GENTIMER_TRIG);
@@ -133,6 +157,16 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
if ((s5_s & AR_ISR_S5_TIM_TIMER) &&
!(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
*masked |= ATH9K_INT_TIM_TIMER;
+
+ if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
+ REG_WRITE(ah, AR_ISR_S5, s5_s);
+ isr &= ~AR_ISR_GENTMR;
+ }
+ }
+
+ if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
+ REG_WRITE(ah, AR_ISR, isr);
+ REG_READ(ah, AR_ISR);
}
if (sync_cause) {
A version that applies over OpenWrt trunk is here:
http://msujith.org/dir/patches/wl/Dec-13-2013/0001-ath9k-Interrupt-handling-fix-for-AR9002-family.patch
Sujith
On Fri, Dec 13, 2013 at 8:00 PM, Sujith Manoharan <[email protected]> wrote:
> Dave Taht wrote:
>> OK, I couldn't help myself but boot up that release. Wet paint! It
>> successfully brought up
>> the 5ghz radio, but did not manage to assign an ip address to it
>> (netifd bug?) and failed on the 2ghz radio utterly.
>>
>> trying to restart it manually fails to bring up the 5ghz radio as well.
>> Here's an strace of that.
>>
>> http://snapon.lab.bufferbloat.net/~d/hostapd.strace.txt
>>
>> I don't see it beacon, either.
>>
>> Now, I don't have a grip on what started happening two releases back
>> (I was out of town) but I figure it is perhaps more relevant than
>> chasing the DMA tx thing. And ENOTIME for me on this til sunday. I
>> will revert this patch and bisect backwards.
>
> I am not sure how the patch would break things.
>
> Booting OpenWrt trunk (with the patch) on an AP96 reference board seems
> to work fine: http://pastebin.com/3rPSfuad
>
> Sujith
We appear to have a deeper problem. I reverted your patch, moved my build back
to 3.10.21 to match openwrt, felix reverted some stuff in netifd...
... and on first boot, somehow, all the wireless interfaces come up.
After a reboot, most don't. doing openwrt's wifi up is also
interesting with all sorts of failures trying to bring up different
interfaces.
So I suspect netifd has a race still.
Afer we get that sorted, we can move onto trying to poke into the DMA
tx error, or since it seems by hammering on it I can get an interface
up I can move forward a bit, in parallel.
--
Dave T?ht
Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
On Thu, 12 Dec 2013 10:09:14 +0100
Sebastian Moeller <[email protected]> wrote:
> Hi Sujith,
>
> On Dec 12, 2013, at 06:28 , Sujith Manoharan <[email protected]> wrote:
>
> > Hi Sebastian,
> >
> >> I think I can make tho error appear "at will" by running netperf-wrapper
> >> against my wndr3700v2, just tested under 3.10.21-1:
> >> /netperf-wrapper -l 300 -H gw.home.lan rrul -p all -t hms-beagle_cerowrt3.10.21-1_2_nacktmulle
> >>
> >> dmesg on the router:
> >> [ 53.007812] IPv6: ADDRCONF(NETDEV_CHANGE): gw11: link becomes ready
> >> [28792.039062] ath: phy1: Failed to stop TX DMA, queues=0x00e!
> >> [28794.078125] ath: phy1: Failed to stop TX DMA, queues=0x00e!
> >> [28807.164062] ath: phy1: Failed to stop TX DMA, queues=0x00e!
> >> [28809.191406] ath: phy1: Failed to stop TX DMA, queues=0x002!
> >> [28823.269531] ath: phy1: Failed to stop TX DMA, queues=0x00e!
> >
> > What board is this ?
>
> It is a net gear WNDR3700 v2, so according to: http://wiki.openwrt.org/toh/netgear/wndr3700 it is a Atheros AR7161 rev 2 680 MHz soc with the following wireless parts:
> Atheros AR9223 802.11bgn / Atheros AR9220 802.11an.
>
> root@nacktmulle:~# uname -a
> Linux nacktmulle 3.10.21 #2 Mon Dec 2 11:38:59 PST 2013 mips GNU/Linux
>
>
> > Can you post the initial bootleg ?
>
> Sure, I hope I got the right one. Now this is not from the same boot as the one with the errors, but I assume that does not make a difference? Since I am located in Germany I set the regulatory domain to DE. please let me know if I you need any additional information or testing (note I am not set up to build cerowrt myself, so I would need Dave T?ht's help to build a modified firmware)
>
> [ 0.000000] Linux version 3.10.21 (cero2@snapon) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r38226) ) #2 Mon Dec 2 11:38:59 PST 2013
> [ 0.000000] MyLoader: sysp=aaaa5554, boardp=aaaa5554, parts=aaaa5554
> [ 0.000000] bootconsole [early0] enabled
> [ 0.000000] CPU revision is: 00019374 (MIPS 24Kc)
> [ 0.000000] SoC: Atheros AR7161 rev 2
> [ 0.000000] Clocks: CPU:680.000MHz, DDR:340.000MHz, AHB:170.000MHz, Ref:40.000MHz
> [ 0.000000] Determined physical RAM map:
> [ 0.000000] memory: 04000000 @ 00000000 (usable)
> [ 0.000000] Initrd not found or empty - disabling initrd
> [ 0.000000] Zone ranges:
> [ 0.000000] Normal [mem 0x00000000-0x03ffffff]
> [ 0.000000] Movable zone start for each node
> [ 0.000000] Early memory node ranges
> [ 0.000000] node 0: [mem 0x00000000-0x03ffffff]
> [ 0.000000] On node 0 totalpages: 16384
> [ 0.000000] free_area_init_node: node 0, pgdat 80330eb0, node_mem_map 81000000
> [ 0.000000] Normal zone: 128 pages used for memmap
> [ 0.000000] Normal zone: 0 pages reserved
> [ 0.000000] Normal zone: 16384 pages, LIFO batch:3
> [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
> [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
> [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
> [ 0.000000] pcpu-alloc: [0] 0
> [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
> [ 0.000000] Kernel command line: board=WNDR3700 console=ttyS0,115200 mtdparts=spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,15872k(firmware),64k(art)ro rootfstype=squashfs,jffs2 noinitrd
> [ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
> [ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
> [ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
> [ 0.000000] Writing ErrCtl register=00000000
> [ 0.000000] Readback ErrCtl register=00000000
> [ 0.000000] Memory: 61144k/65536k available (2361k kernel code, 4392k reserved, 612k data, 224k init, 0k highmem)
> [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> [ 0.000000] NR_IRQS:51
> [ 0.027343] Calibrating delay loop... 451.57 BogoMIPS (lpj=882688)
> [ 0.027343] pid_max: default: 32768 minimum: 301
> [ 0.031250] Mount-cache hash table entries: 512
> [ 0.035156] NET: Registered protocol family 16
> [ 0.039062] MIPS: machine is NETGEAR WNDR3700/WNDR3800/WNDRMAC
> [ 2.640625] registering PCI controller with io_map_base unset
> [ 2.648437] bio: create slab <bio-0> at 0
> [ 2.652343] PCI host bridge to bus 0000:00
> [ 2.656250] pci_bus 0000:00: root bus resource [mem 0x10000000-0x16ffffff]
> [ 2.660156] pci_bus 0000:00: root bus resource [io 0x0000]
> [ 2.664062] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
> [ 2.667968] pci 0000:00:11.0: [168c:ff1d] type 00 class 0x020000
> [ 2.667968] pci 0000:00:11.0: fixup device configuration
> [ 2.671875] pci 0000:00:11.0: reg 10: [mem 0x00000000-0x0000ffff]
> [ 2.671875] pci 0000:00:11.0: PME# supported from D0 D3hot
> [ 2.671875] pci 0000:00:12.0: [168c:ff1d] type 00 class 0x020000
> [ 2.671875] pci 0000:00:12.0: fixup device configuration
> [ 2.675781] pci 0000:00:12.0: reg 10: [mem 0x00000000-0x0000ffff]
> [ 2.675781] pci 0000:00:12.0: PME# supported from D0 D3hot
> [ 2.675781] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
> [ 2.675781] pci 0000:00:11.0: BAR 0: assigned [mem 0x10000000-0x1000ffff]
> [ 2.679687] pci 0000:00:12.0: BAR 0: assigned [mem 0x10010000-0x1001ffff]
> [ 2.683593] pci 0000:00:11.0: using irq 40 for pin 1
> [ 2.687500] pci 0000:00:12.0: using irq 41 for pin 1
> [ 2.691406] Switching to clocksource MIPS
> [ 2.695312] NET: Registered protocol family 2
> [ 2.699218] TCP established hash table entries: 512 (order: 0, 4096 bytes)
> [ 2.707031] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
> [ 2.714843] TCP: Hash tables configured (established 512 bind 512)
> [ 2.718750] TCP: reno registered
> [ 2.722656] UDP hash table entries: 256 (order: 0, 4096 bytes)
> [ 2.730468] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
> [ 2.734375] NET: Registered protocol family 1
> [ 2.738281] PCI: CLS 0 bytes, default 32
> [ 2.753906] squashfs: version 4.0 (2009/01/31) Phillip Lougher
> [ 2.757812] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
> [ 2.769531] msgmni has been set to 119
> [ 2.773437] io scheduler noop registered
> [ 2.777343] io scheduler deadline registered (default)
> [ 2.781250] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
> [ 2.808593] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
> [ 2.816406] console [ttyS0] enabled, bootconsole disabled
> [ 2.828125] ath79-spi ath79-spi: master is unqueued, this is deprecated
> [ 2.835937] m25p80 spi0.0: found mx25l12805d, expected m25p80
> [ 2.843750] m25p80 spi0.0: mx25l12805d (16384 Kbytes)
> [ 2.847656] 4 cmdlinepart partitions found on MTD device spi0.0
> [ 2.851562] Creating 4 MTD partitions on "spi0.0":
> [ 2.859375] 0x000000000000-0x000000050000 : "u-boot"
> [ 2.863281] 0x000000050000-0x000000070000 : "u-boot-env"
> [ 2.871093] 0x000000070000-0x000000ff0000 : "firmware"
> [ 2.878906] 2 netgear-fw partitions found on MTD device firmware
> [ 2.882812] 0x000000070000-0x00000017b440 : "kernel"
> [ 2.886718] mtd: partition "kernel" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
> [ 2.902343] 0x00000017b440-0x000000ff0000 : "rootfs"
> [ 2.906250] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
> [ 2.921875] mtd: device 4 (rootfs) set to be root filesystem
> [ 2.925781] 1 squashfs-split partitions found on MTD device rootfs
> [ 2.933593] 0x000000950000-0x000000ff0000 : "rootfs_data"
> [ 2.941406] 0x000000ff0000-0x000001000000 : "art"
> [ 2.949218] Realtek RTL8366S ethernet switch driver version 0.2.2
> [ 2.953125] rtl8366s rtl8366s: using GPIO pins 5 (SDA) and 7 (SCK)
> [ 2.960937] rtl8366s rtl8366s: RTL8366 ver. 1 chip found
> [ 2.984375] libphy: rtl8366s: probed
> [ 3.292968] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:RGMII
> [ 3.597656] ag71xx ag71xx.1: connected to PHY at rtl8366s:04 [uid=001cc960, driver=Generic PHY]
> [ 3.609375] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:RGMII
> [ 3.613281] TCP: bic registered
> [ 3.617187] TCP: cubic registered
> [ 3.621093] TCP: westwood registered
> [ 3.625000] TCP: hybla registered
> [ 3.628906] TCP: htcp registered
> [ 3.632812] TCP: vegas registered
> [ 3.636718] TCP: veno registered
> [ 3.636718] TCP: scalable registered
> [ 3.640625] TCP: lp registered
> [ 3.644531] TCP: yeah registered
> [ 3.648437] TCP: illinois registered
> [ 3.652343] NET: Registered protocol family 17
> [ 3.656250] Bridge firewalling registered
> [ 3.660156] 8021q: 802.1Q VLAN Support v1.8
> [ 3.671875] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
> [ 3.679687] Freeing unused kernel memory: 224K (80348000 - 80380000)
> [ 5.558593] ar71xx: pll_reg 0xb8050010: 0x11110000
> [ 5.558593] eth0: link up (1000Mbps/Full duplex)
> [ 7.113281] usbcore: registered new interface driver usbfs
> [ 7.121093] usbcore: registered new interface driver hub
> [ 7.125000] usbcore: registered new device driver usb
> [ 7.136718] Button Hotplug driver version 0.4.1
> [ 7.171875] SCSI subsystem initialized
> [ 7.183593] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> [ 7.191406] ehci-platform: EHCI generic platform driver
> [ 7.195312] ehci-platform ehci-platform: EHCI Host Controller
> [ 7.199218] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
> [ 7.207031] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
> [ 7.226562] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
> [ 7.230468] hub 1-0:1.0: USB hub found
> [ 7.234375] hub 1-0:1.0: 2 ports detected
> [ 7.246093] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
> [ 7.250000] ohci-platform ohci-platform: Generic Platform OHCI Controller
> [ 7.257812] ohci-platform ohci-platform: new USB bus registered, assigned bus number 2
> [ 7.265625] ohci-platform ohci-platform: irq 14, io mem 0x1c000000
> [ 7.328125] hub 2-0:1.0: USB hub found
> [ 7.332031] hub 2-0:1.0: 2 ports detected
> [ 7.343750] usbcore: registered new interface driver usb-storage
> [ 7.351562] Error: Driver 'gpio-keys-polled' is already registered, aborting...
> [ 7.550781] usb 1-1: new high-speed USB device number 2 using ehci-platform
> [ 7.683593] usb-storage 1-1:1.0: USB Mass Storage device detected
> [ 7.691406] scsi0 : usb-storage 1-1:1.0
> [ 8.699218] scsi 0:0:0:0: Direct-Access SanDisk Ultra 1.01 PQ: 0 ANSI: 2
> [ 8.707031] sd 0:0:0:0: [sda] 31266816 512-byte logical blocks: (16.0 GB/14.9 GiB)
> [ 8.718750] sd 0:0:0:0: [sda] Write Protect is off
> [ 8.722656] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
> [ 8.722656] sd 0:0:0:0: [sda] No Caching mode page found
> [ 8.726562] sd 0:0:0:0: [sda] Assuming drive cache: write through
> [ 8.738281] sd 0:0:0:0: [sda] No Caching mode page found
> [ 8.746093] sd 0:0:0:0: [sda] Assuming drive cache: write through
> [ 8.750000] sda: sda1 sda2
> [ 8.757812] sd 0:0:0:0: [sda] No Caching mode page found
> [ 8.765625] sd 0:0:0:0: [sda] Assuming drive cache: write through
> [ 8.769531] sd 0:0:0:0: [sda] Attached SCSI removable disk
> [ 8.925781] Error: Driver 'gpio-keys-polled' is already registered, aborting...
> [ 9.257812] jffs2: notice: (387) jffs2_build_xattr_subsystem: complete building xattr subsystem, 41 of xdatum (0 unchecked, 41 orphan) and 59 of xref (0 dead, 59 orphan) found.
> [ 9.359375] jffs2: notice: (382) jffs2_build_xattr_subsystem: complete building xattr subsystem, 41 of xdatum (0 unchecked, 41 orphan) and 59 of xref (0 dead, 59 orphan) found.
> [ 9.390625] eth0: link down
> [ 9.796875] Adding 976560k swap on /dev/sda1. Priority:-1 extents:1 across:976560k
> [ 9.859375] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts:
> [ 12.203125] NET: Registered protocol family 10
> [ 12.218750] NET: Registered protocol family 8
> [ 12.222656] NET: Registered protocol family 20
> [ 12.246093] Initializing XFRM netlink socket
> [ 12.250000] NET: Registered protocol family 15
> [ 12.257812] TCP: ledbat registered
> [ 12.261718] tun: Universal TUN/TAP device driver, 1.6
> [ 12.265625] tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
> [ 12.300781] sit: IPv6 over IPv4 tunneling driver
> [ 12.312500] gre: GRE over IPv4 demultiplexor driver
> [ 12.324218] ip_gre: GRE over IPv4 tunneling driver
> [ 12.343750] PPP generic driver version 2.4.2
> [ 12.371093] nf_conntrack version 0.5.0 (958 buckets, 3832 max)
> [ 12.394531] ip6_tables: (C) 2000-2006 Netfilter Core Team
> [ 12.445312] Netfilter messages via NETLINK v0.30.
> [ 12.457031] ip_set: protocol 6
> [ 12.503906] u32 classifier
> [ 12.507812] input device check on
> [ 12.511718] Actions configured
> [ 12.523437] Mirror/redirect action on
> [ 12.531250] Failed to load ipt action
> [ 12.562500] netem: version 1.3
> [ 12.589843] Loading modules backported from Linux version master-2013-11-05-0-gafa3093
> [ 12.597656] Backport generated by backports.git backports-20130802-0-gdb67a3f
> [ 12.613281] Error: Driver 'gpio-keys-polled' is already registered, aborting...
> [ 12.628906] ip_tables: (C) 2000-2006 Netfilter Core Team
> [ 12.695312] NET: Registered protocol family 24
> [ 12.699218] PPTP driver version 0.8.5
> [ 12.792968] xt_time: kernel timezone is -0000
> [ 12.835937] cfg80211: Calling CRDA to update world regulatory domain
> [ 12.839843] cfg80211: World regulatory domain updated:
> [ 12.847656] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
> [ 12.855468] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> [ 12.863281] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> [ 12.871093] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
> [ 12.878906] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (300 mBi, 2000 mBm)
> [ 12.886718] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (300 mBi, 2000 mBm)
> [ 12.894531] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm)
> [ 12.902343] Error: Driver 'gpio-keys-polled' is already registered, aborting...
> [ 13.046875] Error: Driver 'gpio-keys-polled' is already registered, aborting...
> [ 13.074218] Error: Driver 'gpio-keys-polled' is already registered, aborting...
> [ 13.089843] PCI: Enabling device 0000:00:11.0 (0000 -> 0002)
> [ 13.101562] ath: EEPROM regdomain: 0x0
> [ 13.101562] ath: EEPROM indicates default country code should be used
> [ 13.101562] ath: doing EEPROM country->regdmn map search
> [ 13.101562] ath: country maps to regdmn code: 0x3a
> [ 13.101562] ath: Country alpha2 being used: US
> [ 13.101562] ath: Regpair used: 0x3a
> [ 13.128906] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
> [ 13.128906] cfg80211: Calling CRDA for country: US
> [ 13.136718] ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xb0000000, irq=40
> [ 13.144531] cfg80211: Regulatory domain changed to country: US
> [ 13.152343] cfg80211: DFS Master region FCC
> [ 13.156250] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
> [ 13.164062] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
> [ 13.171875] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (300 mBi, 1700 mBm)
> [ 13.179687] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz), (300 mBi, 2400 mBm)
> [ 13.187500] cfg80211: (5490000 KHz - 5600000 KHz @ 80000 KHz), (300 mBi, 2400 mBm)
> [ 13.195312] cfg80211: (5650000 KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2400 mBm)
> [ 13.203125] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (300 mBi, 3000 mBm)
> [ 13.210937] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm)
> [ 13.226562] PCI: Enabling device 0000:00:12.0 (0000 -> 0002)
> [ 13.238281] ath: EEPROM regdomain: 0x0
> [ 13.238281] ath: EEPROM indicates default country code should be used
> [ 13.238281] ath: doing EEPROM country->regdmn map search
> [ 13.238281] ath: country maps to regdmn code: 0x3a
> [ 13.238281] ath: Country alpha2 being used: US
> [ 13.238281] ath: Regpair used: 0x3a
> [ 13.277343] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
> [ 13.285156] ieee80211 phy1: Atheros AR9280 Rev:2 mem=0xb0010000, irq=41
> [ 13.296875] Error: Driver 'gpio-keys-polled' is already registered, aborting...
> [ 13.312500] Error: Driver 'gpio-keys-polled' is already registered, aborting...
> [ 18.355468] IPv6: ADDRCONF(NETDEV_UP): ge00: link is not ready
> [ 18.382812] ar71xx: pll_reg 0xb8050010: 0x11110000
> [ 18.386718] se00: link up (1000Mbps/Full duplex)
> [ 20.851562] ar71xx: pll_reg 0xb8050014: 0x1099
> [ 20.851562] ge00: link up (100Mbps/Full duplex)
> [ 21.000000] IPv6: ADDRCONF(NETDEV_CHANGE): ge00: link becomes ready
> [ 24.839843] cfg80211: Calling CRDA for country: DE
> [ 24.855468] cfg80211: Regulatory domain changed to country: DE
> [ 24.859375] cfg80211: DFS Master region ETSI
> [ 24.863281] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
> [ 24.871093] cfg80211: (2400000 KHz - 2483000 KHz @ 40000 KHz), (N/A, 2000 mBm)
> [ 24.878906] cfg80211: (5150000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm)
> [ 24.886718] cfg80211: (5250000 KHz - 5350000 KHz @ 80000 KHz), (N/A, 2000 mBm)
> [ 24.894531] cfg80211: (5470000 KHz - 5725000 KHz @ 80000 KHz), (N/A, 2700 mBm)
> [ 24.902343] cfg80211: (57240000 KHz - 65880000 KHz @ 2160000 KHz), (N/A, 4000 mBm)
> [ 28.183593] IPv6: ADDRCONF(NETDEV_UP): sw00: link is not ready
> [ 28.460937] IPv6: ADDRCONF(NETDEV_CHANGE): sw00: link becomes ready
> [ 28.476562] IPv6: ADDRCONF(NETDEV_UP): gw00: link is not ready
> [ 28.808593] IPv6: ADDRCONF(NETDEV_CHANGE): gw00: link becomes ready
> [ 34.109375] IPv6: ADDRCONF(NETDEV_UP): gw01: link is not ready
> [ 39.839843] IPv6: ADDRCONF(NETDEV_UP): sw10: link is not ready
> [ 40.382812] IPv6: ADDRCONF(NETDEV_CHANGE): sw10: link becomes ready
> [ 40.398437] IPv6: ADDRCONF(NETDEV_UP): gw10: link is not ready
> [ 40.726562] IPv6: ADDRCONF(NETDEV_CHANGE): gw10: link becomes ready
> [ 41.210937] gw01: Creating new IBSS network, BSSID 2e:7a:34:50:2e:29
> [ 41.210937] IPv6: ADDRCONF(NETDEV_CHANGE): gw01: link becomes ready
> [ 44.929687] IPv6: ADDRCONF(NETDEV_UP): gw11: link is not ready
> [ 54.007812] gw11: Creating new IBSS network, BSSID 56:7f:93:18:27:47
> [ 54.007812] IPv6: ADDRCONF(NETDEV_CHANGE): gw11: link becomes ready
>
Same here on NETGEAR WNDR3800
[ 0.000000] Linux version 3.10.17 (cero2@snapon) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r38226) ) #1 Mon Oct 21 13:14:32 PDT 2013
[ 0.000000] MyLoader: sysp=aaaa5554, boardp=aaaa5554, parts=aaaa5554
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU revision is: 00019374 (MIPS 24Kc)
[ 0.000000] SoC: Atheros AR7161 rev 2
[ 0.000000] Clocks: CPU:680.000MHz, DDR:340.000MHz, AHB:170.000MHz, Ref:40.000MHz
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x07ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x07ffffff]
[ 0.000000] On node 0 totalpages: 32768
[ 0.000000] free_area_init_node: node 0, pgdat 80330eb0, node_mem_map 81000000
[ 0.000000] Normal zone: 256 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 32768 pages, LIFO batch:7
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: board=WNDR3700 console=ttyS0,115200 mtdparts=spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,15872k(firmware),64k(art)ro rootfstype=squashfs,jffs2 noinitrd
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=00000000
[ 0.000000] Readback ErrCtl register=00000000
[ 0.000000] Memory: 126120k/131072k available (2360k kernel code, 4952k reserved, 612k data, 224k init, 0k highmem)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:51
[ 0.027343] Calibrating delay loop... 451.57 BogoMIPS (lpj=882688)
[ 0.027343] pid_max: default: 32768 minimum: 301
[ 0.031250] Mount-cache hash table entries: 512
[ 0.035156] NET: Registered protocol family 16
[ 0.039062] MIPS: machine is NETGEAR WNDR3700/WNDR3800/WNDRMAC
[ 2.640625] registering PCI controller with io_map_base unset
[ 2.648437] bio: create slab <bio-0> at 0
[ 2.652343] PCI host bridge to bus 0000:00
[ 2.656250] pci_bus 0000:00: root bus resource [mem 0x10000000-0x16ffffff]
[ 2.660156] pci_bus 0000:00: root bus resource [io 0x0000]
[ 2.664062] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 2.667968] pci 0000:00:11.0: [168c:ff1d] type 00 class 0x020000
[ 2.667968] pci 0000:00:11.0: fixup device configuration
[ 2.671875] pci 0000:00:11.0: reg 10: [mem 0x00000000-0x0000ffff]
[ 2.671875] pci 0000:00:11.0: PME# supported from D0 D3hot
[ 2.671875] pci 0000:00:12.0: [168c:ff1d] type 00 class 0x020000
[ 2.671875] pci 0000:00:12.0: fixup device configuration
[ 2.675781] pci 0000:00:12.0: reg 10: [mem 0x00000000-0x0000ffff]
[ 2.675781] pci 0000:00:12.0: PME# supported from D0 D3hot
[ 2.675781] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[ 2.675781] pci 0000:00:11.0: BAR 0: assigned [mem 0x10000000-0x1000ffff]
[ 2.679687] pci 0000:00:12.0: BAR 0: assigned [mem 0x10010000-0x1001ffff]
[ 2.683593] pci 0000:00:11.0: using irq 40 for pin 1
[ 2.687500] pci 0000:00:12.0: using irq 41 for pin 1
[ 2.691406] Switching to clocksource MIPS
[ 2.695312] NET: Registered protocol family 2
[ 2.699218] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[ 2.707031] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 2.714843] TCP: Hash tables configured (established 1024 bind 1024)
[ 2.718750] TCP: reno registered
[ 2.722656] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 2.730468] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 2.734375] NET: Registered protocol family 1
[ 2.738281] PCI: CLS 0 bytes, default 32
[ 2.753906] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 2.757812] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 2.769531] msgmni has been set to 246
[ 2.773437] io scheduler noop registered
[ 2.777343] io scheduler deadline registered (default)
[ 2.781250] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 2.808593] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
[ 2.816406] console [ttyS0] enabled, bootconsole disabled
[ 2.828125] ath79-spi ath79-spi: master is unqueued, this is deprecated
[ 2.835937] m25p80 spi0.0: found mx25l12805d, expected m25p80
[ 2.843750] m25p80 spi0.0: mx25l12805d (16384 Kbytes)
[ 2.847656] 4 cmdlinepart partitions found on MTD device spi0.0
[ 2.855468] Creating 4 MTD partitions on "spi0.0":
[ 2.859375] 0x000000000000-0x000000050000 : "u-boot"
[ 2.863281] 0x000000050000-0x000000070000 : "u-boot-env"
[ 2.871093] 0x000000070000-0x000000ff0000 : "firmware"
[ 2.878906] 2 netgear-fw partitions found on MTD device firmware
[ 2.882812] 0x000000070000-0x00000017a440 : "kernel"
[ 2.890625] mtd: partition "kernel" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[ 2.902343] 0x00000017a440-0x000000ff0000 : "rootfs"
[ 2.906250] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[ 2.921875] mtd: partition "rootfs" set to be root filesystem
[ 2.925781] 1 squashfs-split partitions found on MTD device rootfs
[ 2.933593] 0x000000940000-0x000000ff0000 : "rootfs_data"
[ 2.941406] 0x000000ff0000-0x000001000000 : "art"
[ 2.949218] Realtek RTL8366S ethernet switch driver version 0.2.2
[ 2.953125] rtl8366s rtl8366s: using GPIO pins 5 (SDA) and 7 (SCK)
[ 2.960937] rtl8366s rtl8366s: RTL8366 ver. 1 chip found
[ 2.984375] libphy: rtl8366s: probed
[ 2.992187] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:RGMII
[ 3.296875] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:RGMII
[ 3.605468] ag71xx ag71xx.1 eth1: connected to PHY at rtl8366s:04 [uid=001cc960, driver=Generic PHY]
[ 3.617187] TCP: bic registered
[ 3.617187] TCP: cubic registered
[ 3.621093] TCP: westwood registered
[ 3.625000] TCP: hybla registered
[ 3.628906] TCP: htcp registered
[ 3.632812] TCP: vegas registered
[ 3.636718] TCP: veno registered
[ 3.636718] TCP: scalable registered
[ 3.640625] TCP: lp registered
[ 3.644531] TCP: yeah registered
[ 3.648437] TCP: illinois registered
[ 3.652343] NET: Registered protocol family 17
[ 3.656250] Bridge firewalling registered
[ 3.660156] 8021q: 802.1Q VLAN Support v1.8
[ 3.671875] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[ 3.679687] Freeing unused kernel memory: 224K (80348000 - 80380000)
[ 6.679687] usbcore: registered new interface driver usbfs
[ 6.683593] usbcore: registered new interface driver hub
[ 6.691406] usbcore: registered new device driver usb
[ 6.699218] Button Hotplug driver version 0.4.1
[ 6.734375] SCSI subsystem initialized
[ 6.742187] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 6.750000] ehci-platform: EHCI generic platform driver
[ 6.757812] ehci-platform ehci-platform: EHCI Host Controller
[ 6.761718] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[ 6.769531] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[ 6.789062] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[ 6.792968] hub 1-0:1.0: USB hub found
[ 6.796875] hub 1-0:1.0: 2 ports detected
[ 6.804687] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 6.812500] ohci-platform ohci-platform: Generic Platform OHCI Controller
[ 6.820312] ohci-platform ohci-platform: new USB bus registered, assigned bus number 2
[ 6.828125] ohci-platform ohci-platform: irq 14, io mem 0x1c000000
[ 6.890625] hub 2-0:1.0: USB hub found
[ 6.894531] hub 2-0:1.0: 2 ports detected
[ 6.906250] usbcore: registered new interface driver usb-storage
[ 6.910156] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 7.078125] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 7.078125] eth0: link up (1000Mbps/Full duplex)
[ 10.269531] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 10.578125] jffs2: notice: (372) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (1 unchecked, 0 orphan) and 21 of xref (0 dead, 3 orphan) found.
[ 10.667968] jffs2: notice: (367) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (1 unchecked, 0 orphan) and 21 of xref (0 dead, 3 orphan) found.
[ 10.699218] eth0: link down
[ 13.539062] NET: Registered protocol family 10
[ 13.554687] NET: Registered protocol family 8
[ 13.558593] NET: Registered protocol family 20
[ 13.578125] Initializing XFRM netlink socket
[ 13.585937] NET: Registered protocol family 15
[ 13.589843] TCP: ledbat registered
[ 13.597656] tun: Universal TUN/TAP device driver, 1.6
[ 13.601562] tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
[ 13.636718] sit: IPv6 over IPv4 tunneling driver
[ 13.656250] gre: GRE over IPv4 demultiplexor driver
[ 13.664062] ip_gre: GRE over IPv4 tunneling driver
[ 13.679687] PPP generic driver version 2.4.2
[ 13.718750] nf_conntrack version 0.5.0 (1974 buckets, 7896 max)
[ 13.746093] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 13.789062] Netfilter messages via NETLINK v0.30.
[ 13.800781] ip_set: protocol 6
[ 13.859375] u32 classifier
[ 13.863281] input device check on
[ 13.863281] Actions configured
[ 13.875000] Mirror/redirect action on
[ 13.882812] Failed to load ipt action
[ 13.910156] netem: version 1.3
[ 13.917968] PIE scheduler for controlling delay (pie): Module registered
[ 13.957031] Loading modules backported from Linux version master-2013-06-27-0-gdcfa6d5
[ 13.964843] Backport generated by backports.git backports-20130617-4-ge3220f5
[ 13.984375] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 14.003906] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 14.058593] NET: Registered protocol family 24
[ 14.070312] PPTP driver version 0.8.5
[ 14.167968] xt_time: kernel timezone is -0000
[ 14.332031] cfg80211: Calling CRDA to update world regulatory domain
[ 14.339843] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 14.355468] cfg80211: World regulatory domain updated:
[ 14.359375] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 14.367187] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 14.375000] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 14.382812] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 14.390625] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 14.398437] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 14.492187] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 14.539062] PCI: Enabling device 0000:00:11.0 (0000 -> 0002)
[ 14.546875] ath: phy0: eeprom contains invalid mac address: ff:ff:ff:ff:ff:ff
[ 14.554687] ath: phy0: random mac address will be used: a6:ce:8b:ed:c5:7e
[ 14.562500] ath: EEPROM regdomain: 0x0
[ 14.562500] ath: EEPROM indicates default country code should be used
[ 14.562500] ath: doing EEPROM country->regdmn map search
[ 14.562500] ath: country maps to regdmn code: 0x3a
[ 14.562500] ath: Country alpha2 being used: US
[ 14.562500] ath: Regpair used: 0x3a
[ 14.601562] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 14.609375] ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xb0000000, irq=40
[ 14.613281] cfg80211: Calling CRDA for country: US
[ 14.628906] PCI: Enabling device 0000:00:12.0 (0000 -> 0002)
[ 14.640625] ath: EEPROM regdomain: 0x0
[ 14.640625] ath: EEPROM indicates default country code should be used
[ 14.640625] ath: doing EEPROM country->regdmn map search
[ 14.640625] ath: country maps to regdmn code: 0x3a
[ 14.640625] ath: Country alpha2 being used: US
[ 14.640625] ath: Regpair used: 0x3a
[ 14.656250] cfg80211: Regulatory domain changed to country: US
[ 14.660156] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 14.667968] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
[ 14.675781] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
[ 14.683593] cfg80211: (5250000 KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 14.691406] cfg80211: (5490000 KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 14.699218] cfg80211: (5650000 KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 14.707031] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
[ 14.718750] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 14.718750] ieee80211 phy1: Atheros AR9280 Rev:2 mem=0xb0010000, irq=41
[ 14.738281] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 14.757812] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 20.726562] IPv6: ADDRCONF(NETDEV_UP): ge00: link is not ready
[ 20.753906] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 20.757812] se00: link up (1000Mbps/Full duplex)
[ 23.007812] ar71xx: pll_reg 0xb8050014: 0x1099
[ 23.007812] ge00: link up (100Mbps/Full duplex)
[ 23.035156] IPv6: ADDRCONF(NETDEV_CHANGE): ge00: link becomes ready
[ 28.863281] IPv6: ADDRCONF(NETDEV_UP): sw00: link is not ready
[ 28.902343] IPv6: ADDRCONF(NETDEV_UP): sw00: link is not ready
[ 29.492187] IPv6: ADDRCONF(NETDEV_CHANGE): sw00: link becomes ready
[ 35.597656] IPv6: ADDRCONF(NETDEV_UP): sw10: link is not ready
[ 35.648437] IPv6: ADDRCONF(NETDEV_UP): sw10: link is not ready
[ 36.484375] IPv6: ADDRCONF(NETDEV_CHANGE): sw10: link becomes ready
Hello Felix,
On Dec 13, 2013, at 17:51 , Felix Fietkau <[email protected]> wrote:
> On 2013-12-13 10:48, Sebastian Moeller wrote:
>> Hi Sujith,
>>
>> On Dec 13, 2013, at 10:27 , Sujith Manoharan <[email protected]> wrote:
>>
>>> Sebastian Moeller wrote:
>>>> It is a net gear WNDR3700 v2, so according to:
>>>> http://wiki.openwrt.org/toh/netgear/wndr3700 it is a Atheros AR7161 rev 2 680
>>>> MHz soc with the following wireless parts: Atheros AR9223 802.11bgn / Atheros
>>>> AR9220 802.11an.
>>>>
>>>> Sure, I hope I got the right one. Now this is not from the same boot as the
>>>> one with the errors, but I assume that does not make a difference? Since I am
>>>> located in Germany I set the regulatory domain to DE. please let me know if I
>>>> you need any additional information or testing (note I am not set up to build
>>>> cerowrt myself, so I would need Dave T?ht's help to build a modified firmware)
>>>
>>> Can you try this patch ?
>>
>> I will, but it will take some time, as I cannot build the firmware for this device myself, but need help. So I let you know once I tested the patched kernel.
> On OpenWrt/CeroWrt you should not patch it into the kernel. You need to
> add it as a patch for package/kernel/mac80211.
Ah, thanks, good to know. Vielen Dank. (I still need Dave's help in integrating this patch into a firmware image so I can actually test it...)
Best Regards
Sebastian
>
> - Felix
> _______________________________________________
> Cerowrt-devel mailing list
> [email protected]
> https://lists.bufferbloat.net/listinfo/cerowrt-devel
Hi Sujith,
On Dec 13, 2013, at 10:27 , Sujith Manoharan <[email protected]> wrote:
> Sebastian Moeller wrote:
>> It is a net gear WNDR3700 v2, so according to:
>> http://wiki.openwrt.org/toh/netgear/wndr3700 it is a Atheros AR7161 rev 2 680
>> MHz soc with the following wireless parts: Atheros AR9223 802.11bgn / Atheros
>> AR9220 802.11an.
>>
>> Sure, I hope I got the right one. Now this is not from the same boot as the
>> one with the errors, but I assume that does not make a difference? Since I am
>> located in Germany I set the regulatory domain to DE. please let me know if I
>> you need any additional information or testing (note I am not set up to build
>> cerowrt myself, so I would need Dave T?ht's help to build a modified firmware)
>
> Can you try this patch ?
I will, but it will take some time, as I cannot build the firmware for this device myself, but need help. So I let you know once I tested the patched kernel.
Best Regards & many thanks
Sebastian
>
> diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> index 8d78253..0337de7 100644
> --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> @@ -76,9 +76,16 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
> mask2 |= ATH9K_INT_CST;
> if (isr2 & AR_ISR_S2_TSFOOR)
> mask2 |= ATH9K_INT_TSFOOR;
> +
> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
> + REG_WRITE(ah, AR_ISR_S2, isr2);
> + isr &= ~AR_ISR_BCNMISC;
> + }
> }
>
> - isr = REG_READ(ah, AR_ISR_RAC);
> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)
> + isr = REG_READ(ah, AR_ISR_RAC);
> +
> if (isr == 0xffffffff) {
> *masked = 0;
> return false;
> @@ -97,11 +104,23 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
>
> *masked |= ATH9K_INT_TX;
>
> - s0_s = REG_READ(ah, AR_ISR_S0_S);
> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED) {
> + s0_s = REG_READ(ah, AR_ISR_S0_S);
> + s1_s = REG_READ(ah, AR_ISR_S1_S);
> + } else {
> + s0_s = REG_READ(ah, AR_ISR_S0);
> + REG_WRITE(ah, AR_ISR_S0, s0_s);
> + s1_s = REG_READ(ah, AR_ISR_S1);
> + REG_WRITE(ah, AR_ISR_S1, s1_s);
> +
> + isr &= ~(AR_ISR_TXOK |
> + AR_ISR_TXDESC |
> + AR_ISR_TXERR |
> + AR_ISR_TXEOL);
> + }
> +
> ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXOK);
> ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXDESC);
> -
> - s1_s = REG_READ(ah, AR_ISR_S1_S);
> ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXERR);
> ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXEOL);
> }
> @@ -120,7 +139,12 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
> if (isr & AR_ISR_GENTMR) {
> u32 s5_s;
>
> - s5_s = REG_READ(ah, AR_ISR_S5_S);
> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED) {
> + s5_s = REG_READ(ah, AR_ISR_S5_S);
> + } else {
> + s5_s = REG_READ(ah, AR_ISR_S5);
> + }
> +
> ah->intr_gen_timer_trigger =
> MS(s5_s, AR_ISR_S5_GENTIMER_TRIG);
>
> @@ -133,6 +157,16 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
> if ((s5_s & AR_ISR_S5_TIM_TIMER) &&
> !(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
> *masked |= ATH9K_INT_TIM_TIMER;
> +
> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
> + REG_WRITE(ah, AR_ISR_S5, s5_s);
> + isr &= ~AR_ISR_GENTMR;
> + }
> + }
> +
> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
> + REG_WRITE(ah, AR_ISR, isr);
> + REG_READ(ah, AR_ISR);
> }
>
> if (sync_cause) {
>
>
> A version that applies over OpenWrt trunk is here:
> http://msujith.org/dir/patches/wl/Dec-13-2013/0001-ath9k-Interrupt-handling-fix-for-AR9002-family.patch
>
> Sujith
--
Sandra, Okko, Joris, & Sebastian Moeller
Telefon: +49 7071 96 49 783, +49 7071 96 49 784, +49 7071 96 49 785
GSM: +49-1577-190 31 41
GSM: +49-1517-00 70 355
Moltkestrasse 6
72072 Tuebingen
Deutschland
Hi Sujith,
On Dec 12, 2013, at 06:28 , Sujith Manoharan <[email protected]> wrote:
> Hi Sebastian,
>
>> I think I can make tho error appear "at will" by running netperf-wrapper
>> against my wndr3700v2, just tested under 3.10.21-1:
>> /netperf-wrapper -l 300 -H gw.home.lan rrul -p all -t hms-beagle_cerowrt3.10.21-1_2_nacktmulle
>>
>> dmesg on the router:
>> [ 53.007812] IPv6: ADDRCONF(NETDEV_CHANGE): gw11: link becomes ready
>> [28792.039062] ath: phy1: Failed to stop TX DMA, queues=0x00e!
>> [28794.078125] ath: phy1: Failed to stop TX DMA, queues=0x00e!
>> [28807.164062] ath: phy1: Failed to stop TX DMA, queues=0x00e!
>> [28809.191406] ath: phy1: Failed to stop TX DMA, queues=0x002!
>> [28823.269531] ath: phy1: Failed to stop TX DMA, queues=0x00e!
>
> What board is this ?
It is a net gear WNDR3700 v2, so according to: http://wiki.openwrt.org/toh/netgear/wndr3700 it is a Atheros AR7161 rev 2 680 MHz soc with the following wireless parts:
Atheros AR9223 802.11bgn / Atheros AR9220 802.11an.
root@nacktmulle:~# uname -a
Linux nacktmulle 3.10.21 #2 Mon Dec 2 11:38:59 PST 2013 mips GNU/Linux
> Can you post the initial bootleg ?
Sure, I hope I got the right one. Now this is not from the same boot as the one with the errors, but I assume that does not make a difference? Since I am located in Germany I set the regulatory domain to DE. please let me know if I you need any additional information or testing (note I am not set up to build cerowrt myself, so I would need Dave T?ht's help to build a modified firmware)
[ 0.000000] Linux version 3.10.21 (cero2@snapon) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r38226) ) #2 Mon Dec 2 11:38:59 PST 2013
[ 0.000000] MyLoader: sysp=aaaa5554, boardp=aaaa5554, parts=aaaa5554
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU revision is: 00019374 (MIPS 24Kc)
[ 0.000000] SoC: Atheros AR7161 rev 2
[ 0.000000] Clocks: CPU:680.000MHz, DDR:340.000MHz, AHB:170.000MHz, Ref:40.000MHz
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 04000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x03ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x03ffffff]
[ 0.000000] On node 0 totalpages: 16384
[ 0.000000] free_area_init_node: node 0, pgdat 80330eb0, node_mem_map 81000000
[ 0.000000] Normal zone: 128 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 16384 pages, LIFO batch:3
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: board=WNDR3700 console=ttyS0,115200 mtdparts=spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,15872k(firmware),64k(art)ro rootfstype=squashfs,jffs2 noinitrd
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Writing ErrCtl register=00000000
[ 0.000000] Readback ErrCtl register=00000000
[ 0.000000] Memory: 61144k/65536k available (2361k kernel code, 4392k reserved, 612k data, 224k init, 0k highmem)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:51
[ 0.027343] Calibrating delay loop... 451.57 BogoMIPS (lpj=882688)
[ 0.027343] pid_max: default: 32768 minimum: 301
[ 0.031250] Mount-cache hash table entries: 512
[ 0.035156] NET: Registered protocol family 16
[ 0.039062] MIPS: machine is NETGEAR WNDR3700/WNDR3800/WNDRMAC
[ 2.640625] registering PCI controller with io_map_base unset
[ 2.648437] bio: create slab <bio-0> at 0
[ 2.652343] PCI host bridge to bus 0000:00
[ 2.656250] pci_bus 0000:00: root bus resource [mem 0x10000000-0x16ffffff]
[ 2.660156] pci_bus 0000:00: root bus resource [io 0x0000]
[ 2.664062] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 2.667968] pci 0000:00:11.0: [168c:ff1d] type 00 class 0x020000
[ 2.667968] pci 0000:00:11.0: fixup device configuration
[ 2.671875] pci 0000:00:11.0: reg 10: [mem 0x00000000-0x0000ffff]
[ 2.671875] pci 0000:00:11.0: PME# supported from D0 D3hot
[ 2.671875] pci 0000:00:12.0: [168c:ff1d] type 00 class 0x020000
[ 2.671875] pci 0000:00:12.0: fixup device configuration
[ 2.675781] pci 0000:00:12.0: reg 10: [mem 0x00000000-0x0000ffff]
[ 2.675781] pci 0000:00:12.0: PME# supported from D0 D3hot
[ 2.675781] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[ 2.675781] pci 0000:00:11.0: BAR 0: assigned [mem 0x10000000-0x1000ffff]
[ 2.679687] pci 0000:00:12.0: BAR 0: assigned [mem 0x10010000-0x1001ffff]
[ 2.683593] pci 0000:00:11.0: using irq 40 for pin 1
[ 2.687500] pci 0000:00:12.0: using irq 41 for pin 1
[ 2.691406] Switching to clocksource MIPS
[ 2.695312] NET: Registered protocol family 2
[ 2.699218] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[ 2.707031] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[ 2.714843] TCP: Hash tables configured (established 512 bind 512)
[ 2.718750] TCP: reno registered
[ 2.722656] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 2.730468] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 2.734375] NET: Registered protocol family 1
[ 2.738281] PCI: CLS 0 bytes, default 32
[ 2.753906] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 2.757812] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 2.769531] msgmni has been set to 119
[ 2.773437] io scheduler noop registered
[ 2.777343] io scheduler deadline registered (default)
[ 2.781250] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 2.808593] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
[ 2.816406] console [ttyS0] enabled, bootconsole disabled
[ 2.828125] ath79-spi ath79-spi: master is unqueued, this is deprecated
[ 2.835937] m25p80 spi0.0: found mx25l12805d, expected m25p80
[ 2.843750] m25p80 spi0.0: mx25l12805d (16384 Kbytes)
[ 2.847656] 4 cmdlinepart partitions found on MTD device spi0.0
[ 2.851562] Creating 4 MTD partitions on "spi0.0":
[ 2.859375] 0x000000000000-0x000000050000 : "u-boot"
[ 2.863281] 0x000000050000-0x000000070000 : "u-boot-env"
[ 2.871093] 0x000000070000-0x000000ff0000 : "firmware"
[ 2.878906] 2 netgear-fw partitions found on MTD device firmware
[ 2.882812] 0x000000070000-0x00000017b440 : "kernel"
[ 2.886718] mtd: partition "kernel" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[ 2.902343] 0x00000017b440-0x000000ff0000 : "rootfs"
[ 2.906250] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[ 2.921875] mtd: device 4 (rootfs) set to be root filesystem
[ 2.925781] 1 squashfs-split partitions found on MTD device rootfs
[ 2.933593] 0x000000950000-0x000000ff0000 : "rootfs_data"
[ 2.941406] 0x000000ff0000-0x000001000000 : "art"
[ 2.949218] Realtek RTL8366S ethernet switch driver version 0.2.2
[ 2.953125] rtl8366s rtl8366s: using GPIO pins 5 (SDA) and 7 (SCK)
[ 2.960937] rtl8366s rtl8366s: RTL8366 ver. 1 chip found
[ 2.984375] libphy: rtl8366s: probed
[ 3.292968] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:RGMII
[ 3.597656] ag71xx ag71xx.1: connected to PHY at rtl8366s:04 [uid=001cc960, driver=Generic PHY]
[ 3.609375] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:RGMII
[ 3.613281] TCP: bic registered
[ 3.617187] TCP: cubic registered
[ 3.621093] TCP: westwood registered
[ 3.625000] TCP: hybla registered
[ 3.628906] TCP: htcp registered
[ 3.632812] TCP: vegas registered
[ 3.636718] TCP: veno registered
[ 3.636718] TCP: scalable registered
[ 3.640625] TCP: lp registered
[ 3.644531] TCP: yeah registered
[ 3.648437] TCP: illinois registered
[ 3.652343] NET: Registered protocol family 17
[ 3.656250] Bridge firewalling registered
[ 3.660156] 8021q: 802.1Q VLAN Support v1.8
[ 3.671875] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[ 3.679687] Freeing unused kernel memory: 224K (80348000 - 80380000)
[ 5.558593] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 5.558593] eth0: link up (1000Mbps/Full duplex)
[ 7.113281] usbcore: registered new interface driver usbfs
[ 7.121093] usbcore: registered new interface driver hub
[ 7.125000] usbcore: registered new device driver usb
[ 7.136718] Button Hotplug driver version 0.4.1
[ 7.171875] SCSI subsystem initialized
[ 7.183593] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 7.191406] ehci-platform: EHCI generic platform driver
[ 7.195312] ehci-platform ehci-platform: EHCI Host Controller
[ 7.199218] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[ 7.207031] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[ 7.226562] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[ 7.230468] hub 1-0:1.0: USB hub found
[ 7.234375] hub 1-0:1.0: 2 ports detected
[ 7.246093] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 7.250000] ohci-platform ohci-platform: Generic Platform OHCI Controller
[ 7.257812] ohci-platform ohci-platform: new USB bus registered, assigned bus number 2
[ 7.265625] ohci-platform ohci-platform: irq 14, io mem 0x1c000000
[ 7.328125] hub 2-0:1.0: USB hub found
[ 7.332031] hub 2-0:1.0: 2 ports detected
[ 7.343750] usbcore: registered new interface driver usb-storage
[ 7.351562] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 7.550781] usb 1-1: new high-speed USB device number 2 using ehci-platform
[ 7.683593] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 7.691406] scsi0 : usb-storage 1-1:1.0
[ 8.699218] scsi 0:0:0:0: Direct-Access SanDisk Ultra 1.01 PQ: 0 ANSI: 2
[ 8.707031] sd 0:0:0:0: [sda] 31266816 512-byte logical blocks: (16.0 GB/14.9 GiB)
[ 8.718750] sd 0:0:0:0: [sda] Write Protect is off
[ 8.722656] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 8.722656] sd 0:0:0:0: [sda] No Caching mode page found
[ 8.726562] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 8.738281] sd 0:0:0:0: [sda] No Caching mode page found
[ 8.746093] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 8.750000] sda: sda1 sda2
[ 8.757812] sd 0:0:0:0: [sda] No Caching mode page found
[ 8.765625] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 8.769531] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 8.925781] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 9.257812] jffs2: notice: (387) jffs2_build_xattr_subsystem: complete building xattr subsystem, 41 of xdatum (0 unchecked, 41 orphan) and 59 of xref (0 dead, 59 orphan) found.
[ 9.359375] jffs2: notice: (382) jffs2_build_xattr_subsystem: complete building xattr subsystem, 41 of xdatum (0 unchecked, 41 orphan) and 59 of xref (0 dead, 59 orphan) found.
[ 9.390625] eth0: link down
[ 9.796875] Adding 976560k swap on /dev/sda1. Priority:-1 extents:1 across:976560k
[ 9.859375] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts:
[ 12.203125] NET: Registered protocol family 10
[ 12.218750] NET: Registered protocol family 8
[ 12.222656] NET: Registered protocol family 20
[ 12.246093] Initializing XFRM netlink socket
[ 12.250000] NET: Registered protocol family 15
[ 12.257812] TCP: ledbat registered
[ 12.261718] tun: Universal TUN/TAP device driver, 1.6
[ 12.265625] tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
[ 12.300781] sit: IPv6 over IPv4 tunneling driver
[ 12.312500] gre: GRE over IPv4 demultiplexor driver
[ 12.324218] ip_gre: GRE over IPv4 tunneling driver
[ 12.343750] PPP generic driver version 2.4.2
[ 12.371093] nf_conntrack version 0.5.0 (958 buckets, 3832 max)
[ 12.394531] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 12.445312] Netfilter messages via NETLINK v0.30.
[ 12.457031] ip_set: protocol 6
[ 12.503906] u32 classifier
[ 12.507812] input device check on
[ 12.511718] Actions configured
[ 12.523437] Mirror/redirect action on
[ 12.531250] Failed to load ipt action
[ 12.562500] netem: version 1.3
[ 12.589843] Loading modules backported from Linux version master-2013-11-05-0-gafa3093
[ 12.597656] Backport generated by backports.git backports-20130802-0-gdb67a3f
[ 12.613281] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 12.628906] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 12.695312] NET: Registered protocol family 24
[ 12.699218] PPTP driver version 0.8.5
[ 12.792968] xt_time: kernel timezone is -0000
[ 12.835937] cfg80211: Calling CRDA to update world regulatory domain
[ 12.839843] cfg80211: World regulatory domain updated:
[ 12.847656] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 12.855468] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.863281] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.871093] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 12.878906] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (300 mBi, 2000 mBm)
[ 12.886718] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (300 mBi, 2000 mBm)
[ 12.894531] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm)
[ 12.902343] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 13.046875] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 13.074218] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 13.089843] PCI: Enabling device 0000:00:11.0 (0000 -> 0002)
[ 13.101562] ath: EEPROM regdomain: 0x0
[ 13.101562] ath: EEPROM indicates default country code should be used
[ 13.101562] ath: doing EEPROM country->regdmn map search
[ 13.101562] ath: country maps to regdmn code: 0x3a
[ 13.101562] ath: Country alpha2 being used: US
[ 13.101562] ath: Regpair used: 0x3a
[ 13.128906] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 13.128906] cfg80211: Calling CRDA for country: US
[ 13.136718] ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xb0000000, irq=40
[ 13.144531] cfg80211: Regulatory domain changed to country: US
[ 13.152343] cfg80211: DFS Master region FCC
[ 13.156250] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 13.164062] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
[ 13.171875] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (300 mBi, 1700 mBm)
[ 13.179687] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz), (300 mBi, 2400 mBm)
[ 13.187500] cfg80211: (5490000 KHz - 5600000 KHz @ 80000 KHz), (300 mBi, 2400 mBm)
[ 13.195312] cfg80211: (5650000 KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2400 mBm)
[ 13.203125] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (300 mBi, 3000 mBm)
[ 13.210937] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm)
[ 13.226562] PCI: Enabling device 0000:00:12.0 (0000 -> 0002)
[ 13.238281] ath: EEPROM regdomain: 0x0
[ 13.238281] ath: EEPROM indicates default country code should be used
[ 13.238281] ath: doing EEPROM country->regdmn map search
[ 13.238281] ath: country maps to regdmn code: 0x3a
[ 13.238281] ath: Country alpha2 being used: US
[ 13.238281] ath: Regpair used: 0x3a
[ 13.277343] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 13.285156] ieee80211 phy1: Atheros AR9280 Rev:2 mem=0xb0010000, irq=41
[ 13.296875] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 13.312500] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[ 18.355468] IPv6: ADDRCONF(NETDEV_UP): ge00: link is not ready
[ 18.382812] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 18.386718] se00: link up (1000Mbps/Full duplex)
[ 20.851562] ar71xx: pll_reg 0xb8050014: 0x1099
[ 20.851562] ge00: link up (100Mbps/Full duplex)
[ 21.000000] IPv6: ADDRCONF(NETDEV_CHANGE): ge00: link becomes ready
[ 24.839843] cfg80211: Calling CRDA for country: DE
[ 24.855468] cfg80211: Regulatory domain changed to country: DE
[ 24.859375] cfg80211: DFS Master region ETSI
[ 24.863281] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 24.871093] cfg80211: (2400000 KHz - 2483000 KHz @ 40000 KHz), (N/A, 2000 mBm)
[ 24.878906] cfg80211: (5150000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm)
[ 24.886718] cfg80211: (5250000 KHz - 5350000 KHz @ 80000 KHz), (N/A, 2000 mBm)
[ 24.894531] cfg80211: (5470000 KHz - 5725000 KHz @ 80000 KHz), (N/A, 2700 mBm)
[ 24.902343] cfg80211: (57240000 KHz - 65880000 KHz @ 2160000 KHz), (N/A, 4000 mBm)
[ 28.183593] IPv6: ADDRCONF(NETDEV_UP): sw00: link is not ready
[ 28.460937] IPv6: ADDRCONF(NETDEV_CHANGE): sw00: link becomes ready
[ 28.476562] IPv6: ADDRCONF(NETDEV_UP): gw00: link is not ready
[ 28.808593] IPv6: ADDRCONF(NETDEV_CHANGE): gw00: link becomes ready
[ 34.109375] IPv6: ADDRCONF(NETDEV_UP): gw01: link is not ready
[ 39.839843] IPv6: ADDRCONF(NETDEV_UP): sw10: link is not ready
[ 40.382812] IPv6: ADDRCONF(NETDEV_CHANGE): sw10: link becomes ready
[ 40.398437] IPv6: ADDRCONF(NETDEV_UP): gw10: link is not ready
[ 40.726562] IPv6: ADDRCONF(NETDEV_CHANGE): gw10: link becomes ready
[ 41.210937] gw01: Creating new IBSS network, BSSID 2e:7a:34:50:2e:29
[ 41.210937] IPv6: ADDRCONF(NETDEV_CHANGE): gw01: link becomes ready
[ 44.929687] IPv6: ADDRCONF(NETDEV_UP): gw11: link is not ready
[ 54.007812] gw11: Creating new IBSS network, BSSID 56:7f:93:18:27:47
[ 54.007812] IPv6: ADDRCONF(NETDEV_CHANGE): gw11: link becomes ready
>
> Sujith
Best Regards
Sebastian
OK, I couldn't help myself but boot up that release. Wet paint! It
successfully brought up
the 5ghz radio, but did not manage to assign an ip address to it
(netifd bug?) and failed on the 2ghz radio utterly.
trying to restart it manually fails to bring up the 5ghz radio as well.
Here's an strace of that.
http://snapon.lab.bufferbloat.net/~d/hostapd.strace.txt
I don't see it beacon, either.
Now, I don't have a grip on what started happening two releases back
(I was out of town) but I figure it is perhaps more relevant than
chasing the DMA tx thing. And ENOTIME for me on this til sunday. I
will revert this patch and bisect backwards.
root@CMTS:~# wifi enable
command failed: Device or resource busy (-16)
Configuration file: /var/run/hostapd-phy0.conf
nl80211: Could not configure driver mode
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface gw00 wasn't started
hostapd_free_hapd_data: Interface gw00 wasn't started
hostapd_free_hapd_data: Interface sw00 wasn't started
Failed to start hostapd for phy0
command failed: Too many open files in system (-23)
command failed: Too many open files in system (-23)
ifconfig: SIOCSIFHWADDR: Device or resource busy
command failed: Device or resource busy (-16)
Configuration file: /var/run/hostapd-phy1.conf
nl80211: Could not configure driver mode
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface gw10 wasn't started
hostapd_free_hapd_data: Interface sw10 wasn't started
Failed to start hostapd for phy1
netifd: Interface 'sw10' is enabled
On Fri, Dec 13, 2013 at 12:56 PM, Dave Taht <[email protected]> wrote:
> On Fri, Dec 13, 2013 at 1:27 AM, Sujith Manoharan <[email protected]> wrote:
>> Sebastian Moeller wrote:
>>> It is a net gear WNDR3700 v2, so according to:
>>> http://wiki.openwrt.org/toh/netgear/wndr3700 it is a Atheros AR7161 rev 2 680
>>> MHz soc with the following wireless parts: Atheros AR9223 802.11bgn / Atheros
>>> AR9220 802.11an.
>>>
>>> Sure, I hope I got the right one. Now this is not from the same boot as the
>>> one with the errors, but I assume that does not make a difference? Since I am
>>> located in Germany I set the regulatory domain to DE. please let me know if I
>>> you need any additional information or testing (note I am not set up to build
>>> cerowrt myself, so I would need Dave T?ht's help to build a modified firmware)
>
> THANK YOU!
>
> I have applied the patch to the next build of cerowrt-3.10.24-1 for
> the wndr3700v2 and 3800 which will be here when the build completes:
>
> http://snapon.lab.bufferbloat.net/~cero2/cerowrt/wndr/3.10.24-1
>
> 100% completely untested by me til sunday! Don't try this on your
> default home router.
>
> While I'm here on linux-wireless:
>
> Cerowrt really needs a new maintainer and more people able to build
> it. I am generally working on some queuing theory (in wireless/wifi)
> right now, fixing a new chipset in a new box that I can't talk about
> (yet), and low on free time, and working on standardizing fq_codel in
> the ietf is eating what little spare time I have left.
>
> Although dedicating my sundays to Cero, I'm losing the general purpose
> skill set required to keep the continuous integration phase from
> openwrt to cero on the wndr3800 going. I care about keeping cero
> going, but after 3 years of building it and after struggling to make
> it stable since august, I'm feeling washed up and burned out on it. I
> think we are very close to a stable release, though, and I'll feel
> much better about things after this bug is gone?
>
> But while I'm limping along...
>
> Any volunteers to help get the next release after this one out? Any
> suggestions for doing it mo better? Or a better strategy for testing
> more fixes for bufferbloat?
>
> There MIGHT be some funding for Cero next year. There never has been
> before, and there have been too many broken promises, sooo the only
> true reward I know of for working on bufferbloat with cerowrt (and it
> is major!) is doing bleeding edge research on the Internet's most
> nagging problems?. and *solving them*.
>
> OK, then there's also the user base, which is wonderful. And the
> notoriety. And kicking the vendors and ISPs making crappy routers in
> the shins on a regular basis. Etc.
>
> I'd like to add a next-generation bleeding edge chip to the effort but
> can't without more funding and more volunteers.
>
>> Can you try this patch ?
>
> I have folded this into cerowrt-3.10.24-1. Note that in addition to
> this problem the last couple builds have been testing dnsmasq 2.68
> which may have also broke at the same time, and I am far from the
> yurtlab right now so I am unable to test before sunday. (use fixed ip
> addrs if it's still busted)
>
> :Crossed fingers:
>
> I note that I don't know if there is a cause or effect relationship in
> the DMA tx bug to what we are actually seeing, with radios falling off
> the net. I have a similar long-standing bug with babel doing ipv6
> ad-hoc mode multicasts and receives and seeing other nodes, but no
> actual unicast traffic being capable of being transmitted. That too
> seems to happen after seeing the DMA tx bug and days of uptime.
>
> I have also setup an ath9k in several x86 boxes to see if this problem
> occurs there. I'd thought it didn't, and that pointed to some sort of
> write barrier problem, maybe...
>
> thanks again for taking a stab at the problem! I was merely going to
> add a WARN_ON to start searching, didn't think this would arrive in my
> mailbox this morning!
>
>> diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
>> index 8d78253..0337de7 100644
>> --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
>> +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
>> @@ -76,9 +76,16 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
>> mask2 |= ATH9K_INT_CST;
>> if (isr2 & AR_ISR_S2_TSFOOR)
>> mask2 |= ATH9K_INT_TSFOOR;
>> +
>> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
>> + REG_WRITE(ah, AR_ISR_S2, isr2);
>> + isr &= ~AR_ISR_BCNMISC;
>> + }
>> }
>>
>> - isr = REG_READ(ah, AR_ISR_RAC);
>> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)
>> + isr = REG_READ(ah, AR_ISR_RAC);
>> +
>> if (isr == 0xffffffff) {
>> *masked = 0;
>> return false;
>> @@ -97,11 +104,23 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
>>
>> *masked |= ATH9K_INT_TX;
>>
>> - s0_s = REG_READ(ah, AR_ISR_S0_S);
>> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED) {
>> + s0_s = REG_READ(ah, AR_ISR_S0_S);
>> + s1_s = REG_READ(ah, AR_ISR_S1_S);
>> + } else {
>> + s0_s = REG_READ(ah, AR_ISR_S0);
>> + REG_WRITE(ah, AR_ISR_S0, s0_s);
>> + s1_s = REG_READ(ah, AR_ISR_S1);
>> + REG_WRITE(ah, AR_ISR_S1, s1_s);
>> +
>> + isr &= ~(AR_ISR_TXOK |
>> + AR_ISR_TXDESC |
>> + AR_ISR_TXERR |
>> + AR_ISR_TXEOL);
>> + }
>> +
>> ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXOK);
>> ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXDESC);
>> -
>> - s1_s = REG_READ(ah, AR_ISR_S1_S);
>> ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXERR);
>> ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXEOL);
>> }
>> @@ -120,7 +139,12 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
>> if (isr & AR_ISR_GENTMR) {
>> u32 s5_s;
>>
>> - s5_s = REG_READ(ah, AR_ISR_S5_S);
>> + if (pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED) {
>> + s5_s = REG_READ(ah, AR_ISR_S5_S);
>> + } else {
>> + s5_s = REG_READ(ah, AR_ISR_S5);
>> + }
>> +
>> ah->intr_gen_timer_trigger =
>> MS(s5_s, AR_ISR_S5_GENTIMER_TRIG);
>>
>> @@ -133,6 +157,16 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
>> if ((s5_s & AR_ISR_S5_TIM_TIMER) &&
>> !(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
>> *masked |= ATH9K_INT_TIM_TIMER;
>> +
>> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
>> + REG_WRITE(ah, AR_ISR_S5, s5_s);
>> + isr &= ~AR_ISR_GENTMR;
>> + }
>> + }
>> +
>> + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {
>> + REG_WRITE(ah, AR_ISR, isr);
>> + REG_READ(ah, AR_ISR);
>> }
>>
>> if (sync_cause) {
>>
>>
>> A version that applies over OpenWrt trunk is here:
>> http://msujith.org/dir/patches/wl/Dec-13-2013/0001-ath9k-Interrupt-handling-fix-for-AR9002-family.patch
>
> Lots of whitespace errors in the git tree. applied. THANKS!
>
>>
>> Sujith
>> _______________________________________________
>> Cerowrt-devel mailing list
>> [email protected]
>> https://lists.bufferbloat.net/listinfo/cerowrt-devel
>
>
>
> --
> Dave T?ht
>
> Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
--
Dave T?ht
Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html