[PATCH] Documentation: kdump: describe jumping to dump-capture kernel
bhupesh.linux at gmail.com
Tue Feb 13 11:00:02 PST 2018
On Tue, Feb 13, 2018 at 8:52 PM, Gioh Kim <gi-oh.kim at profitbricks.com> wrote:
> Jumping between the system kernel and the dump-capture kernel
> has been supported for long time but there is no description
> how to use it. This patch adds the description how to use kexec tool
> to jump to the dump-capture kernel and jump back to the system kernel.
> Signed-off-by: Gioh Kim <gi-oh.kim at profitbricks.com>
> Documentation/kdump/kdump.txt | 38 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
> diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt
> index 51814450a7f8..35b71fef5d88 100644
> --- a/Documentation/kdump/kdump.txt
> +++ b/Documentation/kdump/kdump.txt
> @@ -460,6 +460,44 @@ and the system will boot into the dump-capture kernel.
> For testing purposes, you can trigger a crash by using "ALT-SysRq-c",
> "echo c > /proc/sysrq-trigger" or write a module to force the panic.
> +Jump between the System kernel and the Dump-capture kernel
> +Without system crash, the system can jump to the dump-capture kernel.
> +1) Enable "jump between system kernel and dump-capture kernel" support under
> + "Processor type and features"
> + CONFIG_KEXEC_JUMP=y
> +2) Load the dump-capture kernel with --load-preserve-context and mem-max
> + options as following.
> + kexec -l <dump-capture-kernel-vmlinux-image> \
> + --initrd=<initrd-for-dump-capture-kernel> --args-linux \
> + --append="root=<root-dev> <arch-specific-options>" \
> + --load-preserve-context \
> + --mem-max=<the highest memory address addr to load code into>
> +3) Jump to the loaded kernel
> + kexec -e
> +Now the system is running with the dump-capture kernel. You can jump back
> +to the system kernel.
> +1) Find kexec_jump_back_entry address in kernel booting parameters in
> + /proc/cmdline. That is the address for kexec to jump to. For example:
> + kexec_jump_back_entry=0x00000000000810d2
> +2) Following command sets the jump-back address for kexec.
> + kexec --load-jump-back-helper --entry=0x810d2
> +3) Jump to the system kernel
> + kexec -e
This is essentially the 'kexec -l' use case, i.e we are loading
another kernel and not the kexec -p (or the conventional kdump) use
case and description.
I remember not being able to use the kexec -p (kdump feature) with the
jump/preserve primary kernel attributes case previously, but that was
some time back and haven't tried the same recently. So I am not sure
if the kexec -p case works well with the jump feature currently, but I
can try to setup an environment at my end.
So I don't think that the kdump kernel documentation is the right
place for this addition (as in this kernel document we essentially
capture the 'kexec -p' or kdump case and not the 'kexec -l'). Rather
we should add it the kexec man page (inside kexec-tools). See
the man page.
And I agree that this is a useful piece of documentation as I have
burnt my hands while experimenting with the jump feature previously
and I think it would be great to have this included somewhere in the
kexec man page for ready reference.
> Write Out the Dump File
More information about the kexec