[Performance regression] BCM4359/9 on S905X2

Marc Gonzalez marc.w.gonzalez at free.fr
Mon Apr 17 07:22:36 PDT 2023


On 06/04/2023 18:35, Marc Gonzalez wrote:

> # curl -o /dev/null http://192.168.1.254:8095/fixed/1G
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                  Dload  Upload   Total   Spent    Left  Speed
> 100 1024M  100 1024M    0     0  9747k      0  0:01:47  0:01:47 --:--:-- 9544k

I was able to import the bcmdhd driver from:
https://android.googlesource.com/kernel/hikey-linaro/+log/refs/heads/android-amlogic-bmeson-6.1/drivers/net/wireless/bcmdhd
as pointed out by Neil.

I switched from brcmfmac to bcmdhd with:

-CONFIG_BRCMFMAC=y
-CONFIG_BRCMDBG=y
+CONFIG_BCMDHD=y
+CONFIG_BCMDHD_FW_PATH=""
+CONFIG_BCMDHD_NVRAM_PATH=""
+CONFIG_BCMDHD_SDIO_IRQ=y

and hard-coded the FW paths in dhd_set_path_params().


Here are the benchmark results on the bcm4359 (AP6398SR3 module)

# curl -o /dev/null http://192.168.1.254:8095/fixed/1G
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1024M  100 1024M    0     0  17.3M      0  0:00:58  0:00:58 --:--:-- 17.4M

which is noticeably faster (80%) than brcmfmac results.

FTR, system was 18.5% busy for this benchmark:
   81.5653%        195114        0:swapper        
   13.8287%         33080       57:irq/17-ffe03000
    1.3967%          3341      173:curl           
    1.1350%          2715       63:dhd_rxf        
    1.0455%          2501      129:ksdioirqd/mmc2 
    1.0004%          2393       62:dhd_dpc        
    0.0167%            40      171:perf           
    0.0088%            21       19:ksoftirqd/1    


I was not able to get the driver to work with bcm43752 (AP6398SR32 module).

It loops with:

[   15.221622] wl_run_escan: LEGACY_SCAN sync ID: 0, bssidx: 0
[   15.221661] CFG80211-ERROR) wl_run_escan : 
[   15.221664]  Escan set error (-37)
[   15.229067] dhd_ioctl_entry_local invalid parameter
[   15.233902] CFG80211-ERROR) wl_run_escan : 
[   15.233904] error (-37), cnt=1
[   15.241056] CFG80211-ERROR) wl_cfg80211_scan : 
[   15.241059] scan error (-11)

But I may have bungled adding the "new" chip, since the driver architecture
is... [censored].


I suppose the conclusion is:
1) bcmdhd is 80% faster than brcmfmac in one download scenario
2) CPU usage scales linearly with throughput (on this system, 1% ~ 7 Mbps)

Regards





More information about the linux-amlogic mailing list