Poor 5GHz throughput using brcmfmac instead of cymdhd driver on Android

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ej
Level 1
Level 1
10 sign-ins 5 questions asked 5 sign-ins

Hello,

We're using a CYM43455 with Android 8.1, Kernel 4.9, with the brcmfmac driver from the backports package in Cypress Linux WiFi Driver Release (FMAC) [2020-09-25].

We are not able to achieve the same 5GHz throughput using iperf in lab conditions using the brcmfmac driver compared to our vendor's (AzureWave) preferred cymdhd driver. The cywdhd driver achieves 103 Mbits/sec in client mode, while the brcmfmac driver only achieves 86 Mbits/sec.

For the cymdhd driver to achieve its highest throughput, its driver required optimizations such as "tcp delayed ack", "rx frame thread" concurrency, and others that do not look to be available options in the brcmfmac driver.

What is the highest 5Ghz throughput we can expect with the bcrmfmac driver and CYM43455, considering the cymdhd driver can achieve 100+MBits/sec on the same hardware under the same conditions? Is it possible to match the performance of the cymdhd driver when the offloading and concurrency it depends on does not seem to be available in the brcfmac driver?

Thanks!

0 Likes
1 Solution
GauravS_31
Moderator
Moderator
Moderator
10 questions asked 250 solutions authored 250 sign-ins

You can set wl frameburst 1 to enable frameburst mode and if you are using a multi-core host platform, you can add -P 2 or -P 4 in iperf parameter to allow parallel client streams. Also you can set wl PM 0 to disable power management.

View solution in original post

0 Likes
3 Replies
GauravS_31
Moderator
Moderator
Moderator
10 questions asked 250 solutions authored 250 sign-ins

Can you perform insmod brcmfmac.ko sdio_wq_highpri=1 ? This will set the SDIO work queue to higher priority.

0 Likes
ej
Level 1
Level 1
10 sign-ins 5 questions asked 5 sign-ins

We have set sdio_wq_highpri=1 when loading brcmfmac.ko and it performs slightly better @ 92Mbit/s RX, but TX throughput remains the same. Are there additional settings that will allow the brcmfmac to achieve the performance of the dhd driver?

Thanks!

0 Likes
GauravS_31
Moderator
Moderator
Moderator
10 questions asked 250 solutions authored 250 sign-ins

You can set wl frameburst 1 to enable frameburst mode and if you are using a multi-core host platform, you can add -P 2 or -P 4 in iperf parameter to allow parallel client streams. Also you can set wl PM 0 to disable power management.

0 Likes