Re: [PATCH v1] memory-hotplug.rst: complete admin-guide overhaul

From: David Hildenbrand
Date: Tue Jun 08 2021 - 11:22:25 EST

Looks like a was too fast with my resend ;)

-Phases of memory hotplug
+Further, the basic memory hot(un)plug infrastructure in Linux is nowadays
+also used to expose PMEM, other performance-differentiated

^ persistent memory (PMEM)

Just in case you've missed this one ^ ;-)

I did catch that :)


"If it fails, an error will be returned by the kernel via the systemcall
that triggered modifying of the respective file."

I also think that write(2) to /sys/devices/system/memory/memoryXXX/online
will fail. But the inner workings of system call, its return value and the
ERRNO are probably not very interesting to a person that did

echo 0 > /sys/devices/system/memory/memoryXXX/online

Maybe something like

If it fails, the state of the memory block will remain unchanged and the
above command will fail.

Thanks, I'll use that.

And maybe an example of how echo reports some unrelated error message :)

+Observing the State of Memory Blocks


-Now, a boot option for making a memory block which consists of migratable pages
-is supported. By specifying "kernelcore=" or "movablecore=" boot option, you can
-create ZONE_MOVABLE...a zone which is just used for movable pages.
-(See also Documentation/admin-guide/kernel-parameters.rst)
+ For online memory blocks, ``DMA``, ``DMA32``, ``Normal``,
+ ``Movable`` and ``none`` may be returned. ``none`` indicates

Highmem? Or we don't support hotplug on 32 bits?

We only support 64 bit:

depends on 64BIT || BROKEN

Worth a comment in the document "Introduction":

"Linux only supports memory hot(un)plug on selected 64 bit architectures,
such as x86_64, aarch64, ppc64, s390x and ia64."
^ arm64 ?

I think aarch64 is historically actually the right(tm) thing to use in general ... but nowadays it doesn't matter anymore. It's "arch/arm64" ... the inconsistency is real. (interesting read:

But it's the same mess as using x86 vs. x86_64 vs. x64 vs. AMD64 for the 64 bit extension of IA-32.

So I'll convert that to arm64.


David / dhildenb