From: Adrian Hunter <adrian.hun...@intel.com> There are 2 debugfs files:
pstore/dump writing a kmsg dump reason code will cause a dump to persistent storage pstore/panic writing anything will cause a panic Signed-off-by: Adrian Hunter <adrian.hun...@intel.com> -- fs/pstore/platform.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index c4ea778..9d65723 100644 -- a/fs/pstore/platform.c ++ b/fs/pstore/platform.c @@ -33,6 +33,7 @@ #include <linux/hardirq.h> #include <linux/jiffies.h> #include <linux/workqueue.h> #include <linux/debugfs.h> #include "internal.h" @@ -206,6 +207,54 @@ static int pstore_write_compat(enum pstore_type_id type, return psi->write_buf(type, reason, id, part, psinfo->buf, size, psi); } #ifdef CONFIG_DEBUG_FS static DEFINE_SPINLOCK(dbg_lock); static int dbg_dump(void *data, u64 val) { unsigned long flags; switch (val) { case KMSG_DUMP_PANIC: case KMSG_DUMP_OOPS: case KMSG_DUMP_EMERG: case KMSG_DUMP_RESTART: case KMSG_DUMP_HALT: case KMSG_DUMP_POWEROFF: spin_lock_irqsave(&dbg_lock, flags); kmsg_dump(val); spin_unlock_irqrestore(&dbg_lock, flags); return 0; } return -EINVAL; } DEFINE_SIMPLE_ATTRIBUTE(dbg_dump_fops, NULL, dbg_dump, "%llu\n"); static int dbg_panic(void *data, u64 val) { panic(KERN_EMERG "pstore debugging panic!\n"); return 0; } DEFINE_SIMPLE_ATTRIBUTE(dbg_panic_fops, NULL, dbg_panic, "%llu\n"); static void pstore_debugfs_init(void) { struct dentry *root; root = debugfs_create_dir("pstore", NULL); debugfs_create_file("dump", S_IWUSR, root, NULL, &dbg_dump_fops); debugfs_create_file("panic", S_IWUSR, root, NULL, &dbg_panic_fops); } #else static inline void pstore_debugfs_init(void) { } #endif /* * platform specific persistent storage driver registers with * us here. If pstore is already mounted, call the platform @@ -257,6 +306,8 @@ int pstore_register(struct pstore_info *psi) add_timer(&pstore_timer); } pstore_debugfs_init(); return 0; } EXPORT_SYMBOL_GPL(pstore_register); - 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/