On Tue, May 31, 2022 at 8:19 PM Allen Pais <apais@xxxxxxxxxxxxxxxxxxx> 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