powerpc/fadump: sysfs for fadump memory reservation
authorSourabh Jain <sourabhjain@linux.ibm.com>
Wed, 11 Dec 2019 16:09:10 +0000 (21:39 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 19 Feb 2020 11:46:07 +0000 (22:46 +1100)
Add a sys interface to allow querying the memory reserved by FADump for
saving the crash dump.

Also added Documentation/ABI for the new sysfs file.

Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20191211160910.21656-7-sourabhjain@linux.ibm.com
Documentation/ABI/testing/sysfs-kernel-fadump
Documentation/powerpc/firmware-assisted-dump.rst
arch/powerpc/kernel/fadump.c

index 5d988b9..8f7a64a 100644 (file)
@@ -31,3 +31,10 @@ Description: write only
                the system is booted to capture the vmcore using FADump.
                It is used to release the memory reserved by FADump to
                save the crash dump.
+
+What:          /sys/kernel/fadump/mem_reserved
+Date:          Dec 2019
+Contact:       linuxppc-dev@lists.ozlabs.org
+Description:   read only
+               Provide information about the amount of memory reserved by
+               FADump to save the crash dump in bytes.
index 2cd65a0..b3f3ee1 100644 (file)
@@ -268,6 +268,11 @@ Here is the list of files under kernel sysfs:
     be handled and vmcore will not be captured. This interface can be
     easily integrated with kdump service start/stop.
 
+ /sys/kernel/fadump/mem_reserved
+
+   This is used to display the memory reserved by FADump for saving the
+   crash dump.
+
  /sys/kernel/fadump_release_mem
     This file is available only when FADump is active during
     second kernel. This is used to release the reserved memory
index 1182ae4..265b4aa 100644 (file)
@@ -1369,6 +1369,13 @@ static ssize_t enabled_show(struct kobject *kobj,
        return sprintf(buf, "%d\n", fw_dump.fadump_enabled);
 }
 
+static ssize_t mem_reserved_show(struct kobject *kobj,
+                                struct kobj_attribute *attr,
+                                char *buf)
+{
+       return sprintf(buf, "%ld\n", fw_dump.reserve_dump_area_size);
+}
+
 static ssize_t registered_show(struct kobject *kobj,
                               struct kobj_attribute *attr,
                               char *buf)
@@ -1433,10 +1440,12 @@ static int fadump_region_show(struct seq_file *m, void *private)
 static struct kobj_attribute release_attr = __ATTR_WO(release_mem);
 static struct kobj_attribute enable_attr = __ATTR_RO(enabled);
 static struct kobj_attribute register_attr = __ATTR_RW(registered);
+static struct kobj_attribute mem_reserved_attr = __ATTR_RO(mem_reserved);
 
 static struct attribute *fadump_attrs[] = {
        &enable_attr.attr,
        &register_attr.attr,
+       &mem_reserved_attr.attr,
        NULL,
 };