Allocating dma-buf using heaps¶
Dma-buf Heaps are a way for userspace to allocate dma-buf objects. They are typically used to allocate buffers from a specific allocation pool, or to share buffers across frameworks.
Heaps¶
A heap represents a specific allocator. The Linux kernel currently supports the following heaps:
The
system
heap allocates virtually contiguous, cacheable, buffers.The
cma
heap allocates physically contiguous, cacheable, buffers. Only present if a CMA region is present. Such a region is usually created either through the kernel commandline through the cma parameter, a memory region Device-Tree node with the linux,cma-default property set, or through the CMA_SIZE_MBYTES or CMA_SIZE_PERCENTAGE Kconfig options. Depending on the platform, it might be calledreserved
,linux,cma
, ordefault-pool
.