[PATCH v3 1/1] kexec: dump kmessage before machine_kexec
Pavel Tatashin
pasha.tatashin at soleen.com
Fri Mar 19 19:23:26 GMT 2021
kmsg_dump(KMSG_DUMP_SHUTDOWN) is called before
machine_restart(), machine_halt(), machine_power_off(), the only one that
is missing is machine_kexec().
The dmesg output that it contains can be used to study the shutdown
performance of both kernel and systemd during kexec reboot.
Here is example of dmesg data collected after kexec:
root at dplat-cp22:~# cat /sys/fs/pstore/dmesg-ramoops-0 | tail
...
<6>[ 70.914592] psci: CPU3 killed (polled 0 ms)
<5>[ 70.915705] CPU4: shutdown
<6>[ 70.916643] psci: CPU4 killed (polled 4 ms)
<5>[ 70.917715] CPU5: shutdown
<6>[ 70.918725] psci: CPU5 killed (polled 0 ms)
<5>[ 70.919704] CPU6: shutdown
<6>[ 70.920726] psci: CPU6 killed (polled 4 ms)
<5>[ 70.921642] CPU7: shutdown
<6>[ 70.922650] psci: CPU7 killed (polled 0 ms)
Signed-off-by: Pavel Tatashin <pasha.tatashin at soleen.com>
Reviewed-by: Kees Cook <keescook at chromium.org>
Reviewed-by: Petr Mladek <pmladek at suse.com>
Reviewed-by: Bhupesh Sharma <bhsharma at redhat.com>
Acked-by: Baoquan He <bhe at redhat.com>
---
kernel/kexec_core.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c
index a0b6780740c8..6ee4a1cf6e8e 100644
--- a/kernel/kexec_core.c
+++ b/kernel/kexec_core.c
@@ -37,6 +37,7 @@
#include <linux/compiler.h>
#include <linux/hugetlb.h>
#include <linux/objtool.h>
+#include <linux/kmsg_dump.h>
#include <asm/page.h>
#include <asm/sections.h>
@@ -1179,6 +1180,7 @@ int kernel_kexec(void)
machine_shutdown();
}
+ kmsg_dump(KMSG_DUMP_SHUTDOWN);
machine_kexec(kexec_image);
#ifdef CONFIG_KEXEC_JUMP
--
2.25.1
More information about the kexec
mailing list