[PATCH v2 0/5] kdump: crashkernel reservation from CMA
Baoquan He
bhe at redhat.com
Sun Mar 2 18:08:33 PST 2025
On 02/20/25 at 05:48pm, Jiri Bohac wrote:
......snip...
> ---
> Changes since v1:
>
> The key concern raised in the v1 discussion was that pages in the
> CMA region may be pinned and used for a DMA transfer, potentially
> corrupting the new kernel's memory. When the cma suffix is used, kdump
> may be less reliable and the corruption hard to debug
>
> This v2 series addresses this concern in two ways:
>
> 1) Clearly stating the potential problem in the updated
> Documentation and setting the expectation (patch 3/5)
>
> Documentation now explicitly states that:
> - the risk of kdump failure is increased
> - the CMA reservation is intended for users who can not or don't
> want to sacrifice enough memory for a standard crashkernel reservation
> and who prefer less reliable kdump to no kdump at all
>
> This is consistent with the documentation of the
> crash_kexec_post_notifiers option, which can also increase the
> risk of kdump failure, yet may be the only way to use kdump on
> some systems. And just like the crash_kexec_post_notifiers
> option, the cma crashkernel suffix is completely optional:
> the series has zero effect when the suffix is not used.
Thanks for the effort to investigate and add clear note about the
potential risk in document. Except of the 1 second waiting for short
term pined page for DMA, the whole series looks good to me. Hope other
people can also give comment to evaluate the risk of waiting, I will
wait another week to add my personal ACK.
Thanks
Baoquan
>
> 2) Giving DMA time to finish before booting the kdump kernel
> (patch 4/5)
>
> Pages can be pinned for long term use using the FOLL_LONGTERM
> flag. Then they are migrated outside the CMA region. Pinning
> without this flag shows that the intent of their user is to only
> use them for short-lived DMA transfers.
>
> Delay the boot of the kdump kernel when the CMA reservation is
> used, giving potential pending DMA transfers time to finish.
>
> Other minor changes since v1:
> - updated for 6.14-rc2
> - moved #ifdefs and #defines to header files
> - added __always_unused in parse_crashkernel() to silence a false
> unused variable warning
>
>
> --
> Jiri Bohac <jbohac at suse.cz>
> SUSE Labs, Prague, Czechia
>
>
More information about the kexec
mailing list