diff options
| author | Jiri Olsa <jolsa@kernel.org> | 2015-04-07 23:25:14 +0200 | 
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-04-08 11:00:16 -0300 | 
| commit | a1e12da4796a4ddd0e911687a290eb396d1c64bf (patch) | |
| tree | f6b0c0d524a376fa4e0411d08bac307d931f35c9 /tools/perf/tests | |
| parent | f6fcc1433a4a9057b2977313f31eadbc1c84268b (diff) | |
perf tools: Add 'I' event modifier for exclude_idle bit
Adding 'I' event modifier to have complete set of modifiers for
perf_event_attr:exclude_* bits.
Any event specified with 'I' modifier will have the
perf_event_attr:exclude_idle bit set.
  $ perf record -e cycles:I -vv ls 2>&1 | grep exclude_idle
  exclude_hv          0    exclude_idle        1
Adding automated tests.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: William Cohen <wcohen@redhat.com>
Link: http://lkml.kernel.org/r/1428441919-23099-2-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/tests')
| -rw-r--r-- | tools/perf/tests/parse-events.c | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c index ac243ebcb20a..3de744961739 100644 --- a/tools/perf/tests/parse-events.c +++ b/tools/perf/tests/parse-events.c @@ -295,6 +295,36 @@ static int test__checkevent_genhw_modifier(struct perf_evlist *evlist)  	return test__checkevent_genhw(evlist);  } +static int test__checkevent_exclude_idle_modifier(struct perf_evlist *evlist) +{ +	struct perf_evsel *evsel = perf_evlist__first(evlist); + +	TEST_ASSERT_VAL("wrong exclude idle", evsel->attr.exclude_idle); +	TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest); +	TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host); +	TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user); +	TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel); +	TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv); +	TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip); + +	return test__checkevent_symbolic_name(evlist); +} + +static int test__checkevent_exclude_idle_modifier_1(struct perf_evlist *evlist) +{ +	struct perf_evsel *evsel = perf_evlist__first(evlist); + +	TEST_ASSERT_VAL("wrong exclude idle", evsel->attr.exclude_idle); +	TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest); +	TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host); +	TEST_ASSERT_VAL("wrong exclude_user", evsel->attr.exclude_user); +	TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel); +	TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv); +	TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip); + +	return test__checkevent_symbolic_name(evlist); +} +  static int test__checkevent_breakpoint_modifier(struct perf_evlist *evlist)  {  	struct perf_evsel *evsel = perf_evlist__first(evlist); @@ -1494,6 +1524,16 @@ static struct evlist_test test__events[] = {  		.id    = 100,  	},  #endif +	{ +		.name  = "instructions:I", +		.check = test__checkevent_exclude_idle_modifier, +		.id    = 45, +	}, +	{ +		.name  = "instructions:kIG", +		.check = test__checkevent_exclude_idle_modifier_1, +		.id    = 46, +	},  };  static struct evlist_test test__events_pmu[] = { | 
