Re: [PATCH v3 11/12] tracing: guard tracing_selftest_disabled byCONFIG_FTRACE_STARTUP_TEST
From: Steven Rostedt
Date: Tue Jul 02 2013 - 19:56:54 EST
On Wed, 2013年04月10日 at 11:26 +0800, zhangwei(Jovi) wrote:
>
From: "zhangwei(Jovi)" <jovi.zhangwei@xxxxxxxxxx>
>
>
Variable tracing_selftest_disabled have not any sense when
>
CONFIG_FTRACE_STARTUP_TEST is disabled.
>
>
This patch also remove __read_mostly attribute, since variable
>
tracing_selftest_disabled really not read mostly.
Yes it is mostly read only. Sure, it's not read much, but it is also
only written to once. That makes it, "read mostly".
-- Steve
>
>
Signed-off-by: zhangwei(Jovi) <jovi.zhangwei@xxxxxxxxxx>
>
---
>
kernel/trace/trace.c | 6 ++++--
>
kernel/trace/trace.h | 2 +-
>
kernel/trace/trace_events.c | 2 ++
>
3 files changed, 7 insertions(+), 3 deletions(-)
>
>
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
>
index ee4e110..09a3aa8 100644
>
--- a/kernel/trace/trace.c
>
+++ b/kernel/trace/trace.c
>
@@ -58,10 +58,12 @@ bool ring_buffer_expanded;
>
*/
>
static bool __read_mostly tracing_selftest_running;
>
>
+#ifdef CONFIG_FTRACE_STARTUP_TEST
>
/*
>
* If a tracer is running, we do not want to run SELFTEST.
>
*/
>
-bool __read_mostly tracing_selftest_disabled;
>
+bool tracing_selftest_disabled;
>
+#endif
>
>
/* For tracers that don't implement custom flags */
>
static struct tracer_opt dummy_tracer_opt[] = {
>
@@ -1069,8 +1071,8 @@ int register_tracer(struct tracer *type)
>
tracing_set_tracer(type->name);
>
default_bootup_tracer = NULL;
>
/* disable other selftests, since this will break it. */
>
- tracing_selftest_disabled = true;
>
#ifdef CONFIG_FTRACE_STARTUP_TEST
>
+ tracing_selftest_disabled = true;
>
printk(KERN_INFO "Disabling FTRACE selftests due to running tracer '%s'\n",
>
type->name);
>
#endif
>
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
>
index 9b8afa7..e9ef8b7 100644
>
--- a/kernel/trace/trace.h
>
+++ b/kernel/trace/trace.h
>
@@ -546,10 +546,10 @@ extern int DYN_FTRACE_TEST_NAME(void);
>
extern int DYN_FTRACE_TEST_NAME2(void);
>
>
extern bool ring_buffer_expanded;
>
-extern bool tracing_selftest_disabled;
>
DECLARE_PER_CPU(int, ftrace_cpu_disabled);
>
>
#ifdef CONFIG_FTRACE_STARTUP_TEST
>
+extern bool tracing_selftest_disabled;
>
extern int trace_selftest_startup_function(struct tracer *trace,
>
struct trace_array *tr);
>
extern int trace_selftest_startup_function_graph(struct tracer *trace,
>
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
>
index 7c52a51..7c4a16b 100644
>
--- a/kernel/trace/trace_events.c
>
+++ b/kernel/trace/trace_events.c
>
@@ -2251,7 +2251,9 @@ static __init int setup_trace_event(char *str)
>
{
>
strlcpy(bootup_event_buf, str, COMMAND_LINE_SIZE);
>
ring_buffer_expanded = true;
>
+#ifdef CONFIG_FTRACE_STARTUP_TEST
>
tracing_selftest_disabled = true;
>
+#endif
>
>
return 1;
>
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/