Return-path: Received: from smtp208.alice.it ([82.57.200.104]:41127 "EHLO smtp208.alice.it" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753551Ab1BVQB2 (ORCPT ); Tue, 22 Feb 2011 11:01:28 -0500 Received: from [192.168.1.178] (79.54.143.68) by smtp208.alice.it (8.5.124.08) (authenticated as editempo) id 4C1A271612A89D02 for linux-wireless@vger.kernel.org; Tue, 22 Feb 2011 17:01:26 +0100 Subject: ath9k stopped queue bug From: Denis 'GNUtoo' Carikli To: linux-wireless@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Date: Tue, 22 Feb 2011 17:01:24 +0100 Message-ID: <1298390485.2575.6.camel@gnutoo-laptop> Mime-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org List-ID: Hi, When I transfer large files at high speed(rsync to my x86 router, locally, not trough the Internet) I get: ping: sendmsg: No buffer space available And I can't send anymore data. /sys/kernel/debug/ieee80211/phy*/queues is 00: 0x00000000/0 01: 0x00000000/0 02: 0x00000000/0 03: 0x00000000/0 In normal conditions. But when I can't send anymore data I've that: 00: 0x00000000/0 01: 0x00000000/0 02: 0x00000001/0 03: 0x00000000/0 or that: 00: 0x00000000/0 01: 0x00000000/0 02: 0x00000001/333 03: 0x00000000/0 Here's my irc conversation in #linux-wireless on Freeenode about that issue: Feb 22 16:28:38 hi, Feb 22 16:29:23 when I rsync to my router at high speed over wifi, huge amount of data, I've that: Feb 22 16:29:24 ping: sendmsg: No buffer space available Feb 22 16:29:27 and wifi breaks Feb 22 16:29:30 I've to reconnect Feb 22 16:29:40 should I try setting a lower MTU? Feb 22 16:29:43 what should I try? Feb 22 16:29:53 and why isn't there any more buffer space? Feb 22 16:31:57 sounds like a queue management bug Feb 22 16:32:06 with packets stuck somewhere Feb 22 16:32:09 what driver? Feb 22 16:34:04 * an-t (~ant@srv1.gnpx.net) has joined #linux-wireless Feb 22 16:34:42 ath9k Feb 22 16:34:51 on 2.6.37-020637-generic Feb 22 16:34:57 I think that's mainline Feb 22 16:35:01 let me check Feb 22 16:35:02 hm, dunno Feb 22 16:35:09 there were some queue mgmt things there Feb 22 16:35:12 don't really konw Feb 22 16:35:49 GNUtoo|laptop: Probably useful to share your driver DDoS on linux-wireless; some idea of how many files & what size. Feb 22 16:36:10 basically what I do is that: Feb 22 16:36:20 I use openembedded to cross-compile files Feb 22 16:36:25 and sync the result with my router Feb 22 16:36:26 * Blues-Man (~bluesman@host137-190-dynamic.43-79-r.retail.telecomitalia.it) has joined #linux-wireless Feb 22 16:36:35 that is an x86 computer with ath9k and hostapd Feb 22 16:36:52 cd /home/gnutoo/embedded/oe/oetmps/eee701/deploy/glibc Feb 22 16:36:56 rsync -av -e "ssh -l gnutoo -p 222" * router:/var/www/gnutoo.homelinux.org/openembedded/eee701 Feb 22 16:37:05 is the script I use to sync it Feb 22 16:37:37 I bet when this happens you never get a ping pcket through Feb 22 16:38:10 and /sys/kernel/debug/ieee80211/phy*/queues is non-zero Feb 22 16:38:18 the info from that file would be useful Feb 22 16:38:37 ok I was pastebining the file sizes Feb 22 16:38:41 as there are a lot of files.... Feb 22 16:39:06 ok I'll try to reproduce Feb 22 16:39:13 tough that will disconnect me from irc Feb 22 16:40:54 I bet it'll be 0x0001/n Feb 22 16:40:56 n > 0 Feb 22 16:42:16 ping also increase during the huge transfer Feb 22 16:42:30 that's "bufferbloat" but expected now Feb 22 16:42:35 ok Feb 22 16:42:49 I learned what bufferbloat was not so long ago Feb 22 16:44:27 * Topic for #linux-wireless is: User-level discussions about wireless LANs on Linux | compat-wireless-2.6 only available for kernels >= 2.6.27, work is underway to enable older kernels now that we don't use multiqueue on mac80211 Feb 22 16:44:27 * Topic for #linux-wireless set by linville at Wed Jul 8 21:06:20 2009 Feb 22 16:44:30 it starts with Feb 22 16:44:32 02: 0x00000001/0 Feb 22 16:44:41 and then increase to Feb 22 16:44:47 02: 0x00000001/333 Feb 22 16:44:50 the reset is 0 Feb 22 16:45:02 yeah Feb 22 16:45:06 as expected Feb 22 16:45:08 ok Feb 22 16:45:12 what's that exactly? Feb 22 16:45:19 the reason why the queue is stopped Feb 22 16:45:23 and the number of packets in the queue Feb 22 16:45:24 oh nice Feb 22 16:45:32 0x000 == not stopped Feb 22 16:45:35 ok Feb 22 16:45:39 and what's the reason? Feb 22 16:45:41 /0 = no packets Feb 22 16:45:54 BIT(0) == driver asked for queue to be stopped Feb 22 16:46:03 (IEEE80211_QUEUE_STOP_REASON_DRIVER) Feb 22 16:46:08 ok Feb 22 16:46:11 (net/mac80211/ieee80211_i.h) Feb 22 16:46:15 so driver's fault Feb 22 16:46:28 dmesg shows nothing tough Feb 22 16:46:37 only normal stuff Feb 22 16:46:38 yeah not surprising either Feb 22 16:46:45 ah debugfs? Feb 22 16:46:47 queue start/stop happens often enough, no logging for it Feb 22 16:46:50 or something like that should be used Feb 22 16:46:50 ok Feb 22 16:49:45 what should I do now? Feb 22 16:50:10 report a bug on ath9k Denis.