From: Borislav Petkov <bp@alien8.de>
To: "Chen, Gong" <gong.chen@linux.intel.com>
Cc: tony.luck@intel.com, m.chehab@samsung.com, rostedt@goodmis.org,
linux-acpi@vger.kernel.org, lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 4/7 v2] RAS, debugfs: Add debugfs interface for RAS subsystem
Date: Wed, 11 Jun 2014 21:01:13 +0200 [thread overview]
Message-ID: <20140611190113.GD14923@pd.tnic> (raw)
In-Reply-To: <1402475691-30045-5-git-send-email-gong.chen@linux.intel.com>
On Wed, Jun 11, 2014 at 04:34:48AM -0400, Chen, Gong wrote:
> Implement a new debugfs interface for RAS susbsystem.
> A file named daemon_active is added there accordingly.
> This file is used to track if user space daemon enables
> perf/trace interface or not. One can track which daemon
> opens it via "lsof /path/to/debugfs/ras/daemon_active".
>
> v2 -> v1: Change file access mode from 0444 to 0400.
>
> Signed-off-by: Chen, Gong <gong.chen@linux.intel.com>
> ---
> drivers/ras/Makefile | 2 +-
> drivers/ras/debugfs.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++
> drivers/ras/ras.c | 14 +++++++++++++
> include/linux/ras.h | 15 ++++++++++++++
> 4 files changed, 87 insertions(+), 1 deletion(-)
> create mode 100644 drivers/ras/debugfs.c
> create mode 100644 include/linux/ras.h
>
> diff --git a/drivers/ras/Makefile b/drivers/ras/Makefile
> index 223e806..d7f7334 100644
> --- a/drivers/ras/Makefile
> +++ b/drivers/ras/Makefile
> @@ -1 +1 @@
> -obj-$(CONFIG_RAS) += ras.o
> +obj-$(CONFIG_RAS) += ras.o debugfs.o
> diff --git a/drivers/ras/debugfs.c b/drivers/ras/debugfs.c
> new file mode 100644
> index 0000000..d0bc389
> --- /dev/null
> +++ b/drivers/ras/debugfs.c
> @@ -0,0 +1,57 @@
> +#include <linux/debugfs.h>
> +
> +struct dentry *ras_debugfs_dir;
> +EXPORT_SYMBOL_GPL(ras_debugfs_dir);
No need to export this. Revised version below:
---
From: "Chen, Gong" <gong.chen@linux.intel.com>
Implement a new debugfs interface for RAS susbsystem.
A file named daemon_active is added there accordingly.
This file is used to track if user space daemon accesses
perf/trace interface or not. One can track which daemon
opens it via "lsof /path/to/debugfs/ras/daemon_active".
Signed-off-by: Chen, Gong <gong.chen@linux.intel.com>
Link: http://lkml.kernel.org/r/1402475691-30045-5-git-send-email-gong.chen@linux.intel.com
Signed-off-by: Borislav Petkov <bp@suse.de>
---
drivers/ras/Makefile | 2 +-
drivers/ras/debugfs.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/ras/ras.c | 14 +++++++++++++
include/linux/ras.h | 15 ++++++++++++++
4 files changed, 87 insertions(+), 1 deletion(-)
create mode 100644 drivers/ras/debugfs.c
create mode 100644 include/linux/ras.h
Index: linux/drivers/ras/Makefile
===================================================================
--- linux.orig/drivers/ras/Makefile 2014-06-11 17:54:21.738397566 +0200
+++ linux/drivers/ras/Makefile 2014-06-11 17:54:21.726397566 +0200
@@ -1 +1 @@
-obj-$(CONFIG_RAS) += ras.o
+obj-$(CONFIG_RAS) += ras.o debugfs.o
Index: linux/drivers/ras/debugfs.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux/drivers/ras/debugfs.c 2014-06-11 17:58:47.214393178 +0200
@@ -0,0 +1,56 @@
+#include <linux/debugfs.h>
+
+static struct dentry *ras_debugfs_dir;
+
+static atomic_t trace_count = ATOMIC_INIT(0);
+
+int ras_userspace_consumers(void)
+{
+ return atomic_read(&trace_count);
+}
+EXPORT_SYMBOL_GPL(ras_userspace_consumers);
+
+static int trace_show(struct seq_file *m, void *v)
+{
+ return atomic_read(&trace_count);
+}
+
+static int trace_open(struct inode *inode, struct file *file)
+{
+ atomic_inc(&trace_count);
+ return single_open(file, trace_show, NULL);
+}
+
+static int trace_release(struct inode *inode, struct file *file)
+{
+ atomic_dec(&trace_count);
+ return single_release(inode, file);
+}
+
+static const struct file_operations trace_fops = {
+ .open = trace_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = trace_release,
+};
+
+int __init ras_add_daemon_trace(void)
+{
+ struct dentry *fentry;
+
+ if (!ras_debugfs_dir)
+ return -ENOENT;
+
+ fentry = debugfs_create_file("daemon_active", S_IRUSR, ras_debugfs_dir,
+ NULL, &trace_fops);
+ if (!fentry)
+ return -ENODEV;
+
+ return 0;
+
+}
+
+void __init ras_debugfs_init(void)
+{
+ ras_debugfs_dir = debugfs_create_dir("ras", NULL);
+}
Index: linux/drivers/ras/ras.c
===================================================================
--- linux.orig/drivers/ras/ras.c 2014-06-11 17:54:21.738397566 +0200
+++ linux/drivers/ras/ras.c 2014-06-11 17:54:21.730397566 +0200
@@ -5,8 +5,22 @@
* Chen, Gong <gong.chen@linux.intel.com>
*/
+#include <linux/init.h>
+#include <linux/ras.h>
+
#define CREATE_TRACE_POINTS
#define TRACE_INCLUDE_PATH ../../include/ras
#include <ras/ras_event.h>
+static int __init ras_init(void)
+{
+ int rc = 0;
+
+ ras_debugfs_init();
+ rc = ras_add_daemon_trace();
+
+ return rc;
+}
+subsys_initcall(ras_init);
+
EXPORT_TRACEPOINT_SYMBOL_GPL(mc_event);
Index: linux/include/linux/ras.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux/include/linux/ras.h 2014-06-11 17:58:43.350393242 +0200
@@ -0,0 +1,14 @@
+#ifndef __RAS_H__
+#define __RAS_H__
+
+#ifdef CONFIG_DEBUG_FS
+int ras_userspace_consumers(void);
+void ras_debugfs_init(void);
+int ras_add_daemon_trace(void);
+#else
+static inline int ras_userspace_consumers(void) { return 0; }
+static inline void ras_debugfs_init(void) { return; }
+static inline int ras_add_daemon_trace(void) { return 0; }
+#endif
+
+#endif
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
next prev parent reply other threads:[~2014-06-11 19:01 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-11 8:34 New eMCA trace event interface V4 Chen, Gong
2014-06-11 8:34 ` [PATCH 1/7 v5] trace, RAS: Add basic RAS trace event Chen, Gong
2014-06-11 18:59 ` Borislav Petkov
2014-06-11 8:34 ` [PATCH 2/7 v3] trace, AER: Move trace into unified interface Chen, Gong
2014-06-11 19:00 ` Borislav Petkov
2014-06-11 8:34 ` [PATCH 3/7 v5] CPER: Adjust code flow of some functions Chen, Gong
2014-06-11 8:34 ` [PATCH 4/7 v2] RAS, debugfs: Add debugfs interface for RAS subsystem Chen, Gong
2014-06-11 19:01 ` Borislav Petkov [this message]
2014-06-11 8:34 ` [PATCH 5/7 v7] trace, RAS: Add eMCA trace event interface Chen, Gong
2014-06-11 19:02 ` Borislav Petkov
2014-06-12 2:42 ` Chen, Gong
2014-06-11 8:34 ` [PATCH 6/7 v4] trace, eMCA: Add a knob to adjust where to save event log Chen, Gong
2014-06-11 8:34 ` [PATCH 7/7] RAS, extlog: Adjust init flow Chen, Gong
2014-06-11 21:33 ` New eMCA trace event interface V4 Luck, Tony
2014-06-12 6:11 ` [PATCH 5/7 REVISION] trace, RAS: Add eMCA trace event interface Chen, Gong
2014-06-12 13:28 ` Steven Rostedt
2014-06-13 2:19 ` Chen, Gong
2014-06-13 3:01 ` Steven Rostedt
2014-06-13 3:08 ` Steven Rostedt
2014-06-13 7:09 ` Chen, Gong
2014-06-17 2:09 ` Chen, Gong
2014-06-17 3:37 ` Steven Rostedt
2014-06-17 12:59 ` Steven Rostedt
2014-06-18 2:33 ` eMCA trace interface update Chen, Gong
2014-06-18 2:33 ` [PATCH 5/7 REVISION v2] trace, RAS: Add eMCA trace event interface Chen, Gong
2014-06-20 2:06 ` Chen, Gong
2014-06-20 23:01 ` Tony Luck
2014-06-21 0:56 ` Steven Rostedt
2014-06-22 16:48 ` Borislav Petkov
2014-06-23 23:51 ` Luck, Tony
2014-06-24 10:20 ` Borislav Petkov
2014-06-24 17:38 ` Luck, Tony
-- strict thread matches above, loose matches on Subject: below --
2014-05-15 8:30 New " Chen, Gong
2014-05-15 8:30 ` [PATCH 4/7 v2] RAS, debugfs: Add debugfs interface for RAS subsystem Chen, Gong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140611190113.GD14923@pd.tnic \
--to=bp@alien8.de \
--cc=gong.chen@linux.intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=m.chehab@samsung.com \
--cc=rostedt@goodmis.org \
--cc=tony.luck@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.