Re: [PATCH v4 00/10] kdump: reduce vmcore size and capture time
Wandun <[email protected]> Wed, 22 Jul 2026 20:07:40 +0800
| Newsgroups | dev.linux.lists.loongarch,dev.linux.lists.iommu,org.infradead.lists.kexec,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 6/30/26 15:47, Wandun Chen wrote: > From: Wandun Chen <[email protected]> > > On SoCs that carve out large firmware-owned reserved memory (GPU > firmware, DSP, modem, camera ISP, NPU, ...), kdump currently dumps > those carveouts as part of system RAM even though their contents are > firmware state that is not useful for kernel crash analysis. > > This series introduces an opt-in 'dumpable' flag [1] on struct > reserved_mem and uses it to filter the elfcorehdr PT_LOAD ranges on > DT-based architectures (arm64, riscv, loongarch). By default reserved > regions are treated as non-dumpable; CMA regions are explicitly opted > in because their pages are returned to the buddy allocator and may > carry key crash-analysis data. > > Since the reserved memory regions are filtered out, the vmcore is > smaller in size and faster to produce. The reserved memory > has already been filtered out in x86; the optimizations in this series > apply to systems that use DTS such as arm64/riscv/loongarch. > > The series is organized as follows: > Patches 1-4: Small prepare changes and cleanups. > Patches 5: Add dumpable flag to opt-in vmcore. > Patches 6: Append /memreserve/ entries into reserved_mem[]. > Patch 7: Add generic kdump helpers. > Patches 8-10: Wire the helpers into arm64, riscv and loongarch kdump > elfcorehdr preparation. Hi Rob, Gentle ping on this series. Patches 01, 05 and 07-10 have been acked (thanks Pratyush, Will and Marek), and the comments there have been addressed in my local tree. Patch 02/03/04/06 are the core of: reserved_mem changes, they are still pending review on the devicetree side. Could you take a look when you have a chance? Happy to respin and address any feedback. Best regards, Wandun > > v3 --> v4: > 1. Rebase this series on v7.2-rc1. > 2. Add two cleanup patches (patch 02/03). > 3. Simplify patch 03 to avoid checking whether initial_boot_params is > NULL multiple times, suggested by Rob. > > v2 --> v3: > 1. Fix out-of-bounds issue if device tree lacks /reserved-memory node.[2] > 2. Fix UAF issue when alloc_reserved_mem_array() fails. > 3. Add some prepare patches. > > v1 --> v2: > 1. v1 added an opt-out DT property ('linux,no-dump'). Per Rob's > feedback [1], v2 drop that property and exclude reserve memory > by default. > 2. Split some prepared patches from the original patches. > 3. Address coding-style comments on patch 5 from Rob. > > [1] https://lore.kernel.org/lkml/[email protected]/ > [2] https://sashiko.dev/#/patchset/20260520091844.592753-1-chenwandun%40lixiang.com?part=4 > > > Wandun Chen (10): > kexec/crash: provide crash_exclude_mem_range() stub when > CONFIG_CRASH_DUMP=n > of: reserved_mem: dedup and relocate reserved-memory messages > of: reserved_mem: skip late scan when no regions are reserved > of: reserved_mem: split alloc_reserved_mem_array() from > fdt_scan_reserved_mem_late() > of: reserved_mem: add dumpable flag to opt-in vmcore > of: reserved_mem: save /memreserve/ entries into the reserved_mem > array > of: reserved_mem: add kdump helpers to exclude non-dumpable regions > arm64: kdump: exclude non-dumpable reserved memory regions from vmcore > riscv: kdump: exclude non-dumpable reserved memory regions from vmcore > loongarch: kdump: exclude non-dumpable reserved memory regions from > vmcore > > arch/arm64/kernel/machine_kexec_file.c | 6 ++ > arch/loongarch/kernel/machine_kexec_file.c | 6 ++ > arch/riscv/kernel/machine_kexec_file.c | 4 + > drivers/of/fdt.c | 11 ++- > drivers/of/of_private.h | 3 + > drivers/of/of_reserved_mem.c | 108 ++++++++++++++++++--- > include/linux/crash_core.h | 6 ++ > include/linux/of_reserved_mem.h | 15 +++ > kernel/dma/contiguous.c | 1 + > 9 files changed, 142 insertions(+), 18 deletions(-) >