>> ACPI SRAT is embeded into efi, need read out the rsdp pointer. If we don't >> pass the efi, it won't get the SRAT table correctly, if I remember >> correctly. Yeah, I remeber kvm guest can get memory hotplugged with >> ACPI only, this won't happen on bare metal though. Need check carefully. >> I have been using kvm guest with uefi firmwire recently. > > Yeah, I can imagine that bare metal is different. kvm only uses ACPI. > > I'm also asking because of virtio-mem. Memory added via virtio-mem is > not part of any efi tables or whatsoever. So I assume the kexec kernel > will not detect it automatically (good!), instead load the virtio-mem > driver and let it add memory back to the system. > > I should probably play with kexec and virtio-mem once I have some spare > cycles ... to find out what's broken and needs to be addressed :) FWIW, I just gave virtio-mem and kexec/kdump a try. a) kdump seems to work. Memory added by virtio-mem is getting dumped. The kexec kernel only uses memory in the crash region. The virtio-mem driver properly bails out due to is_kdump_kernel(). b) "kexec -s -l" seems to work fine. For now, the kernel does not seem to get placed on virtio-mem memory (pure luck due to the left-to-right search). Memory added by virtio-mem is not getting added to the e820 map. Once the virtio-mem driver comes back up in the kexec kernel, the right memory is readded. c) "kexec -c -l" does not work properly. All memory added by virtio-mem is added to the e820 map, which is wrong. Memory that should not be touched will be touched by the kexec kernel. I assume kexec-tools just goes ahead and adds anything it can find in /proc/iomem (or /sys/firmware/memmap/) to the e820 map of the new kernel. Due to c), I assume all hotplugged memory (e.g., ACPI DIMMs) is similarly added to the e820 map and, therefore, won't be able to be onlined MOVABLE easily. At least for virtio-mem, I would either have to a) Not support "kexec -c -l". A viable option if we would be planning on not supporting it either way in the long term. I could block this in-kernel somehow eventually. b) Teach kexec-tools to leave virtio-mem added memory alone. E.g., by indicating it in /proc/iomem in a special way ("System RAM (hotplugged)"/"System RAM (virtio-mem)"). Baoquan, any opinion on that? -- Thanks, David / dhildenb