Re: [PATCH 9/9] mmc: Convert from tasklet to BH workqueue

From: Allen
Date: Thu Mar 28 2024 - 13:47:47 EST


On Thu, Mar 28, 2024 at 3:16 AM Christian Loehle
<christian.loehle@xxxxxxx> wrote:
>
> On 27/03/2024 16:03, Allen Pais wrote:
> > The only generic interface to execute asynchronously in the BH context is
> > tasklet; however, it's marked deprecated and has some design flaws. To
> > replace tasklets, BH workqueue support was recently added. A BH workqueue
> > behaves similarly to regular workqueues except that the queued work items
> > are executed in the BH context.
> >
> > This patch converts drivers/infiniband/* from tasklet to BH workqueue.
> s/infiniband/mmc

Will fix it in v2.
> >
> > Based on the work done by Tejun Heo <tj@xxxxxxxxxx>
> > Branch: https://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-610
> >
> > Signed-off-by: Allen Pais <allen.lkml@xxxxxxxxx>
> > ---
> > drivers/mmc/host/atmel-mci.c | 35 ++++-----
> > drivers/mmc/host/au1xmmc.c | 37 ++++-----
> > drivers/mmc/host/cb710-mmc.c | 15 ++--
> > drivers/mmc/host/cb710-mmc.h | 3 +-
> > drivers/mmc/host/dw_mmc.c | 25 ++++---
> > drivers/mmc/host/dw_mmc.h | 9 ++-
> For dw_mmc:
> Performance numbers look good FWIW.
> for i in $(seq 0 5); do echo performance > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor; done
> for i in $(seq 0 4); do fio --name=test --rw=randread --bs=4k --runtime=30 --time_based --filename=/dev/mmcblk1 --minimal --numjobs=6 --iodepth=32 --group_reporting | awk -F ";" '{print $8}'; sleep 30; done
> Baseline:
> 1758
> 1773
> 1619
> 1835
> 1639
> to:
> 1743
> 1643
> 1860
> 1638
> 1872
> (I'd call that equivalent).
> This is on a RK3399.
> I would prefer most of the naming to change from "work" to "workqueue" in the driver
> code.
> Apart from that:
> Reviewed-by: Christian Loehle <christian.loehle@xxxxxxx>
> Tested-by: Christian Loehle <christian.loehle@xxxxxxx>

Thank you very much for testing and the review. Will have your
concerns addressed in v2.

- Allen