Re: [PATCH v3 00/34] dmaengine: migrate channel tasklets to WQ_BH
Andy Shevchenko <[email protected]>
| Newsgroups | org.kernel.vger.dmaengine,org.kernel.vger.linux-kernel |
|---|---|
| Organization | Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo |
| Message-ID | <[email protected]> |
On Mon, Aug 10, 2026 at 11:09:01AM -0700, Allen Pais wrote: > > This series moves DMAengine client completion bottom halves from private > tasklets to a common per-channel API backed by WQ_BH. > > The first patch introduces the dmaengine_*_bh() API with a tasklet backend > and converts virt-dma to it. It also updates every driver that directly > accesses the removed virt_dma_chan tasklet, keeping the patch buildable on > its own. This separates the driver-facing API from its implementation > without changing callback context. > > The second patch switches that backend to a dedicated WQ_BH | WQ_PERCPU > workqueue. WQ_BH keeps callbacks in softirq context, while the common API > centralizes initialization, scheduling, and synchronization. The > workqueue helpers remain internal to DMAengine, and dmaengine_kill_bh() > drains scheduled callbacks to preserve tasklet_kill() semantics. > > The remaining patches convert driver-owned channel completion tasklets. > Tasklets used for controller-level processing, recovery, or other > non-client-callback work are deliberately left alone because the > appropriate replacement may differ by driver. Right, I would actually expect that virt-dma (and others will follow the example) will switch to threaded IRQ instead of tasklets. > As agreed in the RFC discussion, selecting hardirq callback delivery is a > separate API change and is not part of this series. -- With Best Regards, Andy Shevchenko