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

From: Aubin Constans
Date: Mon Jun 03 2024 - 08:39:44 EST


On 27/03/2024 17:03, Allen Pais wrote:
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

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.

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 ++++-----
[...]

For atmel-mci, judging from a few simple tests, performance is preserved.
E.g. writing to a SD Card on the SAMA5D3-Xplained board:
time dd if=/dev/zero of=/opt/_del_me bs=4k count=64k

Base 6.9.0 : 0.07user 5.05system 0:18.92elapsed 27%CPU
Patched 6.9.0+: 0.12user 4.92system 0:18.76elapsed 26%CPU

However, please resolve what checkpatch is complaining about:
scripts/checkpatch.pl --strict PATCH-9-9-mmc-Convert-from-tasklet-to-BH-workqueue.mbox

WARNING: please, no space before tabs
#72: FILE: drivers/mmc/host/atmel-mci.c:367:
+^Istruct work_struct ^Iwork;$

Same as discussions on the USB patch[1] and others in this series, I am also in favour of "workqueue" or similar in the comments, rather than just "work".

Apart from that:
Tested-by: Aubin Constans <aubin.constans@xxxxxxxxxxxxx>
Acked-by: Aubin Constans <aubin.constans@xxxxxxxxxxxxx>

Thanks.

[1]: https://lore.kernel.org/linux-mmc/CAOMdWSLipPfm3OZTpjZz4uF4M+E_8QAoTeMcKBXawLnkTQx6Jg@xxxxxxxxxxxxxx/