From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Greear Date: Wed, 05 Nov 2014 21:04:20 -0800 Subject: [ath9k-devel] Looking for help while using Ath9k to make multi virtual station In-Reply-To: References: Message-ID: <545B0154.2060908@candelatech.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: ath9k-devel@lists.ath9k.org I would try a smaller number of stations to start with, and a smaller number of NICs. You could also try using one of these kernels: git clone git://dmz2.candelatech.com/linux-3.14.dev.y git clone git://dmz2.candelatech.com/linux-3.17.dev.y 3.14 has worked well for us, and I recently got 3.17 working as well, though we have not tested 3.17 as much. It does have some ath9k fixes to the tx hang issues (mostly from Felix I think). If you find bugs in or improvements for my kernels, please let me know. Thanks, Ben On 11/05/2014 08:47 PM, ??? wrote: > Dear ALL: > I am tring to use ath9k driver with AR9380 chips to make multi virtual station to connect to an ap.Here is the problem i have meet. > I am using linux kernel 3.14.8 #14 SMP PREEMPT? > As the (http://www.candelatech.com/vsta.php) web suggest i create vif and using wpa_supplicant to connect to the ap. Then i got some very strange problem : > 1. the AR9380 is support ht_40 and the ap i got is support ht_40 too, but i can't connect with in 300Mbps, all i can connect is 150Mbps. i have google the same problem that find out in kernel 3.8 seems have the problem in intel card(https://bugzilla.kernel.org/show_bug.cgi?id=54851#c17,https://bbs.archlinux.org/viewtopic.php?id=161056).?? > 2. system is getting very slow and the kernel memory kmalloc-4096 object was increase very fast , the system's memory was running out very quick. so i dig the kernel code and find out that every one phy receive pkt will copy to each vif in /net/mac80211/rx.c:3211 so i change it to skb_clone, it seems the system went well and the kmalloc-4096 object is not increase that fast, memory looks ok.But i don't known is that i am right to make that change? and it seems that it bring another problem to me (problems 3)??? > kernel/linux-3.14.dev.y/net/mac80211/rx.c? > @@ -3208,7 +3208,11 @@ > 3208 3208 return false; > 3209 3209 > 3210 3210 if (!consume) { > 3211 - skb = skb_copy(skb, GFP_ATOMIC); > 3211 + //skb = skb_copy(skb, GFP_ATOMIC); > 3212 + // here get a bug if skb_copy over memory use > 3213 + // if kernel never change this pkt is ok for clone > 3214 + // woolen > 3215 + skb = skb_clone(skb, GFP_ATOMIC); > 3212 3216 if (!skb) { > 3213 3217 if (net_ratelimit()) > 3214 3218 wiphy_debug(local->hw.wiphy, ? > > 3. when i use the change i make in problem 2, i use 7 AR9380 card connect to 24 aps each one ap connects 60 vif stations.Each card phy make 240 sta, while the wpa_supplicant start to connect to the ap ,the driver get some error message : > tx hung, queue: %i axq-depth: %i, ampdu-depth: %i resetting the chip.? > i found the message in kernel/drivers/net/wireless/ath/ath9k/link.c : 46. it seems like while tx process the hardware didn't push the pkt out to the ap.This problem almost make me crazy. I have try many way to fix( ignore the hung and continue, reinvoke the tx pkt tasklet to tx the pkt and then reset chips) but faile.So i am ask for help~! ? > > the attach is some env info. > > Thank you all > ------------------ > ??? Mail:Just_woolen at qq.com > -- Ben Greear Candela Technologies Inc http://www.candelatech.com