Re: [PATCH v2] MIPS: replace add_memory_region with memblock

From: Florian Fainelli
Date: Thu Oct 08 2020 - 12:49:52 EST




On 10/8/2020 8:54 AM, Serge Semin wrote:
On Thu, Oct 08, 2020 at 04:30:35PM +0100, Maciej W. Rozycki wrote:
On Thu, 8 Oct 2020, Serge Semin wrote:

At least I don't see a decent reason to preserve them. The memory registration
method does nearly the same sanity checks. The memory reservation function
defers a bit in adding the being reserved memory first. That seems redundant,
since the reserved memory won't be available for the system anyway. Do I miss
something?


At the very least it serves informational purposes as it shows up in
/proc/iomem.

I thought about that, but /proc/iomem prints the System RAM up. Adding the reserved
memory regions to be just memory region first still seem redundant, since
reserving a non-reflected in memory region most likely indicates an erroneous
dts. I failed to find that, but do the kernel or DTC make sure that the reserved
memory regions has actual memory behind? (At least in the framework of the
memblock.memory vs memblock.reserved arrays or in the DT source file)

AFAICT DTC does not do any validation that regions you declare in /memreserve or /reserved-memory are within the 'reg' property defined for the /memory node. Not that it could not but that goes a little beyond is compiler job.

The kernel ought to be able to do that validation through memblock but there could be valid use cases behind declaring a reserved memory region that is not backed by a corresponding DRAM region. For instance if you hotplugged memory through the sysfs probe interface, and that memory was not initially declared in the Device Tree, but there were reserved regions within that hot-plugged range that you would have to be aware of, then this would break.


I also don't see the other platforms doing that, since the MIPS arch only
redefines these methods. So if a problem of adding a reserved memory with
possible no real memory behind exist, it should be fixed in the cross-platform
basis, don't you think?

Would we be breaking any use case if we stopped allowing reserved region that are not part of DRAM being declared?
--
Florian