Messages in this thread | | | From | Arnd Bergmann <> | Date | Tue, 31 May 2022 21:27:35 +0200 | Subject | Re: [RFC 1/1] drivers/dma/*: replace tasklets with workqueue |
| |
On Tue, May 31, 2022 at 8:19 PM Allen Pais <apais@linux.microsoft.com> wrote: > >>> That is a good idea, lot of drivers are waiting for completion which can > >>> be signalled from hardirq, this would also reduce the hops we have and > >>> help improve latency a bit. On the downside, some controllers provide > >>> error information, which would need to be dealt with. > >> > >> > >> I am not an expert in dma subsystem, but by using completion from > >> Hardirq context be a concern? Especially with latency. > > > > I don't see how: to the task waiting for the completion, there should > > be no difference, and for the irq handler sending it, it just avoids > > a few cycles going into softirq context. > > Thanks for clarification. > > If I have understood it correctly, your suggestion is to move the current > Callback mechanism out to dmaengine as a generic helper function > And introduce completion in dma_async_tx_descriptor to handle what > Tasklets currently do.
Right: around half the callbacks are a trivial version that does nothing other than calling complete(), so these will benefit from skipping the softirq, while the others still need the callback.
Arnd
| |