Re: [PATCH v4 1/4] driver/base: Optimize memory block registration to reduce boot time
From: David Hildenbrand
Date: Fri May 16 2025 - 06:14:26 EST
We'd have to be smart about memory blocks that fall into multiple regions,
but it should be a corner case and doable.
This is a corner case that should be handled regardless of the loop order.
And I don't think it's handled today at all.
If we have a block that crosses node boundaries, current implementation of
register_mem_block_under_node_early() will register it under the first
node.
At least upstream behavior should be that it would be linked under all
nodes. At least that's what I remember :)
OTOH, we usually don't expect having a lot of regions, so iterating over
them is probably not a big bottleneck? Anyhow, just wanted to raise it.
There would be at least a region per node and having
for_each_online_node()
for_each_mem_region()
makes the loop O(n²) for no good reason.
Yes, that's why I mentioned it. If we have many nodes it might
definitely be relevant.
--
Cheers,
David / dhildenb