[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