[$] Dancing the DMA two-step
Direct memory access (DMA) I/O is simple in concept: a peripheral device
moves data directly to or from memory while the CPU is busy doing other
things. As is so often the case, DMA is rather more complicated in
practice, and the kernel has developed a complicated internal API to
support it. It turns out that the DMA API, as it exists now, can affect
the performance of some high-bandwidth devices. In an effort to address
that problem, Leon Romanovsky is making the API even more complex with https://lwn.net/ml/all/cover.1731244445.git.leon@kernel.org
adding a new two-step mapping API.
https://lwn.net/Articles/997563/