diff options
author | Jiri Olsa <jolsa@kernel.org> | 2015-10-25 15:51:38 +0100 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-12-17 15:11:59 -0300 |
commit | daeecbc0c431f15f492fb8d704080a02de6e2918 (patch) | |
tree | 519f4a04bef273b00954c04fdd7f199e7ddfc222 /tools/perf/tests | |
parent | a6e5281780d1da65c15ce529707f43eb4a6df856 (diff) | |
download | linux-daeecbc0c431f15f492fb8d704080a02de6e2918.tar.gz linux-daeecbc0c431f15f492fb8d704080a02de6e2918.tar.bz2 linux-daeecbc0c431f15f492fb8d704080a02de6e2918.zip |
perf tools: Add event_update event scale type
A__allocdding scale type 'event update' event, that stores/transfer
events scale value. The PMU events can define the scale
value which is used to multiply events data.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Kan Liang <kan.liang@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1445784728-21732-23-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/event_update.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/perf/tests/event_update.c b/tools/perf/tests/event_update.c index 9cdf4c934977..a91fcefc9f67 100644 --- a/tools/perf/tests/event_update.c +++ b/tools/perf/tests/event_update.c @@ -18,6 +18,22 @@ static int process_event_unit(struct perf_tool *tool __maybe_unused, return 0; } +static int process_event_scale(struct perf_tool *tool __maybe_unused, + union perf_event *event, + struct perf_sample *sample __maybe_unused, + struct machine *machine __maybe_unused) +{ + struct event_update_event *ev = (struct event_update_event *) event; + struct event_update_event_scale *ev_data; + + ev_data = (struct event_update_event_scale *) ev->data; + + TEST_ASSERT_VAL("wrong id", ev->id == 123); + TEST_ASSERT_VAL("wrong id", ev->type == PERF_EVENT_UPDATE__SCALE); + TEST_ASSERT_VAL("wrong scale", ev_data->scale = 0.123); + return 0; +} + int test__event_update(int subtest __maybe_unused) { struct perf_evlist *evlist; @@ -38,5 +54,10 @@ int test__event_update(int subtest __maybe_unused) TEST_ASSERT_VAL("failed to synthesize attr update unit", !perf_event__synthesize_event_update_unit(NULL, evsel, process_event_unit)); + evsel->scale = 0.123; + + TEST_ASSERT_VAL("failed to synthesize attr update scale", + !perf_event__synthesize_event_update_scale(NULL, evsel, process_event_scale)); + return 0; } |