Re: [RFC 1/1] drivers/dma/*: replace tasklets with workqueue

From: Vincent Guittot
Date: Wed May 25 2022 - 05:53:11 EST


On Wed, 25 May 2022 at 11:24, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
>
> On Tue, Apr 19, 2022 at 11:17 PM Allen Pais <apais@xxxxxxxxxxxxxxxxxxx> wrote:
>
> > The tasklet is an old API which will be deprecated, workqueue API
> > cab be used instead of them.
> >
> > This patch replaces the tasklet usage in drivers/dma/* with a
> > simple work.
> >
> > Github: https://github.com/KSPP/linux/issues/94
> >
> > Signed-off-by: Allen Pais <apais@xxxxxxxxxxxxxxxxxxx>
>
> Paging Vincent Guittot and Arnd Bergmann on the following question
> on this patch set:
>
> - Will replacing tasklets with workque like this negatively impact the
> performance on DMA engine bottom halves?

workqueue uses cfs thread so they will be scheduled like any other
thread. Furthermore, schedule_work uses the default system workqueue
which is shared with a lot of other stuff and doesn't parallel work so
you can expect some performance impact.
If you really want to use workqueue, you should at least create your
own workqueue. But you should also have a look at irq_work; An example
of usage is kernel/sched/sched_cpufrequtil.c

>
> For reference:
> https://lore.kernel.org/dmaengine/YoI4J8taHehMpjFj@matsya/
>
> Yours,
> Linus Walleij