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-6.10 > > > > 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