[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <89f8895f-436d-4a73-a2c8-d61a2f4ee41a@samsung.com>
Date: Mon, 19 Jan 2026 11:38:42 +0100
From: Marek Szyprowski <m.szyprowski@...sung.com>
To: Rob Herring <robh@...nel.org>
Cc: Oreoluwa Babatunde <oreoluwa.babatunde@....qualcomm.com>,
ye.li@....nxp.com, kernel@....qualcomm.com, saravanak@...gle.com,
akpm@...ux-foundation.org, david@...hat.com, lorenzo.stoakes@...cle.com,
Liam.Howlett@...cle.com, vbabka@...e.cz, rppt@...nel.org, surenb@...gle.com,
mhocko@...e.com, robin.murphy@....com, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-mm@...ck.org, iommu@...ts.linux.dev,
quic_c_gdjako@...cinc.com
Subject: Re: [PATCH] of: reserved_mem: Allow reserved_mem framework detect
"cma=" kernel param
On 18.12.2025 15:42, Rob Herring wrote:
> On Thu, Dec 18, 2025 at 3:55 AM Marek Szyprowski
> <m.szyprowski@...sung.com> wrote:
>> On 10.12.2025 15:07, Rob Herring wrote:
>>> On Tue, Dec 9, 2025 at 6:20 PM Oreoluwa Babatunde
>>> <oreoluwa.babatunde@....qualcomm.com> wrote:
>>>> When initializing the default cma region, the "cma=" kernel parameter
>>>> takes priority over a DT defined linux,cma-default region. Hence, give
>>>> the reserved_mem framework the ability to detect this so that the DT
>>>> defined cma region can skip initialization accordingly.
>>> Please explain here why this is a new problem. Presumably the
>>> RESERVEDMEM_OF_DECLARE hook after commit xxxx gets called before the
>>> early_param hook. And why is it now earlier?
>>>
>>> I don't really like the state/ordering having to be worried about in 2 places.
>> I also don't like this spaghetti, but it originates from
>> commit 8a6e02d0c00e ("of: reserved_mem: Restructure how the reserved
>> memory regions are processed") and the first fixup for it: 2c223f7239f3
>> ("of: reserved_mem: Restructure call site for
>> dma_contiguous_early_fixup()").
> Honestly, this code wasn't great before. Every time it is touched it
> breaks someone.
Indeed it got a bit complicated and needs some improvement, but first I
want to fix the the reported regression. This patch does this and it
looks that there are no ideas how to fix this in a different way. Rob,
could I apply it via dma-mapping-fixes?
>> It looks that it is really hard to make reserved memory
>> initialization fully dynamic assuming that the cma related fixups have
>> to be known before populating kernel memory pages tables. I also advised
>> in
>> https://lore.kernel.org/all/be70bdc4-bddd-4afe-8574-7e0889fd381c@samsung.com/
>> to simply increase the size of the static table to make it large enough for the sane use cases, but
>> it turned out that this approach was already discussed and rejected:
>> https://lore.kernel.org/all/1650488954-26662-1-git-send-email-quic_pdaly@quicinc.com/
> I guess the question is what's a sane limit? After 128, are we going
> to accept 256? I really suspect we are just enabling some further
> abuse of /reserved-memory downstream. For example, I could imagine
> there's micromanaging the location of media/graphics buffers so they
> end up in specific DRAM banks to optimize accesses. No one ever wants
> to detail why they want/need more regions.
>
>> Maybe it would make sense to revert the mentioned changes and get back
>> to such simple approach - to make the size of the static table
>> configurable in the Kconfig?
> I'd rather not resort to a kconfig option.
>
> We could go back to processing all the regions at the beginning
> (growing the static size), and then just shrinking allocation. Or
> maybe it could just be freed entirely. I don't think we really need to
> keep the state around forever.
I will check if this can be refactored somehow.
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
Powered by blists - more mailing lists