[PATCH 4/4] sample/reserved_mem: Introduce a sample of struct page and dio support to no-map rmem

Li Chen me at linux.beauty
Thu Aug 4 00:17:45 PDT 2022


Hi Arnd,
---- On Tue, 12 Jul 2022 16:50:46 +0900  Arnd Bergmann  wrote --- 
 > Does your hardware require a fixed address for the buffer? If it can be
 > anywhere in memory (or at least within a certain range) but just has to
 > be physically contiguous, the normal way would be to use a CMA area
 > to allocate from, which gives you 'struct page' backed pages.

CMA does support Direct I/O, but it has its own issue: 
It does not guarantee that the memory previously borrowed by the OS will be returned to the device.

We've been plagued by examples like this in the past:
Many other kernel modules/subsystems have already allocated much memory from both non-CMA and CMA memory,
When our DSP driver got probed then, cma_alloc will fail in that non-CMA system memory is not enough
for CMA memory to migrate.  

Regards,
Li



More information about the linux-arm-kernel mailing list