Igaz, hogy fel kell konfigolni a DMA kontrollert, de elenyésző az időigénye nagy blokkoknál (lásd: chunk size).
DMA kontroller:
- mely memóriáról
- mennyi adatot
- hova
- egy-két sallang paraméter kell még
Azaz beírunk a DMA kontrollerbe 4..5 db 32 bites szót és utána repül magától például 65536 byte a diszkre. Így elenyésző a konfigurálás terhelése a DMA kontroller által átmozgatott 1..2 GByte/másodperchez képest.
Persze más lenne a helyzet, ha 512 byte-onként vagy még kisebb egységenként kellene DMA kontrollert konfigurálni. Ekkor már érezhető lenne a DMA kontroller konfigurálás hatása.
Persze ettől erőforráspazarló megközelítéssel is meg lehet írni szoftvereket. Például DMA-ra nincs esélyed ha fuse felett userspace-ből mozgatsz innen oda adatot, stb.
De kernelprogramozás során is elkövetheted azt a hibát, hogy bár van több DMA kontrollered, mégis for() ciklussal másolsz sok-sok kilobyte-os blokkokat.