diff options
author | Jiri Olsa <jolsa@redhat.com> | 2012-03-20 22:15:40 +0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-03-22 22:11:38 +0400 |
commit | 5d7be90ed5cfb5dd3c9ab726d7daa91b86b81747 (patch) | |
tree | 9b40166a00566af8bef1c388d51b8863a92cc6fe /tools/perf/util/parse-events.h | |
parent | 9fafd98f1bf14276f95b69f0186ad5675f1e1a18 (diff) | |
download | linux-5d7be90ed5cfb5dd3c9ab726d7daa91b86b81747.tar.xz |
perf tools: Fix modifier to be applied on correct events
The event modifier needs to be applied only on the event definition it
is attached to.
The current state is that in case of multiple events definition (in
single '-e' option, separated by ',') all will get modifier of the last
one.
Fixing this by adding separated list for each event definition, so the
modifier is applied only to proper event(s). Added automated test to
catch this, plus some other modifier tests.
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1332267341-26338-3-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/parse-events.h')
-rw-r--r-- | tools/perf/util/parse-events.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h index 6d7c74b77c24..ca069f893381 100644 --- a/tools/perf/util/parse-events.h +++ b/tools/perf/util/parse-events.h @@ -76,8 +76,11 @@ int parse_events_add_breakpoint(struct list_head *list, int *idx, void *ptr, char *type); int parse_events_add_pmu(struct list_head *list, int *idx, char *pmu , struct list_head *head_config); -void parse_events_error(struct list_head *list, int *idx, - char const *msg); +void parse_events_update_lists(struct list_head *list_event, + struct list_head *list_all); +void parse_events_error(struct list_head *list_all, + struct list_head *list_event, + int *idx, char const *msg); void print_events(const char *event_glob); void print_events_type(u8 type); |