Okay, so bear with me. I’m going to have to go into detail of behavior I’m seeing because I’ve been unable to find any interesting error messages in logs or dmesg related to this issue.
I’m running a laptop which I dual boot between Linux (currently openSUSE 12.1) and Windows 7. I don’t have a problem in Windows. The laptop’s wireless card is an Intel 6200 AGN and I’m using the iwlagn driver in Linux.
I use my laptop on primarily two wifi networks: my home network (which is fine in Linux) and my work network which is where I see issues in Linux.
Signal strength is not an issue.
On to the problem behavior. When I’m connected to the wifi network at work in Linux, the connection seems stable in that I don’t get disconnected. When I try to do something like browse the web or update software, I see that I get short “bursts” of data at normal (or close to normal) speed that are separated by long stretches of extreme slowness or stops completely. It’s bad enough that I can’t even get a repository refresh to finish most times and web sites are about 50-50 as to whether they will load or time out.
Even when the problem is occurring, I seem to be able to ping with absolutely no packet loss and reasonable ping times.
I’ve seen this problem in every distro I’ve run (three different ones) since moving into this work building about 9 months ago. The building where I was before uses the same wireless network via an access point set up over there and I had no real issues with it.
Both Linux and Windows are 64-bit versions and like I said, when I run Windows the wireless works fine.
I’ve tried disabling Bluetooth in Linux in case it was scanning and interfering with the wifi signal, but that seemed to have no effect.
On 02/28/2012 10:16 AM, hamsterkill wrote:
>
> Okay, so bear with me. I’m going to have to go into detail of behavior
> I’m seeing because I’ve been unable to find any interesting error
> messages in logs or dmesg related to this issue.
>
> I’m running a laptop which I dual boot between Linux (currently
> openSUSE 12.1) and Windows 7. I don’t have a problem in Windows. The
> laptop’s wireless card is an Intel 6200 AGN and I’m using the iwlagn
> driver in Linux.
>
> I use my laptop on primarily two wifi networks: my home network (which
> is fine in Linux) and my work network which is where I see issues in
> Linux.
>
> Signal strength is not an issue.
>
> On to the problem behavior. When I’m connected to the wifi network at
> work in Linux, the connection seems stable in that I don’t get
> disconnected. When I try to do something like browse the web or update
> software, I see that I get short “bursts” of data at normal (or close to
> normal) speed that are separated by long stretches of extreme slowness
> or stops completely. It’s bad enough that I can’t even get a repository
> refresh to finish most times and web sites are about 50-50 as to whether
> they will load or time out.
>
> Even when the problem is occurring, I seem to be able to ping with
> absolutely no packet loss and reasonable ping times.
>
> I’ve seen this problem in every distro I’ve run (three different ones)
> since moving into this work building about 9 months ago. The building
> where I was before uses the same wireless network via an access point
> set up over there and I had no real issues with it.
>
> Both Linux and Windows are 64-bit versions and like I said, when I run
> Windows the wireless works fine.
>
> I’ve tried disabling Bluetooth in Linux in case it was scanning and
> interfering with the wifi signal, but that seemed to have no effect.
>
> Any ideas would be appreciated.
You probably have a driver issue. The first thing is to try a bleeding-edge
compat-wireless package. If you build that from source, you will get the iwlagn
driver from kernel 3.4. If you get the package from packman, you will get the
one from 3.2. Try it first to see if it helps.
Performance problems based on Web experiences are not very helpful in diagnosing
a problem. Too many things can go wrong. If you have another host on your local
netwark, the best way to determine what is happening is to run one of the
standard network performance tests such a iperf or netperf - I use netperf. If
you have only one computer, then you can test with the following command:
On 02/28/2012 02:06 PM, hamsterkill wrote:
>
> Code:
> --------------------
> 10000 packets transmitted, 9974 received, 0% packet loss, time 27634ms
> rtt min/avg/max/mdev = 0.990/2.701/67.927/1.709 ms, pipe 4, ipg/ewma 2.763/2.635 ms
> --------------------
>
>
> Here’s summary of the ping command. I’ll see about trying the other
> things you suggested as soon as I can. Thanks for the response.
Communication between your computer and the router looks OK as there were only
26 of 10000 packets lost. The maximum delay of 68 ms was long, but not too bad.
Okay, so after some further investigation, it appears that NetworkManager may be the problem.
When I disable NetworkManager and connect using a simple iwconfig essid key command and dhcpcd, wireless speed seems fine.
I checked if NetworkManager was setting up my resolv.conf badly, but seems to be fine there. Any other ideas what I might have set wrong in NetworkManager?
On 03/16/2012 09:56 AM, hamsterkill wrote:
>
> Okay, so after some further investigation, it appears that
> NetworkManager may be the problem.
>
> When I disable NetworkManager and connect using a simple iwconfig essid
> key command and dhcpcd, wireless speed seems fine.
>
> I checked if NetworkManager was setting up my resolv.conf badly, but
> seems to be fine there. Any other ideas what I might have set wrong in
> NetworkManager?
Once the connection is made, there is no difference in NetworkManager, ifup, or
the primitives you are using; however, if you are convinced that the primitives
work better, then keep using them. If resolv.conf were wrong, you would not get
any name resolution - it would not affect the performance.
I suggest that you get your device configured with YaST, or by manually editing
/etc/init.d/ifcfg-wlan0 so that wireless will be started when you boot.
I tried compare logs and dmesg from a connection I establish with NetworkManager vs one I established with iwconfig and dhcpcd directly.
The only things I noticed is that for the NetworkManager connection, Tx aggregation was enabled by iwlwifi, whereas it wasn’t for the primitives-initiated connection.
NetworkManager also claimed it roamed a couple times immediately after connecting which looked a bit weird, but it ended up attached to the correct bssid, so I’m doubtful that’s a problem.
I’m still stumped as to what could be happening differently between the two connection methods that could cause this, but in every test I run the same thing happens. If I initiate with NetworkManager, speed is slowed to a crawling <1KB/s most of the time. If I initiate with the primitives with NetworkManager stopped, I get the full 20Mbps on the connection.
I tried disabling 11n in iwlwifi here, reloading the module and trying another connection with NetworkManager. Everything worked fine! I got full speed both up and down and no Tx aggregation messages.
There must be a bug in iwlwifi that affects how NetworkManager uses it, but not the straight primitives.
Consider the many vagaries and temporary fluctuations that can affect wireless connections, then consider changing your TCP/IP Congestion Control. Short bursts is a symptom of possible packet losses over the connection.
I wrote a paper pulling together just about all information I could find on the subject and re-worked it so I hope it’s understandable…