[PATCH 0/6] [GIT PULL][v3.2] tracing: fixes

December 05th, 2011 - 08:50 pm ET by Steven Rostedt | Report spam


Ingo,

These are the patches that were also in a tip/perf/core push, but
as they are all bug fixes, we should get them into 3.2.

Thanks,

Please pull the latest tip/perf/urgent tree, which can be found at:

git://git.kernel.org/pub/scm/linux/...-trace.git
tip/perf/urgent

Head SHA1: ddf6e0e50723b62ac76ed18eb53e9417c6eefba7


Gleb Natapov (1):
jump_label: jump_label_inc may return before the code is patched

Ilya Dryomov (1):
tracing: fix event_subsystem ref counting

Li Zefan (1):
tracing: Restore system filter behavior

Steven Rostedt (3):
ftrace: Remove force undef config value left for testing
perf: Fix parsing of __print_flags() in TP_printk()
ftrace: Fix hash record accounting bug

-
include/linux/ftrace_event.h | 2 ++
kernel/jump_label.c | 3 ++-
kernel/trace/ftrace.c | 5 +++--
kernel/trace/trace_events.c | 1 -
kernel/trace/trace_events_filter.c | 7 ++++++-
tools/perf/util/trace-event-parse.c | 2 ++
6 files changed, 15 insertions(+), 5 deletions(-)



To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
email Follow the discussionReplies 3 repliesReplies Make a reply

Replies

#1 Steven Rostedt
December 05th, 2011 - 08:50 pm ET | Report spam

From: Li Zefan

Though not all events have field 'prev_pid', it was allowed to do this:

# echo 'prev_pid == 100' > events/sched/filter

but commit 75b8e98263fdb0bfbdeba60d4db463259f1fe8a2 (tracing/filter: Swap
entire filter of events) broke it without any reason.

Link: http://lkml.kernel.org/r/

Signed-off-by: Li Zefan
Signed-off-by: Steven Rostedt

include/linux/ftrace_event.h | 2 ++
kernel/trace/trace_events_filter.c | 7 ++++++-
2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index 96efa67..c3da42d 100644
a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -172,6 +172,7 @@ enum {
TRACE_EVENT_FL_FILTERED_BIT,
TRACE_EVENT_FL_RECORDED_CMD_BIT,
TRACE_EVENT_FL_CAP_ANY_BIT,
+ TRACE_EVENT_FL_NO_SET_FILTER_BIT,
};

enum {
@@ -179,6 +180,7 @@ enum {
TRACE_EVENT_FL_FILTERED = (1 << TRACE_EVENT_FL_FILTERED_BIT),
TRACE_EVENT_FL_RECORDED_CMD = (1 << TRACE_EVENT_FL_RECORDED_CMD_BIT),
TRACE_EVENT_FL_CAP_ANY = (1 << TRACE_EVENT_FL_CAP_ANY_BIT),
+ TRACE_EVENT_FL_NO_SET_FILTER = (1 << TRACE_EVENT_FL_NO_SET_FILTER_BIT),
};

struct ftrace_event_call {
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
index d6e7926..95dc31e 100644
a/kernel/trace/trace_events_filter.c
+++ b/kernel/trace/trace_events_filter.c
@@ -1649,7 +1649,9 @@ static int replace_system_preds(struct event_subsystem *system,
*/
err = replace_preds(call, NULL, ps, filter_string, true);
if (err)
- goto fail;
+ call->flags |= TRACE_EVENT_FL_NO_SET_FILTER;
+ else
+ call->flags &= ~TRACE_EVENT_FL_NO_SET_FILTER;
}

list_for_each_entry(call, &ftrace_events, list) {
@@ -1658,6 +1660,9 @@ static int replace_system_preds(struct event_subsystem *system,
if (strcmp(call->class->system, system->name) != 0)
continue;

+ if (call->flags & TRACE_EVENT_FL_NO_SET_FILTER)
+ continue;
+
filter_item = kzalloc(sizeof(*filter_item), GFP_KERNEL);
if (!filter_item)
goto fail_mem;
1.7.7.3





To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Similar topics