Let's finally add s390x support for virtio-mem; my last RFC was sent 4 years ago, and a lot changed in the meantime.
This is based on mm/stable. I sent out the QEMU part earlier today [1], that contains some more details and a usage example on s390x (last patch). There is not too much in here: The biggest part is querying a new diag(500) STORAGE_LIMIT hypercall to obtain the proper "max_physmem_end". Once this and the QEMU part will go upstream, it will get documented in [2] The last two patches are not strictly required but certainly nice-to-have. Note that -- in contrast to standby memory -- virtio-mem memory must be configured to be automatically onlined as soon as hotplugged. The easiest approach is using the "memhp_default_state=" kernel parameter or by using proper udev rules. More details can be found at [3]. I have reviving+upstreaming a systemd service to handle configuring that on my todo list, but for some reason I keep getting distracted ... I tested various things, including: * Various memory hotplug/hotunplug combinations * Device hotplug/hotunplug * /proc/iomem output * reboot * kexec * kdump: make sure we don't hotplug memory One remaining work item is kdump support for virtio-mem memory. I am working on a prototype that will be fairly straight forward, because the virtio-mem driver already supports a special kdump mode and dracut will already include it in the initrd as default. With holiday and conferences coming up I rather sent this out now. [1] https://lkml.kernel.org/r/[email protected] [2] https://gitlab.com/davidhildenbrand/s390x-os-virt-spec [3] https://virtio-mem.gitlab.io/user-guide/user-guide-linux.html Cc: Heiko Carstens <[email protected]> Cc: Vasily Gorbik <[email protected]> Cc: Alexander Gordeev <[email protected]> Cc: Christian Borntraeger <[email protected]> Cc: Sven Schnelle <[email protected]> Cc: Thomas Huth <[email protected]> Cc: Cornelia Huck <[email protected]> Cc: Janosch Frank <[email protected]> Cc: Claudio Imbrenda <[email protected]> Cc: "Michael S. Tsirkin" <[email protected]> Cc: Jason Wang <[email protected]> Cc: Xuan Zhuo <[email protected]> Cc: "Eugenio Pérez" <[email protected]> Cc: Andrew Morton <[email protected]> David Hildenbrand (5): s390/kdump: implement is_kdump_kernel() s390/physmem_info: query diag500(STORAGE_LIMIT) to support QEMU/KVM memory devices virtio-mem: s390x support lib/Kconfig.debug: default STRICT_DEVMEM to "y" on s390x s390/sparsemem: reduce section size to 128 MiB arch/s390/boot/physmem_info.c | 46 ++++++++++++++++++++++++++-- arch/s390/include/asm/kexec.h | 4 +++ arch/s390/include/asm/physmem_info.h | 3 ++ arch/s390/include/asm/sparsemem.h | 2 +- arch/s390/kernel/crash_dump.c | 6 ++++ drivers/virtio/Kconfig | 12 ++++---- lib/Kconfig.debug | 2 +- 7 files changed, 64 insertions(+), 11 deletions(-) -- 2.46.0

