[PATCH v2 0/5] mm/memory_hotplug: full support for add_memory_driver_managed() with CONFIG_ARCH_KEEP_MEMBLOCK
David Hildenbrand
david at redhat.com
Mon Oct 4 02:36:00 PDT 2021
Architectures that require CONFIG_ARCH_KEEP_MEMBLOCK=y, such as arm64,
don't cleanly support add_memory_driver_managed() yet. Most prominently,
kexec_file can still end up placing kexec images on such driver-managed
memory, resulting in undesired behavior, for example, having kexec images
located on memory not part of the firmware-provided memory map.
Teaching kexec to not place images on driver-managed memory is especially
relevant for virtio-mem. Details can be found in commit 7b7b27214bba
("mm/memory_hotplug: introduce add_memory_driver_managed()").
Extend memblock with a new flag and set it from memory hotplug code
when applicable. This is required to fully support virtio-mem on
arm64, making also kexec_file behave like on x86-64.
v1 -> v2:
- "memblock: improve MEMBLOCK_HOTPLUG documentation"
-- Added
- "memblock: add MEMBLOCK_DRIVER_MANAGED to mimic
IORESOURCE_SYSRAM_DRIVER_MANAGED"
-- Improve documentation of MEMBLOCK_DRIVER_MANAGED
- Refine patch descriptions
Cc: Andrew Morton <akpm at linux-foundation.org>
Cc: Mike Rapoport <rppt at kernel.org>
Cc: Michal Hocko <mhocko at suse.com>
Cc: Oscar Salvador <osalvador at suse.de>
Cc: Jianyong Wu <Jianyong.Wu at arm.com>
Cc: Aneesh Kumar K.V <aneesh.kumar at linux.ibm.com>
Cc: Vineet Gupta <vgupta at kernel.org>
Cc: Geert Uytterhoeven <geert at linux-m68k.org>
Cc: Huacai Chen <chenhuacai at kernel.org>
Cc: Jiaxun Yang <jiaxun.yang at flygoat.com>
Cc: Thomas Bogendoerfer <tsbogend at alpha.franken.de>
Cc: Heiko Carstens <hca at linux.ibm.com>
Cc: Vasily Gorbik <gor at linux.ibm.com>
Cc: Christian Borntraeger <borntraeger at de.ibm.com>
Cc: Eric Biederman <ebiederm at xmission.com>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: linux-snps-arc at lists.infradead.org
Cc: linux-ia64 at vger.kernel.org
Cc: linux-m68k at lists.linux-m68k.org
Cc: linux-mips at vger.kernel.org
Cc: linux-s390 at vger.kernel.org
Cc: linux-mm at kvack.org
Cc: kexec at lists.infradead.org
David Hildenbrand (5):
mm/memory_hotplug: handle memblock_add_node() failures in
add_memory_resource()
memblock: improve MEMBLOCK_HOTPLUG documentation
memblock: allow to specify flags with memblock_add_node()
memblock: add MEMBLOCK_DRIVER_MANAGED to mimic
IORESOURCE_SYSRAM_DRIVER_MANAGED
mm/memory_hotplug: indicate MEMBLOCK_DRIVER_MANAGED with
IORESOURCE_SYSRAM_DRIVER_MANAGED
arch/arc/mm/init.c | 4 ++--
arch/ia64/mm/contig.c | 2 +-
arch/ia64/mm/init.c | 2 +-
arch/m68k/mm/mcfmmu.c | 3 ++-
arch/m68k/mm/motorola.c | 6 ++++--
arch/mips/loongson64/init.c | 4 +++-
arch/mips/sgi-ip27/ip27-memory.c | 3 ++-
arch/s390/kernel/setup.c | 3 ++-
include/linux/memblock.h | 25 +++++++++++++++++++++----
include/linux/mm.h | 2 +-
kernel/kexec_file.c | 5 +++++
mm/memblock.c | 13 +++++++++----
mm/memory_hotplug.c | 11 +++++++++--
13 files changed, 62 insertions(+), 21 deletions(-)
base-commit: 9e1ff307c779ce1f0f810c7ecce3d95bbae40896
--
2.31.1
More information about the kexec
mailing list