Hi,
On Thu, 3 Aug 2023 at 23:04, Pintu Agarwal pintu.ping@gmail.com wrote:
Hi,
On Wed, 2 Aug 2023 at 15:17, Christoph Hellwig hch@lst.de wrote:
On Tue, Aug 01, 2023 at 10:39:04PM -0700, John Stultz wrote:
So, forgive me, I've not had a chance to look into this, but my recollection was "reserved" is the name we see on x86, but other names are possibly provided via the dts node?
No, I think "reserved" is the name hard-coded (for all arch) in Kernel for global-cma. So, I don't think this is x86 specific. I am checking on arm32 itself. When we can dma_alloc_coherent we see these in the logs (if dts region is not present). cma: cma_alloc(cma (ptrval), name: reserved, count 64, align 6) Now, with this change we will see this: cma: cma_alloc(cma (ptrval), name: global-cma-region, count 64, align 6)
Indeed, dma_contiguous_default_area can also be set through rmem_cma_setup, which then takes the name from DT.
I think this is a different case. If DT entry is present we get this: Reserved memory: created CMA memory pool at 0x98000000, name: name: linux,cma, size 128 MiB cma: cma_alloc(cma (ptrval), name: linux,cma, count 64, align 6)
Here we are talking about the default hard-coded name in Kernel code if DT is not defined. So, in one of the boards, this DT entry was not present and it shows as "reserved".
I believe on the hikey board its "linux,cma" is the name, so forcing it to reserved would break that.
Yes, everywhere in the DT it's defined as "linux,cma". You mean this also should be changed to "linux,cma-global-region" everywhere with this change ?
Maybe instead add a compat config option to force the cma name (so x86 can set it to "default" if needed)?
Yes, having it in config is also a good option instead of hard-coding in Kernel.
I think we'll just need to leave it as-is. I with dma-heaps had never exposed the name to userspace, but we'll have to lіve with it now.
Can you point me to the userspace utility we are talking about here ? I think we should not worry much about userspace name exposure. I guess it should fetch whatever is declared in Kernel or DTS, right ?
Just to follow-up on this. For now, can we change the Kernel hard-coded value from "reserved" to "global-cma-region" ? Later, for the DTS defined name let it be "linux,cma" or change that also to "linux,global-cma-region" ?
Will this make sense ?