lkml.org 
[lkml]   [2012]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCHv2] perf tools: Add 'G' and 'H' modifiers to event parsing
    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>
    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]

    %%
    --
    Gleb.

    \
     
     \ /
      Last update: 2012-04-17 13:17    [W:0.025 / U:62.980 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site