diff --git a/docs/Details_Usage.md b/docs/Details_Usage.md index 51560acd01b62fc5df98f115e591aeaf859712bd..d2bfa43873749a5fd93eaa866793ee7467c62dc8 100644 --- a/docs/Details_Usage.md +++ b/docs/Details_Usage.md @@ -930,8 +930,8 @@ PmuDeviceData *devData = nullptr; auto len = PmuGetDevMetric(oriData, oriLen, devAttr, 1, &devData); // devData的长度等于cluster个数 for (int i=0;i L3_CLOCK_NS {{CHIP_TYPE::HIPB, 0.3448275862}}; + const UNCORE_METRIC_MAP UNCORE_METRIC_CONFIG_MAP = { {CHIP_TYPE::HIPA, HIP_A_UNCORE_METRIC_MAP}, {CHIP_TYPE::HIPB, HIP_B_UNCORE_METRIC_MAP}, @@ -333,7 +335,7 @@ namespace KUNPENG_PMU { { CHIP_TYPE chipType = GetCpuType(); if (UNCORE_METRIC_CONFIG_MAP.find(chipType) == UNCORE_METRIC_CONFIG_MAP.end()) { - return {}; + return {}; } return UNCORE_METRIC_CONFIG_MAP.at(chipType); } @@ -958,6 +960,17 @@ namespace KUNPENG_PMU { return 64 * rawCount; } + static uint64_t L3Lat(const uint64_t rawCount) + { + const CHIP_TYPE chipType = GetCpuType(); + auto iter = L3_CLOCK_NS.find(chipType); + uint64_t count = rawCount; + if (iter != L3_CLOCK_NS.end()) { + count = rawCount * iter->second; + } + return count; + } + static PmuMetricMode GetMetricMode(const PmuDeviceMetric &metric) { switch(metric) { @@ -1308,7 +1321,8 @@ namespace KUNPENG_PMU { map computeMetricMap = {{PMU_DDR_READ_BW, DDRBw}, {PMU_DDR_WRITE_BW, DDRBw}, - {PMU_L3_TRAFFIC, L3Bw}}; + {PMU_L3_TRAFFIC, L3Bw}, + {PMU_L3_LAT, L3Lat}}; map aggregateMap = { {PMU_DDR_READ_BW, AggregateByChannel}, {PMU_DDR_WRITE_BW, AggregateByChannel}, diff --git a/third_party/elfin-parser b/third_party/elfin-parser index fb404f74414a5e07f4317ca865dc5ff04b2c5639..13e57e29400a3a7bb5cb27c364b4b73468b4050f 160000 --- a/third_party/elfin-parser +++ b/third_party/elfin-parser @@ -1 +1 @@ -Subproject commit fb404f74414a5e07f4317ca865dc5ff04b2c5639 +Subproject commit 13e57e29400a3a7bb5cb27c364b4b73468b4050f