[$] Noncoherent DMA mappings
While it is sometimes possible to perform I/O by moving data through theCPU, the only way to get the required level of performance is usually for devicesto move data directly to and from memory. Direct memory access (DMA) I/Ohas been well supported in the Linux kernel since the early days, but thereare always ways in which that support can be improved, especially whenhardware adds some challenges of its own. The somewhat confusingly named"non-contiguous" DMA API that was added for 5.13 shows the kinds of things that have to be done to getthe best performance on current systems.