Conceptual
Login

Coherent and Streaming DMA Buffers

There are two ways to get memory a device can use. A coherent buffer is allocated once, stays valid for the life of the driver and is kept consistent for you, which suits small control structures and simple transfers. A streaming mapping takes memory you already have, lends it to the device for one transfer in one direction, and requires you to hand it back before touching it again, which is faster for bulk data but easy to get wrong.

Questions this Concept answers

  • Why is a streaming mapping often faster for bulk data than allocating a coherent buffer and copying into it?