From: Mike Rapoport <rppt@kernel.org>
To: Wandun Chen <chenwandun1@gmail.com>
Cc: robh@kernel.org, baoquan.he@linux.dev, m.szyprowski@samsung.com,
catalin.marinas@arm.com, will@kernel.org, mark.rutland@arm.com,
chenhuacai@kernel.org, kernel@xen0n.name, pjw@kernel.org,
palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr,
tglx@kernel.org, mingo@redhat.com, bp@alien8.de,
dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
saravanak@kernel.org, akpm@linux-foundation.org,
pasha.tatashin@soleen.com, pratyush@kernel.org,
ruirui.yang@linux.dev, robin.murphy@arm.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, loongarch@lists.linux.dev,
linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
kexec@lists.infradead.org, linux-mm@kvack.org,
iommu@lists.linux.dev
Subject: Re: [PATCH v7 0/9] kdump: reduce vmcore size and capture time
Date: Fri, 2 Oct 2026 10:17:05 +0200 [thread overview]
Message-ID: <ar9ogXc12cLjziHS@kernel.org> (raw)
In-Reply-To: <20260922084256.1515554-1-chenwandun1@gmail.com>
Hi Wandun,
On Tue, Sep 22, 2026 at 04:42:47PM +0800, Wandun Chen wrote:
> From: Wandun Chen <chenwandun@lixiang.com>
>
> On SoCs that carve out large firmware-owned reserved memory (GPU,
> camera ISP, ...), 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 a MEMBLOCK_NODUMP flag in memblock to filter
> reserved memory on DT-based architectures (arm64, riscv, loongarch).
> Reserved regions are marked MEMBLOCK_NODUMP by default so kdump omits
> them; reusable CMA regions are different because their pages are handed
> back to the buddy allocator and may carry crash-relevant data.
>
> ACPI systems already filter reserved memory out of the vmcore through
> their existing path; only DT-based systems currently fail to filter these
> regions, which is what this series addresses. The flag lives in memblock
> itself rather than in a DT-only structure, so both ACPI and DT systems
> can benefit from it (suggested by Rob, thanks).
Can you elaborate how ACPI systems filter their reserved memory?
With your patches, the memblock flag becomes a part of DT-only
infrastructure, so that claim that both ACPI and DT benefit from it does
not hold, doesn't it?
> Since the reserved memory regions are filtered out, the vmcore is
> smaller in size and faster to produce.
>
> The series is based on linux-next and is organized as follows:
>
> Patches 1-3: Preparation and bugfixes: switch riscv crash_mem to memblock,
> fold the duplicated per-arch memblock walks into the weak
> defaults, and serialize crash header preparation against
> memory hotplug.
> Patches 4-8: NODUMP infrastructure: switch crash_core to
> for_each_mem_region(), introduce the MEMBLOCK_NODUMP flag,
> add a dumpable flag to struct reserved_mem, and mark
> /reserved-memory and /memreserve/ entries with MEMBLOCK_NODUMP
> flag.
> Patch 9: Exclude MEMBLOCK_NODUMP regions from the vmcore ELF
> header.
>
> v6 --> v7:
> 1. Fix a stale MEMBLOCK_NODUMP flag issue [1]. Memory reserved and
> marked as NODUMP may later be freed (the initrd, for example),
> so the NODUMP flag must be cleared accordingly. Since the fix is
> part of the NODUMP infrastructure introduced by patch 5, it has
> been folded into that patch.
>
> 2. Drop the "generic" related description in the cover letter.
>
> 3. Collect the Acked-by and Reviewed-by tags received during the v6
> review (thanks to Baoquan, Mike, Rob and Marek). Patch 5 is the
> only one without a tag, as its Reviewed-by was dropped when the
> fix was folded in.
>
> 4. Drop patch 1 of v6, which has been merged separately.
>
>
> v5 --> v6:
> 1. Serialize crash header preparation against memory hotplug to avoid
> out-of-bounds or use-after-free issues.
> 2. MEMBLOCK_NODUMP marking is now done after memblock allows resizing,
> avoiding a panic from too few regions before resize is permitted.
> 3. Reordered the patches, put pre-existing bugfixes earlier in the series.
>
>
> v4 --> v5:
> 1. Rework the mechanism around a memblock-level MEMBLOCK_NODUMP flag
> (suggested by Rob) instead of the v4 opt-in 'dumpable' flag on
> DT-only struct reserved_mem [2].
> 2. Switch the riscv vmcore elf header preparation to use memblock
> instead of the resource tree, aligning it with arm64 and loongarch,
> so riscv also can exclude reserved memory from vmcore.
> 3. Deduplicate the vmcore elf header preparation: arm64, riscv and
> loongarch open-coded the same logic, so fold it into shared
> __weak defaults in crash_core.
> 4. Drop the v4 patch that saved /memreserve/ entries into the
> reserved_mem array; /memreserve/ is now marked MEMBLOCK_NODUMP
> directly.
>
> 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. 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 [3], 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://sashiko.dev/#/message/20260917220750.GA4013814-robh%40kernel.org
> [2] https://lore.kernel.org/lkml/20260723234126.GA3253409-robh@kernel.org/
> [3] https://lore.kernel.org/lkml/20260506144542.GA2072596-robh@kernel.org/
>
>
>
> Wandun Chen (9):
> riscv: build crash_mem ranges from memblock instead of resource tree
> crash_core: fold duplicated memblock arch hooks into the weak default
> crash_core: serialize crash header preparation against hotplug
> crash_core: replace for_each_mem_range() with for_each_mem_region()
> memblock: introduce MEMBLOCK_NODUMP flag
> of: reserved_mem: add dumpable flag to opt-in vmcore
> of: reserved_mem: mark /reserved-memory entries with MEMBLOCK_NODUMP
> of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP
> crash_core: skip MEMBLOCK_NODUMP regions when building vmcore ELF
> header
>
> arch/arm64/kernel/machine_kexec_file.c | 29 ------------
> arch/loongarch/kernel/machine_kexec_file.c | 27 ------------
> arch/riscv/Kconfig | 2 +-
> arch/riscv/kernel/machine_kexec_file.c | 33 --------------
> arch/x86/kernel/crash.c | 2 +-
> drivers/of/fdt.c | 2 +
> drivers/of/of_private.h | 2 +
> drivers/of/of_reserved_mem.c | 48 ++++++++++++++++++++
> include/linux/crash_core.h | 2 +
> include/linux/memblock.h | 9 ++++
> include/linux/of_reserved_mem.h | 1 +
> kernel/crash_core.c | 51 ++++++++++++++++++++--
> kernel/dma/contiguous.c | 1 +
> mm/memblock.c | 43 +++++++++++++++++-
> 14 files changed, 155 insertions(+), 97 deletions(-)
>
> --
> 2.43.0
>
--
Sincerely yours,
Mike.
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Wandun Chen <chenwandun1@gmail.com>
Cc: robh@kernel.org, baoquan.he@linux.dev, m.szyprowski@samsung.com,
catalin.marinas@arm.com, will@kernel.org, mark.rutland@arm.com,
chenhuacai@kernel.org, kernel@xen0n.name, pjw@kernel.org,
palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr,
tglx@kernel.org, mingo@redhat.com, bp@alien8.de,
dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
saravanak@kernel.org, akpm@linux-foundation.org,
pasha.tatashin@soleen.com, pratyush@kernel.org,
ruirui.yang@linux.dev, robin.murphy@arm.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, loongarch@lists.linux.dev,
linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
kexec@lists.infradead.org, linux-mm@kvack.org,
iommu@lists.linux.dev
Subject: Re: [PATCH v7 0/9] kdump: reduce vmcore size and capture time
Date: Fri, 2 Oct 2026 10:17:05 +0200 [thread overview]
Message-ID: <ar9ogXc12cLjziHS@kernel.org> (raw)
In-Reply-To: <20260922084256.1515554-1-chenwandun1@gmail.com>
Hi Wandun,
On Tue, Sep 22, 2026 at 04:42:47PM +0800, Wandun Chen wrote:
> From: Wandun Chen <chenwandun@lixiang.com>
>
> On SoCs that carve out large firmware-owned reserved memory (GPU,
> camera ISP, ...), 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 a MEMBLOCK_NODUMP flag in memblock to filter
> reserved memory on DT-based architectures (arm64, riscv, loongarch).
> Reserved regions are marked MEMBLOCK_NODUMP by default so kdump omits
> them; reusable CMA regions are different because their pages are handed
> back to the buddy allocator and may carry crash-relevant data.
>
> ACPI systems already filter reserved memory out of the vmcore through
> their existing path; only DT-based systems currently fail to filter these
> regions, which is what this series addresses. The flag lives in memblock
> itself rather than in a DT-only structure, so both ACPI and DT systems
> can benefit from it (suggested by Rob, thanks).
Can you elaborate how ACPI systems filter their reserved memory?
With your patches, the memblock flag becomes a part of DT-only
infrastructure, so that claim that both ACPI and DT benefit from it does
not hold, doesn't it?
> Since the reserved memory regions are filtered out, the vmcore is
> smaller in size and faster to produce.
>
> The series is based on linux-next and is organized as follows:
>
> Patches 1-3: Preparation and bugfixes: switch riscv crash_mem to memblock,
> fold the duplicated per-arch memblock walks into the weak
> defaults, and serialize crash header preparation against
> memory hotplug.
> Patches 4-8: NODUMP infrastructure: switch crash_core to
> for_each_mem_region(), introduce the MEMBLOCK_NODUMP flag,
> add a dumpable flag to struct reserved_mem, and mark
> /reserved-memory and /memreserve/ entries with MEMBLOCK_NODUMP
> flag.
> Patch 9: Exclude MEMBLOCK_NODUMP regions from the vmcore ELF
> header.
>
> v6 --> v7:
> 1. Fix a stale MEMBLOCK_NODUMP flag issue [1]. Memory reserved and
> marked as NODUMP may later be freed (the initrd, for example),
> so the NODUMP flag must be cleared accordingly. Since the fix is
> part of the NODUMP infrastructure introduced by patch 5, it has
> been folded into that patch.
>
> 2. Drop the "generic" related description in the cover letter.
>
> 3. Collect the Acked-by and Reviewed-by tags received during the v6
> review (thanks to Baoquan, Mike, Rob and Marek). Patch 5 is the
> only one without a tag, as its Reviewed-by was dropped when the
> fix was folded in.
>
> 4. Drop patch 1 of v6, which has been merged separately.
>
>
> v5 --> v6:
> 1. Serialize crash header preparation against memory hotplug to avoid
> out-of-bounds or use-after-free issues.
> 2. MEMBLOCK_NODUMP marking is now done after memblock allows resizing,
> avoiding a panic from too few regions before resize is permitted.
> 3. Reordered the patches, put pre-existing bugfixes earlier in the series.
>
>
> v4 --> v5:
> 1. Rework the mechanism around a memblock-level MEMBLOCK_NODUMP flag
> (suggested by Rob) instead of the v4 opt-in 'dumpable' flag on
> DT-only struct reserved_mem [2].
> 2. Switch the riscv vmcore elf header preparation to use memblock
> instead of the resource tree, aligning it with arm64 and loongarch,
> so riscv also can exclude reserved memory from vmcore.
> 3. Deduplicate the vmcore elf header preparation: arm64, riscv and
> loongarch open-coded the same logic, so fold it into shared
> __weak defaults in crash_core.
> 4. Drop the v4 patch that saved /memreserve/ entries into the
> reserved_mem array; /memreserve/ is now marked MEMBLOCK_NODUMP
> directly.
>
> 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. 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 [3], 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://sashiko.dev/#/message/20260917220750.GA4013814-robh%40kernel.org
> [2] https://lore.kernel.org/lkml/20260723234126.GA3253409-robh@kernel.org/
> [3] https://lore.kernel.org/lkml/20260506144542.GA2072596-robh@kernel.org/
>
>
>
> Wandun Chen (9):
> riscv: build crash_mem ranges from memblock instead of resource tree
> crash_core: fold duplicated memblock arch hooks into the weak default
> crash_core: serialize crash header preparation against hotplug
> crash_core: replace for_each_mem_range() with for_each_mem_region()
> memblock: introduce MEMBLOCK_NODUMP flag
> of: reserved_mem: add dumpable flag to opt-in vmcore
> of: reserved_mem: mark /reserved-memory entries with MEMBLOCK_NODUMP
> of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP
> crash_core: skip MEMBLOCK_NODUMP regions when building vmcore ELF
> header
>
> arch/arm64/kernel/machine_kexec_file.c | 29 ------------
> arch/loongarch/kernel/machine_kexec_file.c | 27 ------------
> arch/riscv/Kconfig | 2 +-
> arch/riscv/kernel/machine_kexec_file.c | 33 --------------
> arch/x86/kernel/crash.c | 2 +-
> drivers/of/fdt.c | 2 +
> drivers/of/of_private.h | 2 +
> drivers/of/of_reserved_mem.c | 48 ++++++++++++++++++++
> include/linux/crash_core.h | 2 +
> include/linux/memblock.h | 9 ++++
> include/linux/of_reserved_mem.h | 1 +
> kernel/crash_core.c | 51 ++++++++++++++++++++--
> kernel/dma/contiguous.c | 1 +
> mm/memblock.c | 43 +++++++++++++++++-
> 14 files changed, 155 insertions(+), 97 deletions(-)
>
> --
> 2.43.0
>
--
Sincerely yours,
Mike.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-10-02 8:17 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-22 8:42 [PATCH v7 0/9] kdump: reduce vmcore size and capture time Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 8:42 ` [PATCH v7 1/9] riscv: build crash_mem ranges from memblock instead of resource tree Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 8:59 ` sashiko-bot
2026-09-22 8:59 ` sashiko-bot
2026-09-22 8:42 ` [PATCH v7 2/9] crash_core: fold duplicated memblock arch hooks into the weak default Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 8:56 ` sashiko-bot
2026-09-22 8:56 ` sashiko-bot
2026-09-22 8:42 ` [PATCH v7 3/9] crash_core: serialize crash header preparation against hotplug Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 9:03 ` sashiko-bot
2026-09-22 9:03 ` sashiko-bot
2026-09-22 8:42 ` [PATCH v7 4/9] crash_core: replace for_each_mem_range() with for_each_mem_region() Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 8:56 ` sashiko-bot
2026-09-22 8:56 ` sashiko-bot
2026-09-22 8:42 ` [PATCH v7 5/9] memblock: introduce MEMBLOCK_NODUMP flag Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 9:02 ` sashiko-bot
2026-09-22 9:02 ` sashiko-bot
2026-09-22 8:42 ` [PATCH v7 6/9] of: reserved_mem: add dumpable flag to opt-in vmcore Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 8:54 ` sashiko-bot
2026-09-22 8:54 ` sashiko-bot
2026-09-22 8:42 ` [PATCH v7 7/9] of: reserved_mem: mark /reserved-memory entries with MEMBLOCK_NODUMP Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 9:01 ` sashiko-bot
2026-09-22 9:01 ` sashiko-bot
2026-09-22 8:42 ` [PATCH v7 8/9] of: reserved_mem: mark /memreserve/ entries as MEMBLOCK_NODUMP Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 9:04 ` sashiko-bot
2026-09-22 9:04 ` sashiko-bot
2026-09-22 8:42 ` [PATCH v7 9/9] crash_core: skip MEMBLOCK_NODUMP regions when building vmcore ELF header Wandun Chen
2026-09-22 8:42 ` Wandun Chen
2026-09-22 9:02 ` sashiko-bot
2026-09-22 9:02 ` sashiko-bot
2026-10-02 8:17 ` Mike Rapoport [this message]
2026-10-02 8:17 ` [PATCH v7 0/9] kdump: reduce vmcore size and capture time Mike Rapoport
2026-10-09 3:04 ` Wandun
2026-10-09 3:04 ` Wandun
2026-10-09 16:26 ` Mike Rapoport
2026-10-09 16:26 ` Mike Rapoport
2026-10-09 17:10 ` Rob Herring
2026-10-09 17:10 ` Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ar9ogXc12cLjziHS@kernel.org \
--to=rppt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=baoquan.he@linux.dev \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=chenwandun1@gmail.com \
--cc=dave.hansen@linux.intel.com \
--cc=devicetree@vger.kernel.org \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux.dev \
--cc=kernel@xen0n.name \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-riscv@lists.infradead.org \
--cc=loongarch@lists.linux.dev \
--cc=m.szyprowski@samsung.com \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=palmer@dabbelt.com \
--cc=pasha.tatashin@soleen.com \
--cc=pjw@kernel.org \
--cc=pratyush@kernel.org \
--cc=robh@kernel.org \
--cc=robin.murphy@arm.com \
--cc=ruirui.yang@linux.dev \
--cc=saravanak@kernel.org \
--cc=tglx@kernel.org \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.