libkperf/0006-adapt-events.patch
2024-11-19 20:29:04 +08:00

111 lines
4.0 KiB
Diff

From 2e4695bff251032e023098e4ec25ff43d6690faf Mon Sep 17 00:00:00 2001
From: eho <2220386943@qq.com>
Date: Sat, 12 Oct 2024 15:47:28 +0800
Subject: [PATCH 06/20] adapt events
---
pmu/pfm/core.cpp | 40 ++++++++++++++++++++++++++++++++++++++++
pmu/pmu_event_list.cpp | 2 +-
util/cpu_map.cpp | 3 ++-
util/cpu_map.h | 1 +
4 files changed, 44 insertions(+), 2 deletions(-)
diff --git a/pmu/pfm/core.cpp b/pmu/pfm/core.cpp
index 0ab4607..55e5921 100644
--- a/pmu/pfm/core.cpp
+++ b/pmu/pfm/core.cpp
@@ -833,11 +833,51 @@ const std::unordered_map<std::string, KUNPENG_PMU::CoreConfig> HIP_F_CORE_PMU_MA
SOFTWARE_EVENT::TASK_CLOCK,
};
+const std::unordered_map<std::string, KUNPENG_PMU::CoreConfig> HIP_E_CORE_PMU_MAP{
+ HARDWARE_EVENT::BRANCH_MISSES,
+ HARDWARE_EVENT::CACHE_MISSES,
+ HARDWARE_EVENT::CACHE_REFERENCES,
+ HARDWARE_EVENT::CPU_CYCLES,
+ HARDWARE_EVENT::CYCLES,
+ HARDWARE_EVENT::INSTRUCTIONS,
+ HARDWARE_EVENT::STALLED_CYCLES_BACKEND,
+ HARDWARE_EVENT::STALLED_CYCLES_FRONTED,
+ HARDWARE_EVENT::IDLE_CYCLES_BACKEND,
+ HARDWARE_EVENT::IDLE_CYCLES_FRONTED,
+ HW_CACHE_EVENT::L1_DCACHE_LOAD_MISSES,
+ HW_CACHE_EVENT::L1_DCACHE_LOADS,
+ HW_CACHE_EVENT::L1_ICACHE_LOAD_MISSES,
+ HW_CACHE_EVENT::L1_ICACHE_LOADS,
+ HW_CACHE_EVENT::LLC_LOAD_MISSES,
+ HW_CACHE_EVENT::LLC_LOADS,
+ HW_CACHE_EVENT::BRANCH_LOAD_MISSES,
+ HW_CACHE_EVENT::BRANCH_LOADS,
+ HW_CACHE_EVENT::DTLB_LOAD_MISSES,
+ HW_CACHE_EVENT::DTLB_LOADS,
+ HW_CACHE_EVENT::ITLB_LOAD_MISSES,
+ HW_CACHE_EVENT::ITLB_LOADS,
+ SOFTWARE_EVENT::ALIGNMENT_FAULTS,
+ SOFTWARE_EVENT::BPF_OUTPUT,
+ SOFTWARE_EVENT::CONTEXT_SWITCHES,
+ SOFTWARE_EVENT::CS,
+ SOFTWARE_EVENT::CPU_CLOCK,
+ SOFTWARE_EVENT::CPU_MIGRATIONS,
+ SOFTWARE_EVENT::MIGRATIONS,
+ SOFTWARE_EVENT::DUMMY,
+ SOFTWARE_EVENT::EMULATION_FAULTS,
+ SOFTWARE_EVENT::MAJOR_FAULTS,
+ SOFTWARE_EVENT::MINOR_FAULTS,
+ SOFTWARE_EVENT::PAGE_FAULTS,
+ SOFTWARE_EVENT::FAULTS,
+ SOFTWARE_EVENT::TASK_CLOCK,
+};
+
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},
{CHIP_TYPE::HIPF, HIP_F_CORE_PMU_MAP},
+ {CHIP_TYPE::HIPE, HIP_E_CORE_PMU_MAP},
};
static struct PmuEvt* ConstructPmuEvtFromCore(KUNPENG_PMU::CoreConfig config, int collectType)
diff --git a/pmu/pmu_event_list.cpp b/pmu/pmu_event_list.cpp
index c4cf226..b96e500 100644
--- a/pmu/pmu_event_list.cpp
+++ b/pmu/pmu_event_list.cpp
@@ -37,7 +37,7 @@ static const string EVENT_DIR = "/events/";
static std::mutex pmuEventListMtx;
-static vector<const char*> supportDevPrefixs = {"hisi", "smmuv3"};
+static vector<const char*> supportDevPrefixs = {"hisi", "smmuv3", "hns3"};
static vector<const char*> uncoreEventList;
static vector<const char*> traceEventList;
diff --git a/util/cpu_map.cpp b/util/cpu_map.cpp
index 7ed2cd2..ec8f077 100644
--- a/util/cpu_map.cpp
+++ b/util/cpu_map.cpp
@@ -33,7 +33,8 @@ static CHIP_TYPE g_chipType = CHIP_TYPE::UNDEFINED_TYPE;
static map<string, CHIP_TYPE> chipMap = {{"0x00000000481fd010", HIPA},
{"0x00000000480fd020", HIPB},
{"0x00000000480fd030", HIPC},
- {"0x00000000480fd220", HIPF}};
+ {"0x00000000480fd220", HIPF},
+ {"0x00000000480fd450", HIPE},};
static inline bool ReadCpuPackageId(int coreId, CpuTopology* cpuTopo)
{
diff --git a/util/cpu_map.h b/util/cpu_map.h
index de38af5..58c61b8 100644
--- a/util/cpu_map.h
+++ b/util/cpu_map.h
@@ -26,6 +26,7 @@ enum CHIP_TYPE {
HIPB = 2,
HIPC = 3,
HIPF = 4,
+ HIPE = 5,
};
struct CpuTopology* GetCpuTopology(int coreId);
--
2.43.0