Re: [PATCH v3 1/5] crash: move crashkernel parsing and vmcore related code under CONFIG_CRASH_CORE

From: Hari Bathini
Date: Thu Jan 05 2017 - 12:43:56 EST


Hi Dave,


On Thursday 05 January 2017 11:47 AM, Dave Young wrote:
Hi, Hari

On 01/02/17 at 07:43pm, Hari Bathini wrote:
Traditionally, kdump is used to save vmcore in case of a crash. Some
architectures like powerpc can save vmcore using architecture specific
support instead of kexec/kdump mechanism. Such architecture specific
support also needs to reserve memory, to be used by dump capture kernel.
crashkernel parameter can be a reused, for memory reservation, by such
architecture specific infrastructure.

But currently, code related to vmcoreinfo and parsing of crashkernel
parameter is built under CONFIG_KEXEC_CORE. This patch introduces
CONFIG_CRASH_CORE and moves the above mentioned code under this config,
allowing code reuse without dependency on CONFIG_KEXEC. There is no
functional change with this patch.

Signed-off-by: Hari Bathini <hbathini@xxxxxxxxxxxxxxxxxx>
---

Changes from v2:
* Used CONFIG_CRASH_CORE instead of CONFIG_KEXEC_CORE at
appropriate places in printk and ksysfs.


arch/Kconfig | 4
include/linux/crash_core.h | 65 ++++++
include/linux/kexec.h | 57 ------
include/linux/printk.h | 4
kernel/Makefile | 1
kernel/crash_core.c | 445 ++++++++++++++++++++++++++++++++++++++++++++
kernel/kexec_core.c | 404 ----------------------------------------
kernel/ksysfs.c | 8 +
kernel/printk/printk.c | 6 -
9 files changed, 531 insertions(+), 463 deletions(-)
create mode 100644 include/linux/crash_core.h
create mode 100644 kernel/crash_core.c

[snip]

#ifndef CONFIG_TINY_RCU
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 8b26964..d0dfebd 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -32,7 +32,7 @@
#include <linux/bootmem.h>
#include <linux/memblock.h>
#include <linux/syscalls.h>
-#include <linux/kexec.h>
+#include <linux/crash_core.h>
#include <linux/kdb.h>
#include <linux/ratelimit.h>
#include <linux/kmsg_dump.h>
@@ -951,7 +951,7 @@ const struct file_operations kmsg_fops = {
.release = devkmsg_release,
};
-#ifdef CONFIG_KEXEC_CORE
+#ifdef CONFIG_CRASH_CORE
/*
* This appends the listed symbols to /proc/vmcore
*
@@ -960,7 +960,7 @@ const struct file_operations kmsg_fops = {
* symbols are specifically used so that utilities can access and extract the
* dmesg log from a vmcore file after a crash.
*/
-void log_buf_kexec_setup(void)
+void log_buf_crash_setup(void)
I can not think of any better name about the CONFIG_CRASH_CORE though I
feel it is not excellent so personally I can live with it.

But for this function name log_buf_crash_setup is too general, I can not get
what it is doing from the name, how about change it to log_buf_vmcoreinfo_setup

log_buf_vmcoreinfo_setup is appropriate. Also dropped hard-coded values
for DIV_ROUND_UP().
Posted v4 with these changes..

Thanks
Hari