On Wed, Jan 08, 2025 at 07:04:23AM -0500, Michael S. Tsirkin wrote: > On Wed, Dec 04, 2024 at 01:54:31PM +0100, David Hildenbrand wrote: > > The only "different than everything else" thing about virtio-mem on s390 > > is kdump: The crash (2nd) kernel allocates+prepares the elfcore hdr > > during fs_init()->vmcore_init()->elfcorehdr_alloc(). Consequently, the > > kdump kernel must detect memory ranges of the crashed kernel to > > include via PT_LOAD in the vmcore. > > > > On other architectures, all RAM regions (boot + hotplugged) can easily be > > observed on the old (to crash) kernel (e.g., using /proc/iomem) to create > > the elfcore hdr. > > > > On s390, information about "ordinary" memory (heh, "storage") can be > > obtained by querying the hypervisor/ultravisor via SCLP/diag260, and > > that information is stored early during boot in the "physmem" memblock > > data structure. > > > > But virtio-mem memory is always detected by as device driver, which is > > usually build as a module. So in the crash kernel, this memory can only be > > properly detected once the virtio-mem driver started up. > > > > The virtio-mem driver already supports the "kdump mode", where it won't > > hotplug any memory but instead queries the device to implement the > > pfn_is_ram() callback, to avoid reading unplugged memory holes when reading > > the vmcore. > > > > With this series, if the virtio-mem driver is included in the kdump > > initrd -- which dracut already takes care of under Fedora/RHEL -- it will > > now detect the device RAM ranges on s390 once it probes the devices, to add > > them to the vmcore using the same callback mechanism we already have for > > pfn_is_ram(). > > > > To add these device RAM ranges to the vmcore ("patch the vmcore"), we will > > add new PT_LOAD entries that describe these memory ranges, and update > > all offsets vmcore size so it is all consistent. > > > > My testing when creating+analyzing crash dumps with hotplugged virtio-mem > > memory (incl. holes) did not reveal any surprises. > > > > Patch #1 -- #7 are vmcore preparations and cleanups > > Patch #8 adds the infrastructure for drivers to report device RAM > > Patch #9 + #10 are virtio-mem preparations > > Patch #11 implements virtio-mem support to report device RAM > > Patch #12 activates it for s390, implementing a new function to fill > > PT_LOAD entry for device RAM > > Who is merging this? > virtio parts: > > Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> I guess this series should go via Andrew Morton. Andrew? Acked-by: Heiko Carstens <hca@xxxxxxxxxxxxx> # s390