lkml.org 
[lkml]   [2015]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] tracing: fix incorrect enabling of trace events by boot cmdline
Date
There is a problem that trace events are not properly enabled with
boot cmdline. Problem is that if we pass "trace_event=kmem:mm_page_alloc"
to boot cmdline, it enables all kmem trace events.

It is caused by parsing mechanism. When we parse cmdline, buffer
contents is modified due to tokenization. And, if we use this buffer
again, we will get wrong result.

Unfortunately, this buffer should be accessed three times
to set trace events properly in boot time. So, we need to handle
this situation.

There is already handling code for ",", but, we need another for
":". This patch add it.

Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
---
kernel/trace/trace_events.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index db54dda..ce5b194 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -565,6 +565,7 @@ static int __ftrace_set_clr_event(struct trace_array *tr, const char *match,
static int ftrace_set_clr_event(struct trace_array *tr, char *buf, int set)
{
char *event = NULL, *sub = NULL, *match;
+ int ret;

/*
* The buf format can be <subsystem>:<event-name>
@@ -590,7 +591,11 @@ static int ftrace_set_clr_event(struct trace_array *tr, char *buf, int set)
event = NULL;
}

- return __ftrace_set_clr_event(tr, match, sub, event, set);
+ ret = __ftrace_set_clr_event(tr, match, sub, event, set);
+
+ /* Put back the colon to allow this to be called again */
+ if (buf)
+ *(buf - 1) = ':';
}

/**
--
1.9.1


\
 
 \ /
  Last update: 2015-04-16 07:21    [W:0.077 / U:8.600 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site