linux-s390.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/7] virtio-mem: s390 support
@ 2024-10-25 14:14 David Hildenbrand
  2024-10-25 14:14 ` [PATCH v3 1/7] Documentation: s390-diag.rst: make diag500 a generic KVM hypercall David Hildenbrand
                   ` (9 more replies)
  0 siblings, 10 replies; 27+ messages in thread
From: David Hildenbrand @ 2024-10-25 14:14 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-mm, linux-s390, virtualization, linux-doc, kvm,
	David Hildenbrand, Heiko Carstens, Vasily Gorbik,
	Alexander Gordeev, Christian Borntraeger, Sven Schnelle,
	Thomas Huth, Cornelia Huck, Janosch Frank, Claudio Imbrenda,
	Michael S. Tsirkin, Jason Wang, Xuan Zhuo, Eugenio Pérez,
	Eric Farman, Andrew Morton, Jonathan Corbet

Let's finally add s390 support for virtio-mem; my last RFC was sent
4 years ago, and a lot changed in the meantime.

The latest QEMU series is available at [1], which contains some more
details and a usage example on s390 (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".

The last three 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 [2].

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 properly enter the "kdump mode" in the virtio-mem
   driver

kdump support for virtio-mem memory on s390 will be sent out separately.

v2 -> v3
* "s390/kdump: make is_kdump_kernel() consistently return "true" in kdump
   environments only"
 -> Sent out separately [3]
* "s390/physmem_info: query diag500(STORAGE LIMIT) to support QEMU/KVM memory
   devices"
 -> No query function for diag500 for now.
 -> Update comment above setup_ident_map_size().
 -> Optimize/rewrite diag500_storage_limit() [Heiko]
 -> Change handling in detect_physmem_online_ranges [Alexander]
 -> Improve documentation.
* "s390/sparsemem: provide memory_add_physaddr_to_nid() with CONFIG_NUMA"
 -> Added after testing on systems with CONFIG_NUMA=y

v1 -> v2:
* Document the new diag500 subfunction
* Use "s390" instead of "s390x" consistently

[1] https://lkml.kernel.org/r/20241008105455.2302628-1-david@redhat.com
[2] https://virtio-mem.gitlab.io/user-guide/user-guide-linux.html
[3] https://lkml.kernel.org/r/20241023090651.1115507-1-david@redhat.com

Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Thomas Huth <thuth@redhat.com>
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Janosch Frank <frankja@linux.ibm.com>
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Cc: "Eugenio Pérez" <eperezma@redhat.com>
Cc: Eric Farman <farman@linux.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jonathan Corbet <corbet@lwn.net>

David Hildenbrand (7):
  Documentation: s390-diag.rst: make diag500 a generic KVM hypercall
  Documentation: s390-diag.rst: document diag500(STORAGE LIMIT)
    subfunction
  s390/physmem_info: query diag500(STORAGE LIMIT) to support QEMU/KVM
    memory devices
  virtio-mem: s390 support
  lib/Kconfig.debug: default STRICT_DEVMEM to "y" on s390
  s390/sparsemem: reduce section size to 128 MiB
  s390/sparsemem: provide memory_add_physaddr_to_nid() with CONFIG_NUMA

 Documentation/virt/kvm/s390/s390-diag.rst | 35 +++++++++++++----
 arch/s390/boot/physmem_info.c             | 47 ++++++++++++++++++++++-
 arch/s390/boot/startup.c                  |  7 +++-
 arch/s390/include/asm/physmem_info.h      |  3 ++
 arch/s390/include/asm/sparsemem.h         | 10 ++++-
 drivers/virtio/Kconfig                    | 12 +++---
 lib/Kconfig.debug                         |  2 +-
 7 files changed, 98 insertions(+), 18 deletions(-)


base-commit: ae90f6a6170d7a7a1aa4fddf664fbd093e3023bc
-- 
2.46.1


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2024-11-04 10:15 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-25 14:14 [PATCH v3 0/7] virtio-mem: s390 support David Hildenbrand
2024-10-25 14:14 ` [PATCH v3 1/7] Documentation: s390-diag.rst: make diag500 a generic KVM hypercall David Hildenbrand
2024-10-30  9:18   ` Heiko Carstens
2024-10-31 14:56   ` Eric Farman
2024-10-31 21:41     ` David Hildenbrand
2024-10-25 14:14 ` [PATCH v3 2/7] Documentation: s390-diag.rst: document diag500(STORAGE LIMIT) subfunction David Hildenbrand
2024-10-30  9:18   ` Heiko Carstens
2024-10-31 14:58   ` Eric Farman
2024-10-25 14:14 ` [PATCH v3 3/7] s390/physmem_info: query diag500(STORAGE LIMIT) to support QEMU/KVM memory devices David Hildenbrand
2024-10-30  9:23   ` Heiko Carstens
2024-10-30  9:42     ` David Hildenbrand
2024-10-30 10:04       ` Heiko Carstens
2024-10-30 14:32   ` Alexander Gordeev
2024-10-30 16:43     ` David Hildenbrand
2024-10-25 14:14 ` [PATCH v3 4/7] virtio-mem: s390 support David Hildenbrand
2024-10-30  9:24   ` Heiko Carstens
2024-10-25 14:14 ` [PATCH v3 5/7] lib/Kconfig.debug: default STRICT_DEVMEM to "y" on s390 David Hildenbrand
2024-10-25 14:14 ` [PATCH v3 6/7] s390/sparsemem: reduce section size to 128 MiB David Hildenbrand
2024-10-25 14:14 ` [PATCH v3 7/7] s390/sparsemem: provide memory_add_physaddr_to_nid() with CONFIG_NUMA David Hildenbrand
2024-10-30  9:30   ` Heiko Carstens
2024-10-30  9:34 ` [PATCH v3 0/7] virtio-mem: s390 support Heiko Carstens
2024-10-30 16:49   ` Christian Borntraeger
2024-10-31 14:52     ` Eric Farman
2024-10-31 16:27 ` Sumanth Korikkar
2024-10-31 16:47   ` Sumanth Korikkar
2024-10-31 17:30     ` David Hildenbrand
2024-11-04 10:14 ` Heiko Carstens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).