2012-09-24 22:16:11

by Stefan Brüns

[permalink] [raw]
Subject: Throughput regression in b43 caused by spurious avoidance implementation

Hi everyone,

as I have been plagued by the performance regression in b43 between linux 3.2
and 3.3, I have bisected it:

git bisect good
49d55cef5b1925a5c1efb6aaddaa40fc7c693335 is the first bad commit
commit 49d55cef5b1925a5c1efb6aaddaa40fc7c693335
Author: Rafał Miłecki <[email protected]>
Date: Sun Dec 11 13:16:51 2011 +0100

b43: N-PHY: implement spurious tone avoidance

Signed-off-by: Rafał Miłecki <[email protected]>
Signed-off-by: John W. Linville <[email protected]>

:040000 040000 f6177f4c33e1d382a430ad83db1e4b3f9dd66dfd
1b161ac9a16a481f259606edda5039c2be5147f4 M drivers

lspci -v{n,}:
08:00.0 0280: 14e4:432b (rev 01)
Subsystem: 1028:000d
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at f0600000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [58] Vendor Specific Information: Len=78 <?>
Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [d0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Virtual Channel
Capabilities: [160] Device Serial Number 7e-d8-e5-xx-xx-xx-xx
Capabilities: [16c] Power Budgeting <?>
Kernel driver in use: b43-pci-bridge

08:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n
Wireless LAN Controller (rev 01)
Subsystem: Dell Wireless 1510 Wireless-N WLAN Mini-Card

Used channel is channel 13, 2.472GHz, AP is AVM 7112, "G-only" mode.

Regards,

Stefan


--
Stefan Brüns / Bergstraße 21 / 52062 Aachen
phone: +49 241 53809034 mobile: +49 151 50412019


2012-09-25 06:29:17

by Rafał Miłecki

[permalink] [raw]
Subject: Re: Throughput regression in b43 caused by spurious avoidance implementation

2012/9/24 Stefan Brüns <[email protected]>:
> Hi everyone,
>
> as I have been plagued by the performance regression in b43 between linux 3.2
> and 3.3, I have bisected it:
>
> git bisect good
> 49d55cef5b1925a5c1efb6aaddaa40fc7c693335 is the first bad commit
> commit 49d55cef5b1925a5c1efb6aaddaa40fc7c693335
> Author: Rafał Miłecki <[email protected]>
> Date: Sun Dec 11 13:16:51 2011 +0100
>
> b43: N-PHY: implement spurious tone avoidance
>
> Signed-off-by: Rafał Miłecki <[email protected]>
> Signed-off-by: John W. Linville <[email protected]>
>
> :040000 040000 f6177f4c33e1d382a430ad83db1e4b3f9dd66dfd
> 1b161ac9a16a481f259606edda5039c2be5147f4 M drivers
>
> lspci -v{n,}:
> 08:00.0 0280: 14e4:432b (rev 01)
> Subsystem: 1028:000d
> Flags: bus master, fast devsel, latency 0, IRQ 17
> Memory at f0600000 (64-bit, non-prefetchable) [size=16K]
> Capabilities: [40] Power Management version 3
> Capabilities: [58] Vendor Specific Information: Len=78 <?>
> Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
> Capabilities: [d0] Express Endpoint, MSI 00
> Capabilities: [100] Advanced Error Reporting
> Capabilities: [13c] Virtual Channel
> Capabilities: [160] Device Serial Number 7e-d8-e5-xx-xx-xx-xx
> Capabilities: [16c] Power Budgeting <?>
> Kernel driver in use: b43-pci-bridge
>
> 08:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n
> Wireless LAN Controller (rev 01)
> Subsystem: Dell Wireless 1510 Wireless-N WLAN Mini-Card
>
> Used channel is channel 13, 2.472GHz, AP is AVM 7112, "G-only" mode.

I'll take a look at this, unfortunately I'm leaving on Friday (for a
week), not sure if I'll find time before that...

--
Rafał

2012-12-17 04:10:47

by Stefan Brüns

[permalink] [raw]
Subject: Re: Throughput regression in b43 caused by spurious avoidance implementation

Hi Rafal, hi list,

had a look at it myself, the culprit is the missing setting operations in case
CONFIG_B43_SSB is used.

The attached patch fixes the problem in my case, chip_id 0x4322, bus=SSB,
channel=6/13.

Regards,

Stefan


Attachments:
ssb_ppl_support.diff (2.05 kB)

2013-04-26 09:51:20

by Rafał Miłecki

[permalink] [raw]
Subject: Re: Throughput regression in b43 caused by spurious avoidance implementation

2012/9/24 Stefan Brüns <[email protected]>:
> Hi everyone,
>
> as I have been plagued by the performance regression in b43 between linux 3.2
> and 3.3, I have bisected it:
>
> git bisect good
> 49d55cef5b1925a5c1efb6aaddaa40fc7c693335 is the first bad commit
> commit 49d55cef5b1925a5c1efb6aaddaa40fc7c693335
> Author: Rafał Miłecki <[email protected]>
> Date: Sun Dec 11 13:16:51 2011 +0100
>
> b43: N-PHY: implement spurious tone avoidance
>
> Signed-off-by: Rafał Miłecki <[email protected]>
> Signed-off-by: John W. Linville <[email protected]>

Hi Stefan,

I'm not sure if you're still interested in this, as half a year has
passed since your report :( Anyway we've managed to resolve most
problems with BCM4322.

I took me 3 attempts to debug this issue and the last one that succeed
took me few days. I was quite tricky to debug & bisect everything, as
there were 4 regressions in b43 driver and I couldn't really distinct
them at the beginning.

After all there were 3 patches applied to the kernel that you may be
interested in:

1) b43: N-PHY: increase initial value of "mind" in RSSI calibration
It has been applied in 3.4.39 and 3.8.6 stables

2) b43: N-PHY: use more bits for offset in RSSI calibration
It has been applied in 3.4.39 and 3.8.6 stables

3) ssb: implement spurious tone avoidance
It has been applied in 3.4.42 and 3.8.9 stables

Unfortunately there is one more regression I've bisected but didn't
manage to fix yet. It's related to the scanning on channel 13. It was
reported in:

1) Scanning regression since "cfg80211: use DS or HT operation IEs to
determine BSS channel"
http://www.spinics.net/lists/linux-wireless/msg105359.html
http://marc.info/?t=136431795000003&r=1&w=4

2) [No subject]
http://lists.infradead.org/pipermail/b43-dev/2013-April/003041.html

--
Rafał