Re: [PATCH v8 0/3] memory,x86,acpi: hotplug memory alignment advisement

From: Mike Rapoport
Date: Wed Apr 02 2025 - 05:40:48 EST


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.