dma_pool_create_node(9)
π NAME π
okay so this is the dma_pool_create_node(9) page from the Kernel API Manual, and dma_pool_create_node literally creates a pool of coherent DMA memory blocks. iconic behavior, no cap π
β¨ SYNOPSIS β¨
struct dma_pool * dma_pool_create_node (const char *name , struct device *dev , size_t size , size_t align , size_t boundary , int node );
π ARGUMENTS π
nameβ name of pool, for diagnostics π©Ίdevβ device that will be doing the DMA π«Άsizeβ size of the blocks in this pool. πalignβ alignment requirement for blocks; must be a power of two β‘boundaryβ returned blocks won't cross this power of two boundary π§nodeβ optional NUMA node to allocate structsdma_poolanddma_pageon π
π¦ CONTEXT π¦
bestie, the context is not in_interrupt β thatβs the vibe check here π
πΈ DESCRIPTION πΈ
Given one of these pools, dma_pool_alloc may be used to allocate memory. Such memory will all have coherent DMA mappings, accessible by the device and its driver without using cache flushing primitives. The actual size of blocks allocated may be larger than requested because of alignment. lowkey important, highkey useful π
If boundary is nonzero, objects returned from dma_pool_alloc won't cross that size boundary. This is useful for devices which have addressing restrictions on individual DMA transfers, such as not crossing boundaries of 4KBytes. π§β¨
β RETURN β
a dma allocation pool with the requested characteristics, or NULL if one can't be created. thatβs it, thatβs the return ππ«Ά
π SEE ALSO π
- Kernel file
./mm/dmapool.c dma_pool_destroy(9)dma_pool_alloc(9)dma_pool_free(9)dmam_pool_create(9)dmam_pool_destroy(9)
and thatβs the whole page, bestie π this one came from source/version ./mm, dated October 2026, and itβs the dma_pool_create_node(9) manual page β mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms