aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/metricgroup.h
diff options
context:
space:
mode:
authorJin Yao <yao.jin@linux.intel.com>2019-08-28 13:59:31 +0800
committerArnaldo Carvalho de Melo <acme@redhat.com>2019-08-31 22:27:52 -0300
commit287f2649f791819dd2d8f32f0213c8c521d6dfa0 (patch)
tree67c19415dd0a70c6f6512a5bd9ab1c67d408a1c4 /tools/perf/util/metricgroup.h
parentperf pmu: Change convert_scale from static to global (diff)
downloadlinux-dev-287f2649f791819dd2d8f32f0213c8c521d6dfa0.tar.xz
linux-dev-287f2649f791819dd2d8f32f0213c8c521d6dfa0.zip
perf metricgroup: Scale the metric result
Some metrics define the scale unit, such as { "BriefDescription": "Intel Optane DC persistent memory read latency (ns). Derived from unc_m_pmm_rpq_occupancy.all", "Counter": "0,1,2,3", "EventCode": "0xE0", "EventName": "UNC_M_PMM_READ_LATENCY", "MetricExpr": "UNC_M_PMM_RPQ_OCCUPANCY.ALL / UNC_M_PMM_RPQ_INSERTS / UNC_M_CLOCKTICKS", "MetricName": "UNC_M_PMM_READ_LATENCY", "PerPkg": "1", "ScaleUnit": "6000000000ns", "UMask": "0x1", "Unit": "iMC" }, For above example, the ratio should be, ratio = (UNC_M_PMM_RPQ_OCCUPANCY.ALL / UNC_M_PMM_RPQ_INSERTS / UNC_M_CLOCKTICKS) * 6000000000 But in current code, the ratio is not scaled ( * 6000000000) With this patch, the ratio is scaled and the unit (ns) is printed. For example, # 219.4 ns UNC_M_PMM_READ_LATENCY Signed-off-by: Jin Yao <yao.jin@linux.intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20190828055932.8269-4-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/metricgroup.h')
-rw-r--r--tools/perf/util/metricgroup.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/perf/util/metricgroup.h b/tools/perf/util/metricgroup.h
index e5092f6404ae..475c7f912864 100644
--- a/tools/perf/util/metricgroup.h
+++ b/tools/perf/util/metricgroup.h
@@ -20,6 +20,7 @@ struct metric_expr {
struct list_head nd;
const char *metric_expr;
const char *metric_name;
+ const char *metric_unit;
struct evsel **metric_events;
};