On Tue, Apr 01, 2025 at 09:08:31PM +0200, David Hildenbrand wrote: > On 01.04.25 20:53, Oscar Salvador wrote: > > On Mon, Jan 27, 2025 at 10:34:02AM -0500, Gregory Price wrote: > > > v8: nits and tag pickups > > > > > > When physical address regions are not aligned to memory block size, > > > the misaligned portion is lost (stranded capacity). > > > > > > Block size (min/max/selected) is architecture defined. Most architectures > > > tend to use the minimum block size or some simplistic heurist. On x86, > > > memory block size increases up to 2GB, and is otherwise fitted to the > > > alignment of non-hotplug (i.e. not special purpose memory). > > > > I wonder if something like this could help us in improving the > > ridiculous situation of having 16MB memory-block size on powerpc. > > They have this granularity because ... they want to add/remove memory in > 16MiB on some powerpc dlpar machines :( I'm not sure they do it today, there's a comment in near define of that 16M in arch/powerpc/mm/init_64.c: /* * Outside hotplug the kernel uses this value to map the kernel direct map * with radix. To be compatible with older kernels, let's keep this value * as 16M which is also SECTION_SIZE with SPARSEMEM. We can ideally map * things with 1GB size in the case where we don't support hotplug. */ and their SECTION_SIZE didn't change since 2005. Quite possible that they'll be fine with increasing their DEFAULT_MEMORY_BLOCK_SIZE. > probe_memory_block_size() can query the hypervisor on the actual hot(un)plug > size. IIRC, QEMU sets it to 256 MiB. > > -- > Cheers, > > David / dhildenb > -- Sincerely yours, Mike.