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

From: Li Chen
Date: Thu Aug 04 2022 - 03:18:10 EST


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