• Jin Yao's avatar
    perf metricgroup: Scale the metric result · 287f2649
    Jin Yao authored
    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: default avatarJin 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.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    287f2649
stat-shadow.c 29.3 KB