2.6.25-rc9 -- bcm4306 performance is in the toilet
Hi,
I have a bcm4306 card in my desktop machine. I am running a build of 2= =2E6.25-rc9. I have tried fiddling with the network build options and = no matter what I select, my network performance is absolutely terrible = (between 0 - 24KBps). Connections take around 10-20 seconds to establi= sh. I have a cable modem, and usually see nearly instantaneous connect= ions and between 65-600KBps throughput. I just tried downloading somet= hing and am seeing this: 223B/s. Everything is intermittent and and o= ften times out.
I am attempting to collect a log for you to analyze. However, I am run= ning into some snags.
1) The latest firmware, which is called for in the latest kernel code,= won't work with my Ubuntu 8.10 kernel (2.6.24-16-386). I got the late= st iw git code downloaded, but it won't build for me:
# make CC interface.o interface.c: In function =91get_if_type=92: interface.c:50: error: =91NL80211_IFTYPE_MESH_POINT=92 undeclared (firs= t use in this function) interface.c:50: error: (Each undeclared identifier is reported only onc= e interface.c:50: error: for each function it appears in.) interface.c: In function =91handle_interface_add=92: interface.c:121: error: =91NL80211_ATTR_MESH_ID=92 undeclared (first us= e in this function) make: *** [interface.o] Error 1
I built with a bunch of network and wireless debugging options enabled = and am seeing this is my kernel log:
[ 1959.456654] phy0: TX to low-level driver (len=3D68) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1959.816931] phy0: TX to low-level driver (len=3D104) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1960.485441] phy0: TX to low-level driver (len=3D68) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1962.493413] phy0: TX to low-level driver (len=3D295) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1962.591237] phy0: TX to low-level driver (len=3D112) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1962.591824] phy0: TX to low-level driver (len=3D112) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1963.590056] phy0: TX to low-level driver (len=3D51) FC=3D0x0040 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1963.696498] printk: 6 messages suppressed. [ 1963.696498] eth2: RX non-WEP frame, but expected encryption [ 1968.081760] phy0: TX to low-level driver (len=3D285) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1968.794538] phy0: TX to low-level driver (len=3D104) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1969.334759] printk: 6 messages suppressed. [ 1969.334759] eth2: RX non-WEP frame, but expected encryption [ 1971.427823] phy0: TX to low-level driver (len=3D92) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1977.083672] printk: 3 messages suppressed. [ 1977.083672] eth2: RX non-WEP frame, but expected encryption [ 1977.168797] phy0: TX to low-level driver (len=3D92) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1977.747613] phy0: TX to low-level driver (len=3D112) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1977.830750] phy0: TX to low-level driver (len=3D92) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1977.830936] phy0: TX to low-level driver (len=3D92) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1979.361252] HW CONFIG: channel=3D1 freq=3D2412 phymode=3D2 [ 1979.396044] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1979.424945] HW CONFIG: channel=3D2 freq=3D2417 phymode=3D2 [ 1979.470621] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1979.491637] HW CONFIG: channel=3D3 freq=3D2422 phymode=3D2 [ 1979.534201] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1979.562325] HW CONFIG: channel=3D4 freq=3D2427 phymode=3D2 [ 1979.607111] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1979.637328] HW CONFIG: channel=3D5 freq=3D2432 phymode=3D2 [ 1979.684702] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1979.713532] HW CONFIG: channel=3D6 freq=3D2437 phymode=3D2 [ 1979.758496] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1979.787576] HW CONFIG: channel=3D7 freq=3D2442 phymode=3D2 [ 1979.836341] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1979.865464] HW CONFIG: channel=3D8 freq=3D2447 phymode=3D2 [ 1979.911072] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1979.942569] HW CONFIG: channel=3D9 freq=3D2452 phymode=3D2 [ 1979.991364] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1980.016228] HW CONFIG: channel=3D10 freq=3D2457 phymode=3D2 [ 1980.058783] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1980.087823] HW CONFIG: channel=3D11 freq=3D2462 phymode=3D2 [ 1980.131718] phy0: TX to low-level driver (len=3D42) FC=3D0x0040 DUR=3D= 0x0000 A1=3Dff:ff:ff:ff:ff:ff A2=3D00:0c:e5:53:2c:3e A3=3Dff:ff:ff:ff:f= f:ff [ 1980.163187] HW CONFIG: channel=3D1 freq=3D2412 phymode=3D2 [ 1980.175182] phy0: TX to low-level driver (len=3D24) FC=3D0x0148 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1980.838943] printk: 2 messages suppressed. [ 1980.838943] eth2: RX non-WEP frame, but expected encryption [ 1984.941340] printk: 3 messages suppressed. [ 1984.941355] eth2: RX non-WEP frame, but expected encryption [ 1986.486071] phy0: TX to low-level driver (len=3D104) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1990.238587] printk: 7 messages suppressed. [ 1990.238587] eth2: RX non-WEP frame, but expected encryption [ 1994.877568] phy0: TX to low-level driver (len=3D92) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1994.879422] phy0: TX to low-level driver (len=3D104) FC=3D0x4108 DUR= =3D0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0= e:ed:ba [ 1994.881046] phy0: TX to low-level driver (len=3D92) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1994.884351] phy0: TX to low-level driver (len=3D92) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1995.065572] phy0: TX to low-level driver (len=3D80) FC=3D0x4108 DUR=3D= 0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba [ 1995.065572] phy0: TX to low-level driver (len=3D80) FC=3D0x4108 DUR=3D=
0x00da A1=3D00:1b:2f:0e:ed:ba A2=3D00:0c:e5:53:2c:3e A3=3D00:1b:2f:0e:e= d:ba
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles= s" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 6 lines · Miles Lane
Hi,
I have a bcm4306 card in my desktop machine. I am running a build of 2.6.25-rc9. I have tried fiddling with the network build options and no matter what I select, my network performance is absolutely terrible (between 0 - 24KBps). Connections take around 10-20 seconds to establish. I have a cable modem, and usually see nearly instantaneous connections and between 65-600KBps throughput. I just tried downloading something and am seeing this: 223B/s. Everything is intermittent and and often times out.
I am attempting to collect a log for you to analyze. However, I am running into some snags.
1) The latest firmware, which is called for in the latest kernel code, won't work with my Ubuntu 8.10 kernel (2.6.24-16-386). I got the latest iw git code downloaded, but it won't build for me:
Which revision of the BCM4306 do you have? Which driver (b43, b43legacy, or bcm43xx) are you running?
Based on comment 1) above, I think you are using b43, but why should I have to guess?
Larry
Quoted 19 lines · Larry Finger
Quoted 3 lines · Miles Lane
Hi,
I have a bcm4306 card in my desktop machine. I am running a build of
2.6.25-rc9. I have tried fiddling with the network build options and no matter what I select, my network performance is absolutely terrible (between 0 - 24KBps). Connections take around 10-20 seconds to establish. I have a cable modem, and usually see nearly instantaneous connections and between 65-600KBps throughput. I just tried downloading something and am seeing
this: 223B/s. Everything is intermittent and and often times out.Quoted 2 lines
I am attempting to collect a log for you to analyze. However, I am
running into some snags.
Quoted 1 line
1) The latest firmware, which is called for in the latest kernel code,
won't work with my Ubuntu 8.10 kernel (2.6.24-16-386). I got the latest iw git code downloaded, but it won't build for me:
Quoted 1 line
Quoted 5 lines
Which revision of the BCM4306 do you have? Which driver (b43, b43legacy, or
bcm43xx) are you running?Based on comment 1) above, I think you are using b43, but why should I have
to guess?
Point taken.
This information is collected while running the Ubuntu 2.6.24-16-386 kernel:
b43 113952 0 ssb 31236 1 b43 mac80211 162708 1 b43 led_class 5124 1 b43 input_polldev 5000 1 b43 rfkill 7568 3 b43,rfkill_input
01:06.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
[ 80.331869] b43-phy0: Broadcom 4306 WLAN found [ 80.404197] phy0: Selected rate control algorithm 'simple' ... [ 94.554107] input: b43-phy0 as /devices/virtual/input/input6 [ 96.164622] Registered led device: b43-phy0:tx [ 96.165130] Registered led device: b43-phy0:rx [ 96.165535] Registered led device: b43-phy0:radio
...
Any idea why iw won't build?
interface.c: In function 'get_if_type':
interface.c:50: error: 'NL80211_IFTYPE_MESH_POINT' undeclared (first use in this function)
interface.c:50: error: (Each undeclared identifier is reported only once interface.c:50: error: for each function it appears in.) interface.c: In function 'handle_interface_add':
interface.c:121: error: 'NL80211_ATTR_MESH_ID' undeclared (first use in this function)
Quoted 9 lines
interface.c: In function 'get_if_type':
interface.c:50: error: 'NL80211_IFTYPE_MESH_POINT' undeclared (first use in this function)
interface.c:50: error: (Each undeclared identifier is reported only once interface.c:50: error: for each function it appears in.)interface.c: In function 'handle_interface_add':
interface.c:121: error: 'NL80211_ATTR_MESH_ID' undeclared (first use in this function)
You need a newer copy of nl80211.h or revert back to an older revision of iw before the mesh code was added.
johannes
Quoted 10 lines · Johannes Berg
Quoted 9 lines
interface.c: In function 'get_if_type':
interface.c:50: error: 'NL80211_IFTYPE_MESH_POINT' undeclared (first use in this function)
interface.c:50: error: (Each undeclared identifier is reported only once interface.c:50: error: for each function it appears in.)interface.c: In function 'handle_interface_add':
interface.c:121: error: 'NL80211_ATTR_MESH_ID' undeclared (first use in this function)
Quoted 2 lines
You need a newer copy of
nl80211.hor revert back to an older revision of iw before the mesh code was added.
Am I required to get the linux-wireless git kernel tree in order to get the newer nl80211.h?
I checked in the 2.6.25-rc9 tree and was surprised to find four copies of nl80211.h:
0 2008-04-14 23:48 ./include/config/nl80211.h
10074 2008-04-11 16:32 ./include/linux/nl80211.h
510 2008-04-11 16:32 ./net/wireless/nl80211.h
10074 2008-04-15 05:50 ./usr/include/linux/nl80211.h
It seems interesting that two copies have the same byte count and that one of the files is empty. What's up with that?
Thanks,
Miles
Quoted 2 lines · Miles Lane
Am I required to get the linux-wireless git kernel tree in order to get the newer
nl80211.h?
You can take the latest compat-wireless, as suggested on the iw page:
http://linuxwireless.org/en/users/Documentation/iw
Quoted 9 lines
I checked in the 2.6.25-rc9 tree and was surprised to find four copies of
nl80211.h:
0 2008-04-14 23:48./include/config/nl80211.h
10074 2008-04-11 16:32./include/linux/nl80211.h
510 2008-04-11 16:32./net/wireless/nl80211.h
10074 2008-04-15 05:50./usr/include/linux/nl80211.hIt seems interesting that two copies have the same byte count and that one of the files is empty. What's up with that?
Only files in "include" are for external use. Files under "include/config" indicate kernel configuration. You don't need that. That leaves include/linux/nl80211.h
Another approach. iw sources include linux/nl80211.h, and defconfig refers to "include". That gives the same answer.
Signature · 2 lines
Regards, Pavel Roskin
Quoted 3 lines
Am I required to get the linux-wireless git kernel tree in order to get the newer
nl80211.h?
No, you can just get it from gitweb too :) But other than that, probably. Or a compat tarball would work.
Quoted 9 lines
I checked in the 2.6.25-rc9 tree and was surprised to find four copies of
nl80211.h:
0 2008-04-14 23:48./include/config/nl80211.h
10074 2008-04-11 16:32./include/linux/nl80211.h
510 2008-04-11 16:32./net/wireless/nl80211.h
10074 2008-04-15 05:50./usr/include/linux/nl80211.hIt seems interesting that two copies have the same byte count and that one of the files is empty. What's up with that?
The empty one is created when you configure, because there's a kconfig symbol for nl80211. I'm not sure why it is empty, it should have "#define CONFIG_NL80211 1" or so in it. The ./usr one is a copy of the ./include one, that's done by headers_install (IIRC), the net/wireless/nl80211.h one is for some local stuff in that dir.
johannes
Quoted 4 lines
I built with a bunch of network and wireless debugging options enabled and am seeing this is my kernel log:
[...]
Beware of sniffing in the toilet :-)