Add a sys interface to allow querying the memory reserved by fadump
for saving the crash dump.

Signed-off-by: Sourabh Jain <sourabhj...@linux.ibm.com>
---
 Documentation/powerpc/firmware-assisted-dump.rst |  5 +++++
 arch/powerpc/kernel/fadump.c                     | 14 ++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/Documentation/powerpc/firmware-assisted-dump.rst 
b/Documentation/powerpc/firmware-assisted-dump.rst
index 9ca12830a48e..4a7f6dc556f5 100644
--- a/Documentation/powerpc/firmware-assisted-dump.rst
+++ b/Documentation/powerpc/firmware-assisted-dump.rst
@@ -222,6 +222,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
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index 4eab97292cc2..70d49013ebec 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -1514,6 +1514,13 @@ static ssize_t fadump_enabled_show(struct kobject *kobj,
        return sprintf(buf, "%d\n", fw_dump.fadump_enabled);
 }
 
+static ssize_t fadump_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 fadump_register_show(struct kobject *kobj,
                                        struct kobj_attribute *attr,
                                        char *buf)
@@ -1632,6 +1639,9 @@ static struct kobj_attribute fadump_attr = 
__ATTR(fadump_enabled,
 static struct kobj_attribute fadump_register_attr = __ATTR(fadump_registered,
                                                0644, fadump_register_show,
                                                fadump_register_store);
+static struct kobj_attribute fadump_mem_reserved_attr =
+                       __ATTR(fadump_mem_reserved, 0444,
+                       fadump_mem_reserved_show, NULL);
 
 DEFINE_SHOW_ATTRIBUTE(fadump_region);
 
@@ -1663,6 +1673,10 @@ static void fadump_init_files(void)
                        printk(KERN_ERR "fadump: unable to create sysfs file"
                                " fadump_release_mem (%d)\n", rc);
        }
+       rc = sysfs_create_file(kernel_kobj, &fadump_mem_reserved_attr.attr);
+       if (rc)
+               pr_err("unable to create sysfs file fadump_mem_reserved (%d)\n",
+                       rc);
        return;
 }
 
-- 
2.17.2

Reply via email to