diff --git a/pmu/pfm/core.cpp b/pmu/pfm/core.cpp index 5b0e61b13834a13ab5a5705febb23bb363d48443..ff95b5a26cc70fcf771c0e59746bf363842eaaab 100644 --- a/pmu/pfm/core.cpp +++ b/pmu/pfm/core.cpp @@ -24,179 +24,179 @@ static CHIP_TYPE g_chipType = UNDEFINED_TYPE; const std::unordered_map HIP_A_CORE_PMU_MAP{ { - KUNPENG_PMU::HIP_A::CORE::BRANCH_MISSES, + KUNPENG_PMU::COMMON::BRANCH_MISSES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_MISSES, - KUNPENG_PMU::HIP_A::CORE::BRANCH_MISSES + KUNPENG_PMU::COMMON::BRANCH_MISSES } }, { - KUNPENG_PMU::HIP_A::CORE::BUS_CYCLES, + KUNPENG_PMU::COMMON::BUS_CYCLES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_BUS_CYCLES, - KUNPENG_PMU::HIP_A::CORE::BUS_CYCLES + KUNPENG_PMU::COMMON::BUS_CYCLES } }, { - KUNPENG_PMU::HIP_A::CORE::CACHE_MISSES, + KUNPENG_PMU::COMMON::CACHE_MISSES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES, - KUNPENG_PMU::HIP_A::CORE::CACHE_MISSES + KUNPENG_PMU::COMMON::CACHE_MISSES } }, { - KUNPENG_PMU::HIP_A::CORE::CACHE_REFERENCES, + KUNPENG_PMU::COMMON::CACHE_REFERENCES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES, - KUNPENG_PMU::HIP_A::CORE::CACHE_REFERENCES + KUNPENG_PMU::COMMON::CACHE_REFERENCES } }, { - KUNPENG_PMU::HIP_A::CORE::CPU_CYCLES, + KUNPENG_PMU::COMMON::CPU_CYCLES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, - KUNPENG_PMU::HIP_A::CORE::CPU_CYCLES + KUNPENG_PMU::COMMON::CPU_CYCLES } }, { - KUNPENG_PMU::HIP_A::CORE::CYCLES, + KUNPENG_PMU::COMMON::CYCLES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, - KUNPENG_PMU::HIP_A::CORE::CYCLES + KUNPENG_PMU::COMMON::CYCLES } }, { - KUNPENG_PMU::HIP_A::CORE::INSTRUCTIONS, + KUNPENG_PMU::COMMON::INSTRUCTIONS, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, - KUNPENG_PMU::HIP_A::CORE::INSTRUCTIONS + KUNPENG_PMU::COMMON::INSTRUCTIONS } }, { - KUNPENG_PMU::HIP_A::CORE::STALLED_CYCLES_BACKEND, + KUNPENG_PMU::COMMON::STALLED_CYCLES_BACKEND, { PERF_TYPE_HARDWARE, 0x8, - KUNPENG_PMU::HIP_A::CORE::STALLED_CYCLES_BACKEND + KUNPENG_PMU::COMMON::STALLED_CYCLES_BACKEND } }, { - KUNPENG_PMU::HIP_A::CORE::STALLED_CYCLES_FRONTEND, + KUNPENG_PMU::COMMON::STALLED_CYCLES_FRONTEND, { PERF_TYPE_HARDWARE, 0x7, - KUNPENG_PMU::HIP_A::CORE::STALLED_CYCLES_FRONTEND + KUNPENG_PMU::COMMON::STALLED_CYCLES_FRONTEND } }, { - KUNPENG_PMU::HIP_A::CORE::L1_DCACHE_LOAD_MISSES, + KUNPENG_PMU::COMMON::L1_DCACHE_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10000, - KUNPENG_PMU::HIP_A::CORE::L1_DCACHE_LOAD_MISSES + KUNPENG_PMU::COMMON::L1_DCACHE_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_A::CORE::IDLE_CYCLES_BACKEND, + KUNPENG_PMU::COMMON::IDLE_CYCLES_BACKEND, { PERF_TYPE_HARDWARE, 0x8, - KUNPENG_PMU::HIP_A::CORE::IDLE_CYCLES_BACKEND + KUNPENG_PMU::COMMON::IDLE_CYCLES_BACKEND } }, { - KUNPENG_PMU::HIP_A::CORE::L1_ICACHE_LOAD_MISSES, + KUNPENG_PMU::COMMON::L1_ICACHE_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10001, - KUNPENG_PMU::HIP_A::CORE::L1_ICACHE_LOAD_MISSES + KUNPENG_PMU::COMMON::L1_ICACHE_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_A::CORE::IDLE_CYCLES_FRONTEND, + KUNPENG_PMU::COMMON::IDLE_CYCLES_FRONTEND, { PERF_TYPE_HARDWARE, 0x7, - KUNPENG_PMU::HIP_A::CORE::IDLE_CYCLES_FRONTEND + KUNPENG_PMU::COMMON::IDLE_CYCLES_FRONTEND } }, { - KUNPENG_PMU::HIP_A::CORE::L1_ICACHE_LOADS, + KUNPENG_PMU::COMMON::L1_ICACHE_LOADS, { PERF_TYPE_HW_CACHE, 0x1, - KUNPENG_PMU::HIP_A::CORE::L1_ICACHE_LOADS + KUNPENG_PMU::COMMON::L1_ICACHE_LOADS } }, { - KUNPENG_PMU::HIP_A::CORE::LLC_LOAD_MISSES, + KUNPENG_PMU::COMMON::LLC_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10002, - KUNPENG_PMU::HIP_A::CORE::LLC_LOAD_MISSES + KUNPENG_PMU::COMMON::LLC_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_A::CORE::LLC_LOADS, + KUNPENG_PMU::COMMON::LLC_LOADS, { PERF_TYPE_HW_CACHE, 0x2, - KUNPENG_PMU::HIP_A::CORE::LLC_LOADS + KUNPENG_PMU::COMMON::LLC_LOADS } }, { - KUNPENG_PMU::HIP_A::CORE::BRANCH_LOAD_MISSES, + KUNPENG_PMU::COMMON::BRANCH_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10005, - KUNPENG_PMU::HIP_A::CORE::BRANCH_LOAD_MISSES + KUNPENG_PMU::COMMON::BRANCH_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_A::CORE::BRANCH_LOADS, + KUNPENG_PMU::COMMON::BRANCH_LOADS, { PERF_TYPE_HW_CACHE, 0x5, - KUNPENG_PMU::HIP_A::CORE::BRANCH_LOADS + KUNPENG_PMU::COMMON::BRANCH_LOADS } }, { - KUNPENG_PMU::HIP_A::CORE::DTLB_LOAD_MISSES, + KUNPENG_PMU::COMMON::DTLB_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10003, - KUNPENG_PMU::HIP_A::CORE::DTLB_LOAD_MISSES + KUNPENG_PMU::COMMON::DTLB_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_A::CORE::DTLB_LOADS, + KUNPENG_PMU::COMMON::DTLB_LOADS, { PERF_TYPE_HW_CACHE, 0x3, - KUNPENG_PMU::HIP_A::CORE::DTLB_LOADS + KUNPENG_PMU::COMMON::DTLB_LOADS } }, { - KUNPENG_PMU::HIP_A::CORE::ITLB_LOAD_MISSES, + KUNPENG_PMU::COMMON::ITLB_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10004, - KUNPENG_PMU::HIP_A::CORE::ITLB_LOAD_MISSES + KUNPENG_PMU::COMMON::ITLB_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_A::CORE::ITLB_LOADS, + KUNPENG_PMU::COMMON::ITLB_LOADS, { PERF_TYPE_HW_CACHE, 0x4, - KUNPENG_PMU::HIP_A::CORE::ITLB_LOADS + KUNPENG_PMU::COMMON::ITLB_LOADS } }, { @@ -435,171 +435,342 @@ const std::unordered_map HIP_A_CORE_PMU_MA const std::unordered_map HIP_B_CORE_PMU_MAP{ { - KUNPENG_PMU::HIP_B::CORE::BRANCH_MISSES, + KUNPENG_PMU::COMMON::BRANCH_MISSES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_MISSES, - KUNPENG_PMU::HIP_B::CORE::BRANCH_MISSES + KUNPENG_PMU::COMMON::BRANCH_MISSES } }, { - KUNPENG_PMU::HIP_B::CORE::CACHE_MISSES, + KUNPENG_PMU::COMMON::CACHE_MISSES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES, - KUNPENG_PMU::HIP_B::CORE::CACHE_MISSES + KUNPENG_PMU::COMMON::CACHE_MISSES } }, { - KUNPENG_PMU::HIP_B::CORE::CACHE_REFERENCES, + KUNPENG_PMU::COMMON::CACHE_REFERENCES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES, - KUNPENG_PMU::HIP_B::CORE::CACHE_REFERENCES + KUNPENG_PMU::COMMON::CACHE_REFERENCES } }, { - KUNPENG_PMU::HIP_B::CORE::CPU_CYCLES, + KUNPENG_PMU::COMMON::CPU_CYCLES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, - KUNPENG_PMU::HIP_B::CORE::CPU_CYCLES + KUNPENG_PMU::COMMON::CPU_CYCLES } }, { - KUNPENG_PMU::HIP_B::CORE::CYCLES, + KUNPENG_PMU::COMMON::CYCLES, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, - KUNPENG_PMU::HIP_B::CORE::CYCLES + KUNPENG_PMU::COMMON::CYCLES } }, { - KUNPENG_PMU::HIP_B::CORE::INSTRUCTIONS, + KUNPENG_PMU::COMMON::INSTRUCTIONS, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, - KUNPENG_PMU::HIP_B::CORE::INSTRUCTIONS + KUNPENG_PMU::COMMON::INSTRUCTIONS } }, { - KUNPENG_PMU::HIP_B::CORE::STALLED_CYCLES_BACKEND, + KUNPENG_PMU::COMMON::STALLED_CYCLES_BACKEND, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_BACKEND, - KUNPENG_PMU::HIP_B::CORE::STALLED_CYCLES_BACKEND + KUNPENG_PMU::COMMON::STALLED_CYCLES_BACKEND } }, { - KUNPENG_PMU::HIP_B::CORE::STALLED_CYCLES_FRONTEND, + KUNPENG_PMU::COMMON::STALLED_CYCLES_FRONTEND, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_FRONTEND, - KUNPENG_PMU::HIP_B::CORE::STALLED_CYCLES_FRONTEND + KUNPENG_PMU::COMMON::STALLED_CYCLES_FRONTEND } }, { - KUNPENG_PMU::HIP_B::CORE::L1_DCACHE_LOAD_MISSES, + KUNPENG_PMU::COMMON::L1_DCACHE_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10000, - KUNPENG_PMU::HIP_B::CORE::L1_DCACHE_LOAD_MISSES + KUNPENG_PMU::COMMON::L1_DCACHE_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_B::CORE::IDLE_CYCLES_BACKEND, + KUNPENG_PMU::COMMON::IDLE_CYCLES_BACKEND, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_BACKEND, - KUNPENG_PMU::HIP_B::CORE::IDLE_CYCLES_BACKEND + KUNPENG_PMU::COMMON::IDLE_CYCLES_BACKEND } }, { - KUNPENG_PMU::HIP_B::CORE::L1_ICACHE_LOAD_MISSES, + KUNPENG_PMU::COMMON::L1_ICACHE_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10001, - KUNPENG_PMU::HIP_B::CORE::L1_ICACHE_LOAD_MISSES + KUNPENG_PMU::COMMON::L1_ICACHE_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_B::CORE::IDLE_CYCLES_FRONTEND, + KUNPENG_PMU::COMMON::IDLE_CYCLES_FRONTEND, { PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_FRONTEND, - KUNPENG_PMU::HIP_B::CORE::IDLE_CYCLES_FRONTEND + KUNPENG_PMU::COMMON::IDLE_CYCLES_FRONTEND } }, { - KUNPENG_PMU::HIP_B::CORE::L1_ICACHE_LOADS, + KUNPENG_PMU::COMMON::L1_ICACHE_LOADS, { PERF_TYPE_HW_CACHE, 0x1, - KUNPENG_PMU::HIP_B::CORE::L1_ICACHE_LOADS + KUNPENG_PMU::COMMON::L1_ICACHE_LOADS } }, { - KUNPENG_PMU::HIP_B::CORE::LLC_LOAD_MISSES, + KUNPENG_PMU::COMMON::LLC_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10002, - KUNPENG_PMU::HIP_B::CORE::LLC_LOAD_MISSES + KUNPENG_PMU::COMMON::LLC_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_B::CORE::LLC_LOADS, + KUNPENG_PMU::COMMON::LLC_LOADS, { PERF_TYPE_HW_CACHE, 0x2, - KUNPENG_PMU::HIP_B::CORE::LLC_LOADS + KUNPENG_PMU::COMMON::LLC_LOADS } }, { - KUNPENG_PMU::HIP_B::CORE::BRANCH_LOAD_MISSES, + KUNPENG_PMU::COMMON::BRANCH_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10005, - KUNPENG_PMU::HIP_B::CORE::BRANCH_LOAD_MISSES + KUNPENG_PMU::COMMON::BRANCH_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_B::CORE::BRANCH_LOADS, + KUNPENG_PMU::COMMON::BRANCH_LOADS, { PERF_TYPE_HW_CACHE, 0x5, - KUNPENG_PMU::HIP_B::CORE::BRANCH_LOADS + KUNPENG_PMU::COMMON::BRANCH_LOADS } }, { - KUNPENG_PMU::HIP_B::CORE::DTLB_LOAD_MISSES, + KUNPENG_PMU::COMMON::DTLB_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10003, - KUNPENG_PMU::HIP_B::CORE::DTLB_LOAD_MISSES + KUNPENG_PMU::COMMON::DTLB_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_B::CORE::DTLB_LOADS, + KUNPENG_PMU::COMMON::DTLB_LOADS, { PERF_TYPE_HW_CACHE, 0x3, - KUNPENG_PMU::HIP_B::CORE::DTLB_LOADS + KUNPENG_PMU::COMMON::DTLB_LOADS } }, { - KUNPENG_PMU::HIP_B::CORE::ITLB_LOAD_MISSES, + KUNPENG_PMU::COMMON::ITLB_LOAD_MISSES, { PERF_TYPE_HW_CACHE, 0x10004, - KUNPENG_PMU::HIP_B::CORE::ITLB_LOAD_MISSES + KUNPENG_PMU::COMMON::ITLB_LOAD_MISSES } }, { - KUNPENG_PMU::HIP_B::CORE::ITLB_LOADS, + KUNPENG_PMU::COMMON::ITLB_LOADS, { PERF_TYPE_HW_CACHE, 0x4, - KUNPENG_PMU::HIP_B::CORE::ITLB_LOADS + KUNPENG_PMU::COMMON::ITLB_LOADS + } + }, +}; + +const std::unordered_map HIP_C_CORE_PMU_MAP{ + { + KUNPENG_PMU::COMMON::BRANCH_MISSES, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_BRANCH_MISSES, + KUNPENG_PMU::COMMON::BRANCH_MISSES + } + }, + { + KUNPENG_PMU::COMMON::CACHE_MISSES, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_CACHE_MISSES, + KUNPENG_PMU::COMMON::CACHE_MISSES + } + }, + { + KUNPENG_PMU::COMMON::CACHE_REFERENCES, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_CACHE_REFERENCES, + KUNPENG_PMU::COMMON::CACHE_REFERENCES + } + }, + { + KUNPENG_PMU::COMMON::CPU_CYCLES, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_CPU_CYCLES, + KUNPENG_PMU::COMMON::CPU_CYCLES + } + }, + { + KUNPENG_PMU::COMMON::CYCLES, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_CPU_CYCLES, + KUNPENG_PMU::COMMON::CYCLES + } + }, + { + KUNPENG_PMU::COMMON::INSTRUCTIONS, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_INSTRUCTIONS, + KUNPENG_PMU::COMMON::INSTRUCTIONS + } + }, + { + KUNPENG_PMU::COMMON::STALLED_CYCLES_BACKEND, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_STALLED_CYCLES_BACKEND, + KUNPENG_PMU::COMMON::STALLED_CYCLES_BACKEND + } + }, + { + KUNPENG_PMU::COMMON::STALLED_CYCLES_FRONTEND, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND, + KUNPENG_PMU::COMMON::STALLED_CYCLES_FRONTEND + } + }, + { + KUNPENG_PMU::COMMON::L1_DCACHE_LOAD_MISSES, + { + PERF_TYPE_HW_CACHE, + 0x10000, + KUNPENG_PMU::COMMON::L1_DCACHE_LOAD_MISSES + } + }, + { + KUNPENG_PMU::COMMON::IDLE_CYCLES_BACKEND, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_STALLED_CYCLES_BACKEND, + KUNPENG_PMU::COMMON::IDLE_CYCLES_BACKEND + } + }, + { + KUNPENG_PMU::COMMON::L1_ICACHE_LOAD_MISSES, + { + PERF_TYPE_HW_CACHE, + 0x10001, + KUNPENG_PMU::COMMON::L1_ICACHE_LOAD_MISSES + } + }, + { + KUNPENG_PMU::COMMON::IDLE_CYCLES_FRONTEND, + { + PERF_TYPE_HARDWARE, + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND, + KUNPENG_PMU::COMMON::IDLE_CYCLES_FRONTEND + } + }, + { + KUNPENG_PMU::COMMON::L1_ICACHE_LOADS, + { + PERF_TYPE_HW_CACHE, + 0x1, + KUNPENG_PMU::COMMON::L1_ICACHE_LOADS + } + }, + { + KUNPENG_PMU::COMMON::LLC_LOAD_MISSES, + { + PERF_TYPE_HW_CACHE, + 0x10002, + KUNPENG_PMU::COMMON::LLC_LOAD_MISSES + } + }, + { + KUNPENG_PMU::COMMON::LLC_LOADS, + { + PERF_TYPE_HW_CACHE, + 0x2, + KUNPENG_PMU::COMMON::LLC_LOADS + } + }, + { + KUNPENG_PMU::COMMON::BRANCH_LOAD_MISSES, + { + PERF_TYPE_HW_CACHE, + 0x10005, + KUNPENG_PMU::COMMON::BRANCH_LOAD_MISSES + } + }, + { + KUNPENG_PMU::COMMON::BRANCH_LOADS, + { + PERF_TYPE_HW_CACHE, + 0x5, + KUNPENG_PMU::COMMON::BRANCH_LOADS + } + }, + { + KUNPENG_PMU::COMMON::DTLB_LOAD_MISSES, + { + PERF_TYPE_HW_CACHE, + 0x10003, + KUNPENG_PMU::COMMON::DTLB_LOAD_MISSES + } + }, + { + KUNPENG_PMU::COMMON::DTLB_LOADS, + { + PERF_TYPE_HW_CACHE, + 0x3, + KUNPENG_PMU::COMMON::DTLB_LOADS + } + }, + { + KUNPENG_PMU::COMMON::ITLB_LOAD_MISSES, + { + PERF_TYPE_HW_CACHE, + 0x10004, + KUNPENG_PMU::COMMON::ITLB_LOAD_MISSES + } + }, + { + KUNPENG_PMU::COMMON::ITLB_LOADS, + { + PERF_TYPE_HW_CACHE, + 0x4, + KUNPENG_PMU::COMMON::ITLB_LOADS } }, }; @@ -607,6 +778,7 @@ const std::unordered_map HIP_B_CORE_PMU_MA const KUNPENG_PMU::CORE_EVT_MAP KUNPENG_PMU::CORE_EVENT_MAP = { {CHIP_TYPE::HIPA, HIP_A_CORE_PMU_MAP}, {CHIP_TYPE::HIPB, HIP_B_CORE_PMU_MAP}, + {CHIP_TYPE::HIPC, HIP_C_CORE_PMU_MAP}, }; static struct PmuEvt* ConstructPmuEvtFromCore(KUNPENG_PMU::CoreConfig config, int collectType) diff --git a/pmu/pfm/pfm_name.cpp b/pmu/pfm/pfm_name.cpp index e99d74baa00dfd9c1e25ade1573039d0a0af9ff0..ffe7df2be957d24d5de606c91f2c15ffab8630e3 100644 --- a/pmu/pfm/pfm_name.cpp +++ b/pmu/pfm/pfm_name.cpp @@ -21,28 +21,28 @@ /** * CORE events for HIP_A */ -const char* KUNPENG_PMU::HIP_A::CORE::BRANCH_MISSES = "branch-misses"; -const char* KUNPENG_PMU::HIP_A::CORE::BUS_CYCLES = "bus-cycles"; -const char* KUNPENG_PMU::HIP_A::CORE::CACHE_MISSES = "cache-misses"; -const char* KUNPENG_PMU::HIP_A::CORE::CACHE_REFERENCES = "cache-references"; -const char* KUNPENG_PMU::HIP_A::CORE::CPU_CYCLES = "cpu-cycles"; -const char* KUNPENG_PMU::HIP_A::CORE::CYCLES = "cycles"; -const char* KUNPENG_PMU::HIP_A::CORE::INSTRUCTIONS = "instructions"; -const char* KUNPENG_PMU::HIP_A::CORE::STALLED_CYCLES_BACKEND = "stalled-cycles-backend"; -const char* KUNPENG_PMU::HIP_A::CORE::STALLED_CYCLES_FRONTEND = "stalled-cycles-frontend"; -const char* KUNPENG_PMU::HIP_A::CORE::L1_DCACHE_LOAD_MISSES = "L1-dcache-load-misses"; -const char* KUNPENG_PMU::HIP_A::CORE::IDLE_CYCLES_BACKEND = "idle-cycles-backend"; -const char* KUNPENG_PMU::HIP_A::CORE::L1_ICACHE_LOAD_MISSES = "L1-icache-load-misses"; -const char* KUNPENG_PMU::HIP_A::CORE::IDLE_CYCLES_FRONTEND = "idle-cycles-frontend"; -const char* KUNPENG_PMU::HIP_A::CORE::L1_ICACHE_LOADS = "L1-icache-loads"; -const char* KUNPENG_PMU::HIP_A::CORE::LLC_LOAD_MISSES = "LLC-load-misses"; -const char* KUNPENG_PMU::HIP_A::CORE::LLC_LOADS = "LLC-loads"; -const char* KUNPENG_PMU::HIP_A::CORE::BRANCH_LOAD_MISSES = "branch-load-misses"; -const char* KUNPENG_PMU::HIP_A::CORE::BRANCH_LOADS = "branch-loads"; -const char* KUNPENG_PMU::HIP_A::CORE::DTLB_LOAD_MISSES = "dTLB-load-misses"; -const char* KUNPENG_PMU::HIP_A::CORE::DTLB_LOADS = "dTLB-loads"; -const char* KUNPENG_PMU::HIP_A::CORE::ITLB_LOAD_MISSES = "iTLB-load-misses"; -const char* KUNPENG_PMU::HIP_A::CORE::ITLB_LOADS = "iTLB-loads"; +const char* KUNPENG_PMU::COMMON::BRANCH_MISSES = "branch-misses"; +const char* KUNPENG_PMU::COMMON::BUS_CYCLES = "bus-cycles"; +const char* KUNPENG_PMU::COMMON::CACHE_MISSES = "cache-misses"; +const char* KUNPENG_PMU::COMMON::CACHE_REFERENCES = "cache-references"; +const char* KUNPENG_PMU::COMMON::CPU_CYCLES = "cpu-cycles"; +const char* KUNPENG_PMU::COMMON::CYCLES = "cycles"; +const char* KUNPENG_PMU::COMMON::INSTRUCTIONS = "instructions"; +const char* KUNPENG_PMU::COMMON::STALLED_CYCLES_BACKEND = "stalled-cycles-backend"; +const char* KUNPENG_PMU::COMMON::STALLED_CYCLES_FRONTEND = "stalled-cycles-frontend"; +const char* KUNPENG_PMU::COMMON::L1_DCACHE_LOAD_MISSES = "L1-dcache-load-misses"; +const char* KUNPENG_PMU::COMMON::IDLE_CYCLES_BACKEND = "idle-cycles-backend"; +const char* KUNPENG_PMU::COMMON::L1_ICACHE_LOAD_MISSES = "L1-icache-load-misses"; +const char* KUNPENG_PMU::COMMON::IDLE_CYCLES_FRONTEND = "idle-cycles-frontend"; +const char* KUNPENG_PMU::COMMON::L1_ICACHE_LOADS = "L1-icache-loads"; +const char* KUNPENG_PMU::COMMON::LLC_LOAD_MISSES = "LLC-load-misses"; +const char* KUNPENG_PMU::COMMON::LLC_LOADS = "LLC-loads"; +const char* KUNPENG_PMU::COMMON::BRANCH_LOAD_MISSES = "branch-load-misses"; +const char* KUNPENG_PMU::COMMON::BRANCH_LOADS = "branch-loads"; +const char* KUNPENG_PMU::COMMON::DTLB_LOAD_MISSES = "dTLB-load-misses"; +const char* KUNPENG_PMU::COMMON::DTLB_LOADS = "dTLB-loads"; +const char* KUNPENG_PMU::COMMON::ITLB_LOAD_MISSES = "iTLB-load-misses"; +const char* KUNPENG_PMU::COMMON::ITLB_LOADS = "iTLB-loads"; const char* KUNPENG_PMU::HIP_A::CORE::L1D_CACHE_RD = "l1d_cache_rd"; const char* KUNPENG_PMU::HIP_A::CORE::L1D_CACHE_WR = "l1d_cache_wr"; const char* KUNPENG_PMU::HIP_A::CORE::L1D_CACHE_REFILL_RD = "l1d_cache_refill_rd"; @@ -72,28 +72,3 @@ const char* KUNPENG_PMU::HIP_A::CORE::EXE_STALL_CYCLE = "exe_stall_cycle"; const char* KUNPENG_PMU::HIP_A::CORE::MEM_STALL_ANYLOAD = "mem_stall_anyload"; const char* KUNPENG_PMU::HIP_A::CORE::MEM_STALL_L1MISS = "mem_stall_l1miss"; const char* KUNPENG_PMU::HIP_A::CORE::MEM_STALL_L2MISS = "mem_stall_l2miss"; - -/** - * CORE events for HIP_B - */ -const char* KUNPENG_PMU::HIP_B::CORE::BRANCH_MISSES = "branch-misses"; -const char* KUNPENG_PMU::HIP_B::CORE::CACHE_MISSES = "cache-misses"; -const char* KUNPENG_PMU::HIP_B::CORE::CACHE_REFERENCES = "cache-references"; -const char* KUNPENG_PMU::HIP_B::CORE::CPU_CYCLES = "cpu-cycles"; -const char* KUNPENG_PMU::HIP_B::CORE::CYCLES = "cycles"; -const char* KUNPENG_PMU::HIP_B::CORE::INSTRUCTIONS = "instructions"; -const char* KUNPENG_PMU::HIP_B::CORE::STALLED_CYCLES_BACKEND = "stalled-cycles-backend"; -const char* KUNPENG_PMU::HIP_B::CORE::STALLED_CYCLES_FRONTEND = "stalled-cycles-frontend"; -const char* KUNPENG_PMU::HIP_B::CORE::L1_DCACHE_LOAD_MISSES = "L1-dcache-load-misses"; -const char* KUNPENG_PMU::HIP_B::CORE::IDLE_CYCLES_BACKEND = "idle-cycles-backend"; -const char* KUNPENG_PMU::HIP_B::CORE::L1_ICACHE_LOAD_MISSES = "L1-icache-load-misses"; -const char* KUNPENG_PMU::HIP_B::CORE::IDLE_CYCLES_FRONTEND = "idle-cycles-frontend"; -const char* KUNPENG_PMU::HIP_B::CORE::L1_ICACHE_LOADS = "L1-icache-loads"; -const char* KUNPENG_PMU::HIP_B::CORE::LLC_LOAD_MISSES = "LLC-load-misses"; -const char* KUNPENG_PMU::HIP_B::CORE::LLC_LOADS = "LLC-loads"; -const char* KUNPENG_PMU::HIP_B::CORE::BRANCH_LOAD_MISSES = "branch-load-misses"; -const char* KUNPENG_PMU::HIP_B::CORE::BRANCH_LOADS = "branch-loads"; -const char* KUNPENG_PMU::HIP_B::CORE::DTLB_LOAD_MISSES = "dTLB-load-misses"; -const char* KUNPENG_PMU::HIP_B::CORE::DTLB_LOADS = "dTLB-loads"; -const char* KUNPENG_PMU::HIP_B::CORE::ITLB_LOAD_MISSES = "iTLB-load-misses"; -const char* KUNPENG_PMU::HIP_B::CORE::ITLB_LOADS = "iTLB-loads"; \ No newline at end of file diff --git a/pmu/pfm/pfm_name.h b/pmu/pfm/pfm_name.h index dab16b4fe0b1944bf2f58094a7cc9390d44ebccb..33991d2ae946c75769fda54049045ee9f9487aac 100644 --- a/pmu/pfm/pfm_name.h +++ b/pmu/pfm/pfm_name.h @@ -20,8 +20,7 @@ #include namespace KUNPENG_PMU { -namespace HIP_A { -namespace CORE { +namespace COMMON { extern const char* BRANCH_MISSES; extern const char* BUS_CYCLES; extern const char* CACHE_MISSES; @@ -44,6 +43,9 @@ extern const char* DTLB_LOAD_MISSES; extern const char* DTLB_LOADS; extern const char* ITLB_LOAD_MISSES; extern const char* ITLB_LOADS; +} +namespace HIP_A { +namespace CORE { extern const char* L1D_CACHE_RD; extern const char* L1D_CACHE_WR; extern const char* L1D_CACHE_REFILL_RD; @@ -76,33 +78,5 @@ extern const char* MEM_STALL_L2MISS; } // namespace CORE } // namespace HIP_A - -namespace HIP_B { -namespace CORE { -extern const char* BRANCH_MISSES; -extern const char* CACHE_MISSES; -extern const char* CACHE_REFERENCES; -extern const char* CPU_CYCLES; -extern const char* CYCLES; -extern const char* INSTRUCTIONS; -extern const char* STALLED_CYCLES_BACKEND; -extern const char* STALLED_CYCLES_FRONTEND; -extern const char* L1_DCACHE_LOAD_MISSES; -extern const char* IDLE_CYCLES_BACKEND; -extern const char* L1_ICACHE_LOAD_MISSES; -extern const char* IDLE_CYCLES_FRONTEND; -extern const char* L1_ICACHE_LOADS; -extern const char* LLC_LOAD_MISSES; -extern const char* LLC_LOADS; -extern const char* BRANCH_LOAD_MISSES; -extern const char* BRANCH_LOADS; -extern const char* DTLB_LOAD_MISSES; -extern const char* DTLB_LOADS; -extern const char* ITLB_LOAD_MISSES; -extern const char* ITLB_LOADS; -} // namespace CORE - -} // namespace HIP_B - } // namespace KUNPENG_PMU #endif \ No newline at end of file diff --git a/util/cpu_map.cpp b/util/cpu_map.cpp index 4443fb80b9247a042f6cc752788f2e15e93e548a..f085fd62702b3c26dfd192cdd04b543c275afd5d 100644 --- a/util/cpu_map.cpp +++ b/util/cpu_map.cpp @@ -27,11 +27,12 @@ using namespace std; static const std::string CPU_TOPOLOGY_PACKAGE_ID = "/sys/bus/cpu/devices/cpu%d/topology/physical_package_id"; static const std::string MIDR_EL1 = "/sys/devices/system/cpu/cpu0/regs/identification/midr_el1"; -static const std::string HIPA_ID = "0x00000000481fd010"; -static const std::string HIPB_ID = "0x00000000480fd020"; static constexpr int PATH_LEN = 256; static CHIP_TYPE g_chipType = CHIP_TYPE::UNDEFINED_TYPE; +static map chipMap = {{"0x00000000481fd010", HIPA}, + {"0x00000000480fd020", HIPB}, + {"0x00000000480fd030", HIPC}}; static inline bool ReadCpuPackageId(int coreId, CpuTopology* cpuTopo) { @@ -84,14 +85,12 @@ bool InitCpuType() std::ifstream cpuFile(MIDR_EL1); std::string cpuId; cpuFile >> cpuId; - if (cpuId.compare(HIPA_ID) == 0) { - g_chipType = CHIP_TYPE::HIPA; - } else if (cpuId.compare(HIPB_ID) == 0) { - g_chipType = CHIP_TYPE::HIPB; - } else { + auto findCpu = chipMap.find(cpuId); + if (findCpu == chipMap.end()) { pcerr::New(LIBPERF_ERR_CHIP_TYPE_INVALID, "invalid chip type"); return false; } + g_chipType = findCpu->second; return true; } diff --git a/util/cpu_map.h b/util/cpu_map.h index ed0309d7357133bca7f21157a13e21b438abcd5e..2786fde3a3ab7c7510d8124dfc3b809cbde51416 100644 --- a/util/cpu_map.h +++ b/util/cpu_map.h @@ -24,6 +24,7 @@ enum CHIP_TYPE { UNDEFINED_TYPE = 0, HIPA = 1, HIPB = 2, + HIPC = 3, }; struct CpuTopology* GetCpuTopology(int coreId);