perf c2c report: Add struct c2c_stats::tot_hitm field
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>
This commit is contained in:
parent
b7ac4f9f3b
commit
dba8ab9379
|
@ -280,6 +280,12 @@ int c2c_decode_stats(struct c2c_stats *stats, struct mem_info *mi)
|
||||||
u64 lock = data_src->mem_lock;
|
u64 lock = data_src->mem_lock;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
|
#define HITM_INC(__f) \
|
||||||
|
do { \
|
||||||
|
stats->__f++; \
|
||||||
|
stats->tot_hitm++; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
#define P(a, b) PERF_MEM_##a##_##b
|
#define P(a, b) PERF_MEM_##a##_##b
|
||||||
|
|
||||||
stats->nr_entries++;
|
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, L2 )) stats->ld_l2hit++;
|
||||||
if (lvl & P(LVL, L3 )) {
|
if (lvl & P(LVL, L3 )) {
|
||||||
if (snoop & P(SNOOP, HITM))
|
if (snoop & P(SNOOP, HITM))
|
||||||
stats->lcl_hitm++;
|
HITM_INC(lcl_hitm);
|
||||||
else
|
else
|
||||||
stats->ld_llchit++;
|
stats->ld_llchit++;
|
||||||
}
|
}
|
||||||
|
@ -331,7 +337,7 @@ int c2c_decode_stats(struct c2c_stats *stats, struct mem_info *mi)
|
||||||
if (snoop & P(SNOOP, HIT))
|
if (snoop & P(SNOOP, HIT))
|
||||||
stats->rmt_hit++;
|
stats->rmt_hit++;
|
||||||
else if (snoop & P(SNOOP, HITM))
|
else if (snoop & P(SNOOP, HITM))
|
||||||
stats->rmt_hitm++;
|
HITM_INC(rmt_hitm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((lvl & P(LVL, MISS)))
|
if ((lvl & P(LVL, MISS)))
|
||||||
|
@ -364,6 +370,7 @@ int c2c_decode_stats(struct c2c_stats *stats, struct mem_info *mi)
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef P
|
#undef P
|
||||||
|
#undef HITM_INC
|
||||||
return err;
|
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->ld_llchit += add->ld_llchit;
|
||||||
stats->lcl_hitm += add->lcl_hitm;
|
stats->lcl_hitm += add->lcl_hitm;
|
||||||
stats->rmt_hitm += add->rmt_hitm;
|
stats->rmt_hitm += add->rmt_hitm;
|
||||||
|
stats->tot_hitm += add->tot_hitm;
|
||||||
stats->rmt_hit += add->rmt_hit;
|
stats->rmt_hit += add->rmt_hit;
|
||||||
stats->lcl_dram += add->lcl_dram;
|
stats->lcl_dram += add->lcl_dram;
|
||||||
stats->rmt_dram += add->rmt_dram;
|
stats->rmt_dram += add->rmt_dram;
|
||||||
|
|
|
@ -59,6 +59,7 @@ struct c2c_stats {
|
||||||
u32 ld_llchit; /* count of loads that hit LLC */
|
u32 ld_llchit; /* count of loads that hit LLC */
|
||||||
u32 lcl_hitm; /* count of loads with local HITM */
|
u32 lcl_hitm; /* count of loads with local HITM */
|
||||||
u32 rmt_hitm; /* count of loads with remote 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 rmt_hit; /* count of loads with remote hit clean; */
|
||||||
u32 lcl_dram; /* count of loads miss to local DRAM */
|
u32 lcl_dram; /* count of loads miss to local DRAM */
|
||||||
u32 rmt_dram; /* count of loads miss to remote DRAM */
|
u32 rmt_dram; /* count of loads miss to remote DRAM */
|
||||||
|
|
Loading…
Reference in New Issue