On 02-04-24, 14:25, Linus Walleij wrote: > Hi Allen, > > thanks for your patch! > > On Wed, Mar 27, 2024 at 5:03 PM Allen Pais <apais@xxxxxxxxxxxxxxxxxxx> 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/dma/* from tasklet to BH workqueue. > > > > Based on the work done by Tejun Heo <tj@xxxxxxxxxx> > > Branch: git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-6.10 > > > > Signed-off-by: Allen Pais <allen.lkml@xxxxxxxxx> > (...) > > diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c > (...) > > if (d40c->pending_tx) > > - tasklet_schedule(&d40c->tasklet); > > + queue_work(system_bh_wq, &d40c->work); > > Why is "my" driver not allowed to use system_bh_highpri_wq? > > I can't see the reasoning between some drivers using system_bh_wq > and others being highpri? > > Given the DMA usecase I would expect them all to be high prio. It didnt use tasklet_hi_schedule(), I guess Allen has done the conversion of tasklet_schedule -> system_bh_wq and tasklet_hi_schedule -> system_bh_highpri_wq Anyway, we are going to use a dma queue so should be better performance -- ~Vinod