lkml.org 
[lkml]   [2021]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 15/26] perf stat: Filter out unmatched aggregation for hybrid event
    Date
    perf-stat has supported some aggregation modes, such as --per-core,
    --per-socket and etc. While for hybrid event, it may only available
    on part of cpus. So for --per-core, we need to filter out the
    unavailable cores, for --per-socket, filter out the unavailable
    sockets, and so on.

    Before:

    # perf stat --per-core -e cpu_core/cycles/ -a -- sleep 1

    Performance counter stats for 'system wide':

    S0-D0-C0 2 479,530 cpu_core/cycles/
    S0-D0-C4 2 175,007 cpu_core/cycles/
    S0-D0-C8 2 166,240 cpu_core/cycles/
    S0-D0-C12 2 704,673 cpu_core/cycles/
    S0-D0-C16 2 865,835 cpu_core/cycles/
    S0-D0-C20 2 2,958,461 cpu_core/cycles/
    S0-D0-C24 2 163,988 cpu_core/cycles/
    S0-D0-C28 2 164,729 cpu_core/cycles/
    S0-D0-C32 0 <not counted> cpu_core/cycles/
    S0-D0-C33 0 <not counted> cpu_core/cycles/
    S0-D0-C34 0 <not counted> cpu_core/cycles/
    S0-D0-C35 0 <not counted> cpu_core/cycles/
    S0-D0-C36 0 <not counted> cpu_core/cycles/
    S0-D0-C37 0 <not counted> cpu_core/cycles/
    S0-D0-C38 0 <not counted> cpu_core/cycles/
    S0-D0-C39 0 <not counted> cpu_core/cycles/

    1.003597211 seconds time elapsed

    After:

    # perf stat --per-core -e cpu_core/cycles/ -a -- sleep 1

    Performance counter stats for 'system wide':

    S0-D0-C0 2 210,428 cpu_core/cycles/
    S0-D0-C4 2 444,830 cpu_core/cycles/
    S0-D0-C8 2 435,241 cpu_core/cycles/
    S0-D0-C12 2 423,976 cpu_core/cycles/
    S0-D0-C16 2 859,350 cpu_core/cycles/
    S0-D0-C20 2 1,559,589 cpu_core/cycles/
    S0-D0-C24 2 163,924 cpu_core/cycles/
    S0-D0-C28 2 376,610 cpu_core/cycles/

    1.003621290 seconds time elapsed

    Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
    Co-developed-by: Jiri Olsa <jolsa@redhat.com>
    ---
    v6:
    - No change.

    v5:
    - Use Jiri's code, which is much simpler than original.

    v4:
    - No change.

    tools/perf/util/stat-display.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
    index 0679129ad05e..a76fff5e7d83 100644
    --- a/tools/perf/util/stat-display.c
    +++ b/tools/perf/util/stat-display.c
    @@ -667,6 +667,9 @@ static void print_counter_aggrdata(struct perf_stat_config *config,
    if (!collect_data(config, counter, aggr_cb, &ad))
    return;

    + if (perf_pmu__has_hybrid() && ad.ena == 0)
    + return;
    +
    nr = ad.nr;
    ena = ad.ena;
    run = ad.run;
    --
    2.17.1
    \
     
     \ /
      Last update: 2021-04-27 09:09    [W:4.281 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site