Broadcom WiFi SDIO performance regression after commit "mmc: sdhci: Remove finish_tasklet"

From: Dmitry Osipenko
Date: Thu Aug 27 2020 - 02:07:46 EST


Hello!

I was debugging WiFi performance problems on Acer A500 tablet device
that has BCM4329 WiFi chip which is connected to NVIDIA Terga20 SoC via
SDIO and found that the following commit causes a solid 5-10 Mbit/s of
WiFi throughput regression after 5.2 kernel:

commit c07a48c2651965e84d35cf193dfc0e5f7892d612
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Apr 5 15:40:20 2019 +0300

mmc: sdhci: Remove finish_tasklet

Remove finish_tasklet. Requests that require DMA-unmapping or
sdhci_reset
are completed either in the IRQ thread or a workqueue if the
completion is
not initiated by the IRQ.

Reverting the offending commit on top of recent linux-next resolves the
problem.

Ulf / Adrian, do you have any ideas what could be done in regards to
restoring the SDIO performance? Should we just revert the offending commit?