lkml.org 
[lkml]   [2012]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 12/20] perf evsel: Handle all event types in perf_evsel__name
    Date
    From: Arnaldo Carvalho de Melo <acme@redhat.com>

    Now to convert all event_name users to perf_evsel__name.

    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Namhyung Kim <namhyung@gmail.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/n/tip-buuz0j0gynseglxa76r01rdn@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/evsel.c | 24 +++++++++++-------------
    tools/perf/util/parse-events.c | 21 +++------------------
    2 files changed, 14 insertions(+), 31 deletions(-)

    diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
    index 2da0473..2ddc812 100644
    --- a/tools/perf/util/evsel.c
    +++ b/tools/perf/util/evsel.c
    @@ -252,6 +252,11 @@ static int perf_evsel__hw_cache_name(struct perf_evsel *evsel, char *bf, size_t
    return ret + perf_evsel__add_modifiers(evsel, bf + ret, size - ret);
    }

    +static int perf_evsel__tracepoint_name(struct perf_evsel *evsel, char *bf, size_t size)
    +{
    + return scnprintf(bf, size, "%s", evsel->name ?: "unknown tracepoint");
    +}
    +
    int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size)
    {
    int ret;
    @@ -273,20 +278,13 @@ int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size)
    ret = perf_evsel__sw_name(evsel, bf, size);
    break;

    + case PERF_TYPE_TRACEPOINT:
    + ret = perf_evsel__tracepoint_name(evsel, bf, size);
    + break;
    +
    default:
    - /*
    - * FIXME
    - *
    - * This is the minimal perf_evsel__name so that we can
    - * reconstruct event names taking into account event modifiers.
    - *
    - * The old event_name uses it now for raw anr hw events, so that
    - * we don't drag all the parsing stuff into the python binding.
    - *
    - * On the next devel cycle the rest of the event naming will be
    - * brought here.
    - */
    - return 0;
    + ret = scnprintf(bf, size, "%s", "unknown attr type");
    + break;
    }

    return ret;
    diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
    index 641c4ac..d73690b 100644
    --- a/tools/perf/util/parse-events.c
    +++ b/tools/perf/util/parse-events.c
    @@ -203,24 +203,9 @@ const char *event_type(int type)

    const char *event_name(struct perf_evsel *evsel)
    {
    - u64 config = evsel->attr.config;
    - int type = evsel->attr.type;
    -
    - if (type == PERF_TYPE_RAW || type == PERF_TYPE_HARDWARE ||
    - type == PERF_TYPE_SOFTWARE || type == PERF_TYPE_HW_CACHE) {
    - /*
    - * XXX minimal fix, see comment on perf_evsen__name, this static buffer
    - * will go away together with event_name in the next devel cycle.
    - */
    - static char bf[128];
    - perf_evsel__name(evsel, bf, sizeof(bf));
    - return bf;
    - }
    -
    - if (evsel->name)
    - return evsel->name;
    -
    - return __event_name(type, config);
    + static char bf[128];
    + perf_evsel__name(evsel, bf, sizeof(bf));
    + return bf;
    }

    const char *__event_name(int type, u64 config)
    --
    1.7.1


    \
     
     \ /
      Last update: 2012-06-19 21:21    [W:2.438 / U:0.952 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site