lkml.org 
[lkml]   [2012]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/4] perf tools: Add 'G' and 'H' modifiers to event parsing
    Date
    From: Gleb Natapov <gleb@redhat.com>

    They were dropped during conversion of event parser. Add test case to
    make sure this will not happen again.

    Signed-off-by: Gleb Natapov <gleb@redhat.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Avi Kivity <avi@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lkml.kernel.org/r/20120417111345.GK11918@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-test.c | 30 ++++++++++++++++++++++++++++++
    tools/perf/util/parse-events.l | 2 +-
    2 files changed, 31 insertions(+), 1 deletion(-)

    diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c
    index 1c5b980..223ffdc 100644
    --- a/tools/perf/builtin-test.c
    +++ b/tools/perf/builtin-test.c
    @@ -851,6 +851,28 @@ static int test__checkevent_symbolic_name_modifier(struct perf_evlist *evlist)
    return test__checkevent_symbolic_name(evlist);
    }

    +static int test__checkevent_exclude_host_modifier(struct perf_evlist *evlist)
    +{
    + struct perf_evsel *evsel = list_entry(evlist->entries.next,
    + struct perf_evsel, node);
    +
    + TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
    + TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
    +
    + return test__checkevent_symbolic_name(evlist);
    +}
    +
    +static int test__checkevent_exclude_guest_modifier(struct perf_evlist *evlist)
    +{
    + struct perf_evsel *evsel = list_entry(evlist->entries.next,
    + struct perf_evsel, node);
    +
    + TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
    + TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
    +
    + return test__checkevent_symbolic_name(evlist);
    +}
    +
    static int test__checkevent_symbolic_alias_modifier(struct perf_evlist *evlist)
    {
    struct perf_evsel *evsel = list_entry(evlist->entries.next,
    @@ -1091,6 +1113,14 @@ static struct test__event_st {
    .name = "r1,syscalls:sys_enter_open:k,1:1:hp",
    .check = test__checkevent_list,
    },
    + {
    + .name = "instructions:G",
    + .check = test__checkevent_exclude_host_modifier,
    + },
    + {
    + .name = "instructions:H",
    + .check = test__checkevent_exclude_guest_modifier,
    + },
    };

    #define TEST__EVENTS_CNT (sizeof(test__events) / sizeof(struct test__event_st))
    diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
    index 05d766e..1fcf1bb 100644
    --- a/tools/perf/util/parse-events.l
    +++ b/tools/perf/util/parse-events.l
    @@ -54,7 +54,7 @@ num_dec [0-9]+
    num_hex 0x[a-fA-F0-9]+
    num_raw_hex [a-fA-F0-9]+
    name [a-zA-Z_*?][a-zA-Z0-9_*?]*
    -modifier_event [ukhp]{1,5}
    +modifier_event [ukhpGH]{1,8}
    modifier_bp [rwx]

    %%
    --
    1.7.9.2.358.g22243


    \
     
     \ /
      Last update: 2012-04-20 18:55    [W:0.033 / U:29.716 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site