Bug 43283

Summary: Intel 3945abg - Slow transfers
Product: Networking Reporter: Dvanzo (danielvanzo)
Component: WirelessAssignee: Stanislaw Gruszka (stf_xl)
Severity: high CC: alan, stf_xl
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.2.0-24 Subsystem:
Regression: No Bisected commit-id:
Attachments: Info about cpu, pci, mem, io, scsi, etc...

Description Dvanzo 2012-05-23 19:02:26 UTC
Created attachment 73364 [details]
Info about cpu, pci, mem, io, scsi, etc...

I'm suffering slow wifi transfers with my Vostro 1500 (Intel 3945abg). 10.04 was ok, but since then, no mather what, the speed has been awfull. Recently upgraded to 12.04, but no-luck. Transfers between 40KBs and 70KBs... Wired connections to the same router allow me to connect up to 320KBs.... I already did everything a could without success... You can see previous info at bugs #621265 and a more recent one 1002884 (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1002884)

My info:

uname -a
Linux Vostro-1500 3.2.0-24-generic-pae #38-Ubuntu SMP Tue May 1 16:40:26 UTC 2012 i686 i686 i386 GNU/Linux

lsb_release -rd
Description:	Ubuntu 12.04 LTS
Release:	12.04

dmesg|grep 3945
[ 15.120687] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
[ 15.120691] iwl3945: Copyright(c) 2003-2011 Intel Corporation
[ 15.120764] iwl3945 0000:0c:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 15.120781] iwl3945 0000:0c:00.0: setting latency timer to 64
[ 15.205631] iwl3945 0000:0c:00.0: Tunable channels: 11 802.11bg, 13 802.11a channels
[ 15.205637] iwl3945 0000:0c:00.0: Detected Intel Wireless WiFi Link 3945ABG
[ 15.205798] iwl3945 0000:0c:00.0: irq 44 for MSI/MSI-X
[ 15.290958] ieee80211 phy0: Selected rate control algorithm 'iwl-3945-rs'
[ 15.817051] iwl3945 0000:0c:00.0: loaded firmware version

lo no wireless extensions.

wlan0 IEEE 802.11abg ESSID:"WiFiCasa"
          Mode:Managed Frequency:2.412 GHz Access Point: 00:22:33:FC:6A:50
          Bit Rate=2 Mb/s Tx-Power=15 dBm
          Retry long limit:7 RTS thr:off Fragment thr:off
          Power Management:off
          Link Quality=50/70 Signal level=-60 dBm
          Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
          Tx excessive retries:0 Invalid misc:37421 Missed beacon:0

eth0 no wireless extensions.

lspci -vnn |grep -A3 Wireless
0c:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection [8086:4222] (rev 02)
 Subsystem: Intel Corporation Device [8086:1020]
 Flags: bus master, fast devsel, latency 0, IRQ 44
 Memory at f9fff000 (32-bit, non-prefetchable) [size=4K]

lsmod|grep iwl3945
iwl3945 73152 0
iwl_legacy 71134 1 iwl3945
mac80211 436455 2 iwl3945,iwl_legacy
cfg80211 178679 3 iwl3945,iwl_legacy,mac80211
Comment 1 Dvanzo 2012-05-23 19:04:13 UTC
Already tested without success with upstream kernel linux-image-3.4.0-030400-generic-pae
Comment 2 Stanislaw Gruszka 2012-05-23 19:30:06 UTC
(In reply to comment #0)
> I'm suffering slow wifi transfers with my Vostro 1500 (Intel 3945abg). 10.04
> was ok, but since then,
What kernel version was on 10.04 ? Did you try disable_hw_scan=0 module option ?
Comment 3 Dvanzo 2012-05-23 19:38:45 UTC
Really dont remember what kernel version was... But it worked!!! :)

Regarding your second question, I already did:

sudo modprobe -r iwl3945
sudo modprobe iwl3945 disable_hw_scan=0

But the speed transfer is still the same...


Comment 4 Dvanzo 2012-05-23 19:54:36 UTC
From the original bug reported at launchpad:

It seems like a regression about iwl3945 driver, i had a similar problem with older kernel where wireless speed was limited to 1mbps, with k/ubuntu 10.04 and 2.6.32 kernel this problem was disappear.


Comment 5 Dvanzo 2012-05-23 20:03:40 UTC
More info from Bug 1932 (http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=1932)

------- Comment #159 From Eric Appleman 2010-12-22 21:42:43 -------
I have found the regression window.

2.6.35-rc2: 20 Mbps
2.6.35-rc3: 2 Mbps

Some commit between these two releases broke the driver.

------- Comment #167 From Wey-Yi Guy 2011-12-04 17:35:30 -------
The 4965/3945 driver is being refactor and maintain by Stanislaw from redhat.
Stanislaw Gruszka <sgruszka@redhat.com>

Please contact Stanislaw if you still seeing the issue with the latest kernel

I am going to close this bug with "will not fix"


What it means? No fix for this problem at all???


Comment 6 Stanislaw Gruszka 2012-05-23 21:06:45 UTC
It means that Intel does not support iwl3945 any longer.

Regarding ubuntu bug report - there are a few reasons causing slow speed problems. One is already fixed in the code, other require using disable_hw_scan=0 option, another require disable_hw_scan=1 (what is default setting now).

You seem to hit yet another issue, i.e. different than Eric Appleman had. Please find two consecutive kernel versions where the problem start to happen, i.e telling that for example 2.6.35 works and 2.6.36 is broken. This will require compiling custom kernel, eventually use binary kernel packages with all major kernel releases. When you will find when exactly regression happen, I'll ask you for more debug info.
Comment 7 Dvanzo 2012-05-23 21:12:30 UTC
Hi Stanislaw!

If you see my comment #5, in it you found the requested info:

2.6.35-rc2: 20 Mbps
2.6.35-rc3: 2 Mbps

I'm not a technical guy, but I'll be glad to help to fix this problem (not only because it affect me)...


Comment 8 Stanislaw Gruszka 2012-05-25 18:00:17 UTC
As I wrote before you are hitting different bug than Eric Appleman (because his problem was fixed), even if it manifest itself similar. If you found regression window, I need verbose logs on working kernel and broken kernel as described here:
Note module name is different i.e. iwl3945, also verbose debug compile option name changed from one kernel version to other, i.e. currently it is CONFIG_IWLEGACY_DEBUG.
Comment 9 Dvanzo 2012-05-27 20:42:41 UTC
Stanislaw, thanks so much for your attention... As a non-technical user, can you tell me where can I find info about how to test different kernels? Also, my notebook is my working machine... Its possible to test differents kernel using a live (USB) version?


Comment 10 Stanislaw Gruszka 2012-05-28 20:20:26 UTC
You can use live CD narrow the regression. For example you can check Fedora-14 and Fedora-15 which (if I remember correctly) use 2.6.35 and 2.6 38 kernels respectively. 

If you confirm the regression happens there, you can provide verbose logs. However logs from kernels version which differ much i.e 2.6.n and 2.6.n+3 can be not so much informative like from kernels 2.6.n and 2.6.n+1, because driver was rewritten many times by Intel on each kernel version.

Since you report bug at kernel.org, basically is expected that you can build custom kernel and patch it, i.e to confirm that my eventual patch fix the problem. Well, ok, this is not needed if developer can actually reproduce the problem locally. But in this case I can not reproduce the issue, iwl3945 works with optimum performance with all my Access Points (I have plenty of them).