[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210319192326.146000-2-pasha.tatashin@soleen.com>
Date: Fri, 19 Mar 2021 15:23:26 -0400
From: Pavel Tatashin <pasha.tatashin@...een.com>
To: pasha.tatashin@...een.com, jmorris@...ei.org, sashal@...nel.org,
tyhicks@...ux.microsoft.com, pmladek@...e.com,
ebiederm@...ssion.com, keescook@...omium.org, anton@...msg.org,
ccross@...roid.com, tony.luck@...el.com, kexec@...ts.infradead.org,
linux-kernel@...r.kernel.org, akpm@...ux-foundation.org
Subject: [PATCH v3 1/1] kexec: dump kmessage before machine_kexec
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-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@...een.com>
Reviewed-by: Kees Cook <keescook@...omium.org>
Reviewed-by: Petr Mladek <pmladek@...e.com>
Reviewed-by: Bhupesh Sharma <bhsharma@...hat.com>
Acked-by: Baoquan He <bhe@...hat.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
Powered by blists - more mailing lists