new file mode 100644
@@ -0,0 +1,41 @@
+What: /sys/kernel/fadump/*
+Date: Oct 2019
+Contact: linuxppc-dev@lists.ozlabs.org
+Description:
+ The /sys/kernel/fadump/* is a collection of FADump sysfs
+ file provide information about the configuration status
+ of Firmware Assisted Dump (FADump).
+
+What: /sys/kernel/fadump/fadump_enabled
+Date: Oct 2019
+Contact: linuxppc-dev@lists.ozlabs.org
+Description: read only
+ Primarily used to identify whether the FADump is enabled in
+ the kernel or not.
+User: Kdump service
+
+What: /sys/kernel/fadump/fadump_registered
+Date: Oct 2019
+Contact: linuxppc-dev@lists.ozlabs.org
+Description: read/write
+ Helps to control the dump collect feature from userspace.
+ Setting 1 to this file enables the system to collect the
+ dump and 0 to disable it.
+User: Kdump service
+
+What: /sys/kernel/fadump/fadump_release_mem
+Date: Oct 2019
+Contact: linuxppc-dev@lists.ozlabs.org
+Description: write only
+ This is a special sysfs file and only available when
+ 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/fadump_release_opalcore
+Date: Oct 2019
+Contact: linuxppc-dev@lists.ozlabs.org
+Description: write only
+ The sysfs file is available when the system is booted to
+ collect the dump on OPAL based machine. It used to release
+ the memory used to collect the opalcore.
@@ -1418,6 +1418,9 @@ static int fadump_region_show(struct seq_file *m, void *private)
return 0;
}
+struct kobject *fadump_kobj;
+EXPORT_SYMBOL_GPL(fadump_kobj);
+
static struct kobj_attribute fadump_release_attr = __ATTR(fadump_release_mem,
0200, NULL,
fadump_release_memory_store);
@@ -1435,6 +1438,11 @@ static void fadump_init_files(void)
struct dentry *debugfs_file;
int rc = 0;
+ fadump_kobj = kobject_create_and_add("fadump", kernel_kobj);
+ if (!fadump_kobj) {
+ pr_err("failed to create fadump kobject\n");
+ return;
+ }
rc = sysfs_create_file(kernel_kobj, &fadump_attr.attr);
if (rc)
printk(KERN_ERR "fadump: unable to create sysfs file"
@@ -1458,6 +1466,26 @@ static void fadump_init_files(void)
printk(KERN_ERR "fadump: unable to create sysfs file"
" fadump_release_mem (%d)\n", rc);
}
+ /* Replicating the following sysfs attributes under FADump kobject.
+ *
+ * - fadump_enabled
+ * - fadump_registered
+ * - fadump_release_mem
+ */
+ rc = sysfs_create_file(fadump_kobj, &fadump_attr.attr);
+ if (rc)
+ pr_err("unable to create fadump/fadump_enabled sysfs file (%d)\n",
+ rc);
+ rc = sysfs_create_file(fadump_kobj, &fadump_register_attr.attr);
+ if (rc)
+ pr_err("unable to create fadump/fadump_registered sysfs file (%d)\n",
+ rc);
+ if (fw_dump.dump_active) {
+ rc = sysfs_create_file(fadump_kobj, &fadump_release_attr.attr);
+ if (rc)
+ pr_err("unable to create fadump/fadump_release_mem sysfs file (%d)\n",
+ rc);
+ }
return;
}
@@ -625,7 +625,11 @@ static int __init opalcore_init(void)
return rc;
}
- rc = sysfs_create_file(kernel_kobj, &opalcore_rel_attr.attr);
+ /*
+ * Originally fadump_release_opalcore sysfs was part of kernel_kobj
+ * later moved to fadump_kobj.
+ */
+ rc = sysfs_create_file(fadump_kobj, &opalcore_rel_attr.attr);
if (rc) {
pr_warn("unable to create sysfs file fadump_release_opalcore (%d)\n",
rc);
As the number of FADump sysfs files increases it is hard to manage all of them inside /sys/kernel directory. It's better to have all the FADump related sysfs files in a dedicated directory /sys/kernel/fadump. But in order to maintain the backward compatibility the /sys/kernel/fadump_* sysfs files are replicated inside /sys/kernel/fadump/ and eventually get removed in future. Consolidate ABI documentation for all the FADump sysfs file in a single file Documentation/ABI/testing/sysfs-kernel-fadump. Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com> --- Documentation/ABI/testing/sysfs-kernel-fadump | 41 +++++++++++++++++++ arch/powerpc/kernel/fadump.c | 28 +++++++++++++ arch/powerpc/platforms/powernv/opal-core.c | 6 ++- 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 Documentation/ABI/testing/sysfs-kernel-fadump