lkml.org 
[lkml]   [2019]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.1 190/371] perf stat: Dont merge events in the same PMU
    Date
    [ Upstream commit 6c5f4e5cb35b4694dc035d91092d23f596ecd06a ]

    Event merging is mainly to collapse similar events in lots of different
    duplicated PMUs.

    It can break metric displaying. It's possible for two metrics to have
    the same event, and when the two events happen in a row the second
    wouldn't be displayed. This would also not show the second metric.

    To avoid this don't merge events in the same PMU. This makes sense, if
    we have multiple events in the same PMU there is likely some reason for
    it (e.g. using multiple groups) and we better not merge them.

    While in theory it would be possible to construct metrics that have
    events with the same name in different PMU no current metrics have this
    problem.

    This is the fix for perf stat -M UPI,IPC (needs also another bug fix to
    completely work)

    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Fixes: 430daf2dc7af ("perf stat: Collapse identically named events")
    Link: http://lkml.kernel.org/r/20190624193711.35241-3-andi@firstfloor.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/perf/util/stat-display.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
    index 6d043c78f3c2..9c940242dcbe 100644
    --- a/tools/perf/util/stat-display.c
    +++ b/tools/perf/util/stat-display.c
    @@ -539,7 +539,8 @@ static void collect_all_aliases(struct perf_stat_config *config, struct perf_evs
    alias->scale != counter->scale ||
    alias->cgrp != counter->cgrp ||
    strcmp(alias->unit, counter->unit) ||
    - perf_evsel__is_clock(alias) != perf_evsel__is_clock(counter))
    + perf_evsel__is_clock(alias) != perf_evsel__is_clock(counter) ||
    + !strcmp(alias->pmu_name, counter->pmu_name))
    break;
    alias->merged_stat = true;
    cb(config, alias, data, false);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-07-24 22:09    [W:4.112 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site