lkml.org 
[lkml]   [2016]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 09/18] perf c2c report: Add struct c2c_stats::tot_hitm field
    Date
    From: Jiri Olsa <jolsa@kernel.org>

    Count total number of HITMs in a special field. This will ease up
    addition of total HITM sorting into c2c report in the following patch.

    Signed-off-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Don Zickus <dzickus@redhat.com>
    Cc: Joe Mario <jmario@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1479764011-10732-5-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/mem-events.c | 12 ++++++++++--
    tools/perf/util/mem-events.h | 1 +
    2 files changed, 11 insertions(+), 2 deletions(-)

    diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c
    index e50773286ef6..1d4ab53c60ca 100644
    --- a/tools/perf/util/mem-events.c
    +++ b/tools/perf/util/mem-events.c
    @@ -280,6 +280,12 @@ int c2c_decode_stats(struct c2c_stats *stats, struct mem_info *mi)
    u64 lock = data_src->mem_lock;
    int err = 0;

    +#define HITM_INC(__f) \
    +do { \
    + stats->__f++; \
    + stats->tot_hitm++; \
    +} while (0)
    +
    #define P(a, b) PERF_MEM_##a##_##b

    stats->nr_entries++;
    @@ -303,7 +309,7 @@ int c2c_decode_stats(struct c2c_stats *stats, struct mem_info *mi)
    if (lvl & P(LVL, L2 )) stats->ld_l2hit++;
    if (lvl & P(LVL, L3 )) {
    if (snoop & P(SNOOP, HITM))
    - stats->lcl_hitm++;
    + HITM_INC(lcl_hitm);
    else
    stats->ld_llchit++;
    }
    @@ -331,7 +337,7 @@ int c2c_decode_stats(struct c2c_stats *stats, struct mem_info *mi)
    if (snoop & P(SNOOP, HIT))
    stats->rmt_hit++;
    else if (snoop & P(SNOOP, HITM))
    - stats->rmt_hitm++;
    + HITM_INC(rmt_hitm);
    }

    if ((lvl & P(LVL, MISS)))
    @@ -364,6 +370,7 @@ int c2c_decode_stats(struct c2c_stats *stats, struct mem_info *mi)
    }

    #undef P
    +#undef HITM_INC
    return err;
    }

    @@ -390,6 +397,7 @@ void c2c_add_stats(struct c2c_stats *stats, struct c2c_stats *add)
    stats->ld_llchit += add->ld_llchit;
    stats->lcl_hitm += add->lcl_hitm;
    stats->rmt_hitm += add->rmt_hitm;
    + stats->tot_hitm += add->tot_hitm;
    stats->rmt_hit += add->rmt_hit;
    stats->lcl_dram += add->lcl_dram;
    stats->rmt_dram += add->rmt_dram;
    diff --git a/tools/perf/util/mem-events.h b/tools/perf/util/mem-events.h
    index faf80403b519..40f72ee4f42a 100644
    --- a/tools/perf/util/mem-events.h
    +++ b/tools/perf/util/mem-events.h
    @@ -59,6 +59,7 @@ struct c2c_stats {
    u32 ld_llchit; /* count of loads that hit LLC */
    u32 lcl_hitm; /* count of loads with local HITM */
    u32 rmt_hitm; /* count of loads with remote HITM */
    + u32 tot_hitm; /* count of loads with local and remote HITM */
    u32 rmt_hit; /* count of loads with remote hit clean; */
    u32 lcl_dram; /* count of loads miss to local DRAM */
    u32 rmt_dram; /* count of loads miss to remote DRAM */
    --
    2.7.4
    \
     
     \ /
      Last update: 2016-11-23 17:41    [W:2.303 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site