bb8dcb4304
Signed-off-by: Pingfan Liu <piliu@redhat.com>
351 lines
16 KiB
Diff
351 lines
16 KiB
Diff
From 9d665e4712f0dfa48603471c51ed3c87441030ad Mon Sep 17 00:00:00 2001
|
|
From: Sandipan Das <sandipan.das@amd.com>
|
|
Date: Tue, 13 Jun 2023 19:21:49 +0530
|
|
Subject: [PATCH 07/15] common: Add exclude guest to platform event config
|
|
|
|
Precise PMU events are currently used for capturing memory
|
|
access statistics. Currently, these events are programmed to
|
|
exclude guests and this does not work well on all platforms
|
|
due to differences in the design of the precise PMU.
|
|
|
|
E.g. precise events are programmed through Instruction Based
|
|
Sampling (IBS) on AMD processors but that PMU does not have
|
|
the ability to ignore guests unlike the Core PMU.
|
|
|
|
Add exclude guest as an additional attribute to the platform
|
|
event config structure so that precise events can be customized
|
|
to work on different platforms.
|
|
|
|
Signed-off-by: Sandipan Das <sandipan.das@amd.com>
|
|
---
|
|
common/include/os/pfwrapper.h | 1 +
|
|
common/include/os/plat.h | 1 +
|
|
common/include/types.h | 1 +
|
|
common/os/os_perf.c | 1 +
|
|
common/os/pfwrapper.c | 2 +-
|
|
powerpc/power8.c | 14 +++++++-------
|
|
powerpc/power9.c | 14 +++++++-------
|
|
x86/bdw.c | 12 ++++++------
|
|
x86/nhm.c | 12 ++++++------
|
|
x86/skl.c | 32 ++++++++++++++++----------------
|
|
x86/snb.c | 12 ++++++------
|
|
x86/wsm.c | 22 +++++++++++-----------
|
|
x86/zen.c | 12 ++++++------
|
|
13 files changed, 70 insertions(+), 66 deletions(-)
|
|
|
|
diff --git a/common/include/os/pfwrapper.h b/common/include/os/pfwrapper.h
|
|
index 414d6af..1864a10 100644
|
|
--- a/common/include/os/pfwrapper.h
|
|
+++ b/common/include/os/pfwrapper.h
|
|
@@ -78,6 +78,7 @@ typedef struct _pf_conf {
|
|
uint64_t config;
|
|
uint64_t config1;
|
|
uint64_t sample_period;
|
|
+ bool exclude_guest;
|
|
} pf_conf_t;
|
|
|
|
typedef struct _pf_profiling_rec {
|
|
diff --git a/common/include/os/plat.h b/common/include/os/plat.h
|
|
index 34535cd..ac4aac8 100644
|
|
--- a/common/include/os/plat.h
|
|
+++ b/common/include/os/plat.h
|
|
@@ -54,6 +54,7 @@ typedef struct _plat_event_config {
|
|
uint64_t other_attr;
|
|
uint64_t extra_value;
|
|
uint64_t sample_period;
|
|
+ bool exclude_guest;
|
|
char desc[PLAT_EVENT_DESC_SIZE];
|
|
} plat_event_config_t;
|
|
|
|
diff --git a/common/include/types.h b/common/include/types.h
|
|
index 3e30f7c..efe3055 100644
|
|
--- a/common/include/types.h
|
|
+++ b/common/include/types.h
|
|
@@ -30,6 +30,7 @@
|
|
#define _NUMATOP_TYPES_H
|
|
|
|
#include <stdint.h>
|
|
+#include <stdbool.h>
|
|
#include "./os/os_types.h"
|
|
#ifdef __powerpc64__
|
|
#include "../../powerpc/include/types.h"
|
|
diff --git a/common/os/os_perf.c b/common/os/os_perf.c
|
|
index f1036a9..44ca43d 100644
|
|
--- a/common/os/os_perf.c
|
|
+++ b/common/os/os_perf.c
|
|
@@ -840,6 +840,7 @@ ll_init(pf_conf_t *conf)
|
|
conf->config = (cfg.config) | (cfg.other_attr << 16);
|
|
conf->config1 = cfg.extra_value;
|
|
conf->sample_period = cfg.sample_period;
|
|
+ conf->exclude_guest = cfg.exclude_guest;
|
|
|
|
/* If sample period is not set, choose a default value */
|
|
if (!cfg.sample_period)
|
|
diff --git a/common/os/pfwrapper.c b/common/os/pfwrapper.c
|
|
index b4c4f17..e08ce07 100644
|
|
--- a/common/os/pfwrapper.c
|
|
+++ b/common/os/pfwrapper.c
|
|
@@ -432,7 +432,7 @@ pf_ll_setup(struct _perf_cpu *cpu, pf_conf_t *conf)
|
|
attr.config1 = conf->config1;
|
|
attr.sample_period = conf->sample_period;
|
|
attr.precise_ip = 1;
|
|
- attr.exclude_guest = 1;
|
|
+ attr.exclude_guest = conf->exclude_guest;
|
|
attr.sample_type = PERF_SAMPLE_TID | PERF_SAMPLE_ADDR | PERF_SAMPLE_CPU |
|
|
PERF_SAMPLE_WEIGHT | PERF_SAMPLE_CALLCHAIN;
|
|
attr.disabled = 1;
|
|
diff --git a/powerpc/power8.c b/powerpc/power8.c
|
|
index a76851d..d8f4e01 100644
|
|
--- a/powerpc/power8.c
|
|
+++ b/powerpc/power8.c
|
|
@@ -38,16 +38,16 @@
|
|
#include "include/power8.h"
|
|
|
|
static plat_event_config_t s_power8_profiling[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_RAW, 0x600f4, 0, 0, 0, "PM_RUN_CYC" },
|
|
- { PERF_TYPE_RAW, 0x4c04c, 0, 0, 0, "PM_DATA_FROM_DMEM" },
|
|
- { PERF_TYPE_RAW, 0x1001e, 0, 0, 0, "PM_CYC" },
|
|
- { PERF_TYPE_RAW, 0x500fa, 0, 0, 0, "PM_RUN_INST_CMPL" },
|
|
- { PERF_TYPE_RAW, 0x2c048, 0, 0, 0, "PM_DATA_FROM_LMEM" },
|
|
- { PERF_TYPE_RAW, 0x3c04a, 0, 0, 0, "PM_DATA_FROM_RMEM" },
|
|
+ { PERF_TYPE_RAW, 0x600f4, 0, 0, 0, 0, "PM_RUN_CYC" },
|
|
+ { PERF_TYPE_RAW, 0x4c04c, 0, 0, 0, 0, "PM_DATA_FROM_DMEM" },
|
|
+ { PERF_TYPE_RAW, 0x1001e, 0, 0, 0, 0, "PM_CYC" },
|
|
+ { PERF_TYPE_RAW, 0x500fa, 0, 0, 0, 0, "PM_RUN_INST_CMPL" },
|
|
+ { PERF_TYPE_RAW, 0x2c048, 0, 0, 0, 0, "PM_DATA_FROM_LMEM" },
|
|
+ { PERF_TYPE_RAW, 0x3c04a, 0, 0, 0, 0, "PM_DATA_FROM_RMEM" },
|
|
};
|
|
|
|
static plat_event_config_t s_power8_ll = {
|
|
- PERF_TYPE_RAW, 0x0000, 0, 0, 0, "PM_SUSPENDED"
|
|
+ PERF_TYPE_RAW, 0x0000, 0, 0, 0, 1, "PM_SUSPENDED"
|
|
};
|
|
|
|
void
|
|
diff --git a/powerpc/power9.c b/powerpc/power9.c
|
|
index 4b0bcfc..9879ec7 100644
|
|
--- a/powerpc/power9.c
|
|
+++ b/powerpc/power9.c
|
|
@@ -38,16 +38,16 @@
|
|
#include "include/power9.h"
|
|
|
|
static plat_event_config_t s_power9_profiling[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_RAW, 0x600f4, 0, 0, 0, "PM_RUN_CYC" },
|
|
- { PERF_TYPE_RAW, 0x4c04c, 0, 0, 0, "PM_DATA_FROM_DMEM" },
|
|
- { PERF_TYPE_RAW, 0x1001e, 0, 0, 0, "PM_CYC" },
|
|
- { PERF_TYPE_RAW, 0x500fa, 0, 0, 0, "PM_RUN_INST_CMPL" },
|
|
- { PERF_TYPE_RAW, 0x2c048, 0, 0, 0, "PM_DATA_FROM_LMEM" },
|
|
- { PERF_TYPE_RAW, 0x3c04a, 0, 0, 0, "PM_DATA_FROM_RMEM" },
|
|
+ { PERF_TYPE_RAW, 0x600f4, 0, 0, 0, 0, "PM_RUN_CYC" },
|
|
+ { PERF_TYPE_RAW, 0x4c04c, 0, 0, 0, 0, "PM_DATA_FROM_DMEM" },
|
|
+ { PERF_TYPE_RAW, 0x1001e, 0, 0, 0, 0, "PM_CYC" },
|
|
+ { PERF_TYPE_RAW, 0x500fa, 0, 0, 0, 0, "PM_RUN_INST_CMPL" },
|
|
+ { PERF_TYPE_RAW, 0x2c048, 0, 0, 0, 0, "PM_DATA_FROM_LMEM" },
|
|
+ { PERF_TYPE_RAW, 0x3c04a, 0, 0, 0, 0, "PM_DATA_FROM_RMEM" },
|
|
};
|
|
|
|
static plat_event_config_t s_power9_ll = {
|
|
- PERF_TYPE_RAW, 0x0000, 0, 0, 0, "PM_SUSPENDED"
|
|
+ PERF_TYPE_RAW, 0x0000, 0, 0, 0, 1, "PM_SUSPENDED"
|
|
};
|
|
|
|
void
|
|
diff --git a/x86/bdw.c b/x86/bdw.c
|
|
index 5640f7b..97eca67 100644
|
|
--- a/x86/bdw.c
|
|
+++ b/x86/bdw.c
|
|
@@ -40,15 +40,15 @@
|
|
#include "include/bdw.h"
|
|
|
|
static plat_event_config_t s_bdw_config[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.core" },
|
|
- { PERF_TYPE_RAW, 0x01B7, 0x53, 0x638000001, 0, "off_core_response_0" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.ref" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "instr_retired.any" },
|
|
- { PERF_TYPE_RAW, 0x01BB, 0x53, 0x604000001, 0, "off_core_response_1" }
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.core" },
|
|
+ { PERF_TYPE_RAW, 0x01B7, 0x53, 0x638000001, 0, 0, "off_core_response_0" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.ref" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "instr_retired.any" },
|
|
+ { PERF_TYPE_RAW, 0x01BB, 0x53, 0x604000001, 0, 0, "off_core_response_1" }
|
|
};
|
|
|
|
static plat_event_config_t s_bdw_ll = {
|
|
- PERF_TYPE_RAW, 0x01CD, 0x53, LL_THRESH, 0, "mem_trans_retired.latency_above_threshold"
|
|
+ PERF_TYPE_RAW, 0x01CD, 0x53, LL_THRESH, 0, 1, "mem_trans_retired.latency_above_threshold"
|
|
};
|
|
|
|
void
|
|
diff --git a/x86/nhm.c b/x86/nhm.c
|
|
index d29d396..cf65705 100644
|
|
--- a/x86/nhm.c
|
|
+++ b/x86/nhm.c
|
|
@@ -41,15 +41,15 @@
|
|
#include "include/nhm.h"
|
|
|
|
static plat_event_config_t s_nhm_profiling[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.core" },
|
|
- { PERF_TYPE_RAW, 0x01B7, 0x53, 0x2011, 0, "off_core_response_0" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.ref" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "instr_retired.any" },
|
|
- { PERF_TYPE_RAW, INVALID_CODE_UMASK, 0, 0, 0, "off_core_response_1" }
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.core" },
|
|
+ { PERF_TYPE_RAW, 0x01B7, 0x53, 0x2011, 0, 0, "off_core_response_0" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.ref" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "instr_retired.any" },
|
|
+ { PERF_TYPE_RAW, INVALID_CODE_UMASK, 0, 0, 0, 0, "off_core_response_1" }
|
|
};
|
|
|
|
static plat_event_config_t s_nhm_ll = {
|
|
- PERF_TYPE_RAW, 0x100B, 0x53, LL_THRESH, 0, "mem_inst_retired.latency_above_threshold"
|
|
+ PERF_TYPE_RAW, 0x100B, 0x53, LL_THRESH, 0, 1, "mem_inst_retired.latency_above_threshold"
|
|
};
|
|
|
|
static void
|
|
diff --git a/x86/skl.c b/x86/skl.c
|
|
index 6f81298..a7bbc14 100644
|
|
--- a/x86/skl.c
|
|
+++ b/x86/skl.c
|
|
@@ -40,31 +40,31 @@
|
|
#include "include/skl.h"
|
|
|
|
static plat_event_config_t s_skl_config[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.core" },
|
|
- { PERF_TYPE_RAW, 0x01B7, 0x53, 0x638000001, 0, "off_core_response_0" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.ref" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "instr_retired.any" },
|
|
- { PERF_TYPE_RAW, 0x01BB, 0x53, 0x1f84000001, 0, "off_core_response_1" }
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.core" },
|
|
+ { PERF_TYPE_RAW, 0x01B7, 0x53, 0x638000001, 0, 0, "off_core_response_0" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.ref" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "instr_retired.any" },
|
|
+ { PERF_TYPE_RAW, 0x01BB, 0x53, 0x1f84000001, 0, 0, "off_core_response_1" }
|
|
};
|
|
|
|
static plat_event_config_t s_icx_config[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.core" },
|
|
- { PERF_TYPE_RAW, 0x01B7, 0x53, 0x730000001, 0, "off_core_response_0" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.ref" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "instr_retired.any" },
|
|
- { PERF_TYPE_RAW, 0x01BB, 0x53, 0x104000001, 0, "off_core_response_1" }
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.core" },
|
|
+ { PERF_TYPE_RAW, 0x01B7, 0x53, 0x730000001, 0, 0, "off_core_response_0" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.ref" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "instr_retired.any" },
|
|
+ { PERF_TYPE_RAW, 0x01BB, 0x53, 0x104000001, 0, 0, "off_core_response_1" }
|
|
};
|
|
|
|
static plat_event_config_t s_spr_config[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.core" },
|
|
- { PERF_TYPE_RAW, 0x012A, 0x53, 0x730000001, 0, "off_core_response_0" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.ref" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "instr_retired.any" },
|
|
- { PERF_TYPE_RAW, 0x012B, 0x53, 0x104000001, 0, "off_core_response_1" }
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.core" },
|
|
+ { PERF_TYPE_RAW, 0x012A, 0x53, 0x730000001, 0, 0, "off_core_response_0" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.ref" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "instr_retired.any" },
|
|
+ { PERF_TYPE_RAW, 0x012B, 0x53, 0x104000001, 0, 0, "off_core_response_1" }
|
|
};
|
|
|
|
static plat_event_config_t s_skl_ll = {
|
|
- PERF_TYPE_RAW, 0x01CD, 0x53, LL_THRESH, 0, "mem_trans_retired.latency_above_threshold"
|
|
+ PERF_TYPE_RAW, 0x01CD, 0x53, LL_THRESH, 0, 1, "mem_trans_retired.latency_above_threshold"
|
|
};
|
|
|
|
void
|
|
diff --git a/x86/snb.c b/x86/snb.c
|
|
index 3d3185b..135ee1c 100644
|
|
--- a/x86/snb.c
|
|
+++ b/x86/snb.c
|
|
@@ -40,15 +40,15 @@
|
|
#include "include/snb.h"
|
|
|
|
static plat_event_config_t s_snb_ep_config[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.core" },
|
|
- { PERF_TYPE_RAW, 0x01B7, 0x53, 0x67f800001, 0, "off_core_response_0" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.ref" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "instr_retired.any" },
|
|
- { PERF_TYPE_RAW, 0x01BB, 0x53, 0x600400001, 0, "off_core_response_1" }
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.core" },
|
|
+ { PERF_TYPE_RAW, 0x01B7, 0x53, 0x67f800001, 0, 0, "off_core_response_0" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.ref" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "instr_retired.any" },
|
|
+ { PERF_TYPE_RAW, 0x01BB, 0x53, 0x600400001, 0, 0, "off_core_response_1" }
|
|
};
|
|
|
|
static plat_event_config_t s_snb_ll = {
|
|
- PERF_TYPE_RAW, 0x01CD, 0x53, LL_THRESH, 0, "mem_trans_retired.latency_above_threshold"
|
|
+ PERF_TYPE_RAW, 0x01CD, 0x53, LL_THRESH, 0, 1, "mem_trans_retired.latency_above_threshold"
|
|
};
|
|
|
|
void
|
|
diff --git a/x86/wsm.c b/x86/wsm.c
|
|
index 16f68e4..7b122fd 100644
|
|
--- a/x86/wsm.c
|
|
+++ b/x86/wsm.c
|
|
@@ -40,23 +40,23 @@
|
|
#include "include/wsm.h"
|
|
|
|
static plat_event_config_t s_wsmex_profiling[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.core" },
|
|
- { PERF_TYPE_RAW, 0x01B7, 0x53, 0x2011, 0, "off_core_response_0" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.ref" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "instr_retired.any" },
|
|
- { PERF_TYPE_RAW, 0x01BB, 0x53, 0x5011, 0, "off_core_response_1" }
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.core" },
|
|
+ { PERF_TYPE_RAW, 0x01B7, 0x53, 0x2011, 0, 0, "off_core_response_0" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.ref" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "instr_retired.any" },
|
|
+ { PERF_TYPE_RAW, 0x01BB, 0x53, 0x5011, 0, 0, "off_core_response_1" }
|
|
};
|
|
|
|
static plat_event_config_t s_wsmep_profiling[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.core" },
|
|
- { PERF_TYPE_RAW, 0x01B7, 0x53, 0x2011, 0, "off_core_response_0" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, "cpu_clk_unhalted.ref" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "instr_retired.any" },
|
|
- { PERF_TYPE_RAW, 0x01BB, 0x53, 0x5011, 0, "off_core_response_1" }
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.core" },
|
|
+ { PERF_TYPE_RAW, 0x01B7, 0x53, 0x2011, 0, 0, "off_core_response_0" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, 0, 0, "cpu_clk_unhalted.ref" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "instr_retired.any" },
|
|
+ { PERF_TYPE_RAW, 0x01BB, 0x53, 0x5011, 0, 0, "off_core_response_1" }
|
|
};
|
|
|
|
static plat_event_config_t s_wsm_ll = {
|
|
- PERF_TYPE_RAW, 0x100B, 0x53, LL_THRESH, 0, "mem_inst_retired.latency_above_threshold"
|
|
+ PERF_TYPE_RAW, 0x100B, 0x53, LL_THRESH, 0, 1, "mem_inst_retired.latency_above_threshold"
|
|
};
|
|
|
|
void
|
|
diff --git a/x86/zen.c b/x86/zen.c
|
|
index c153a1a..2f851a2 100644
|
|
--- a/x86/zen.c
|
|
+++ b/x86/zen.c
|
|
@@ -40,15 +40,15 @@
|
|
#include "include/zen.h"
|
|
|
|
static plat_event_config_t s_zen_config[PERF_COUNT_NUM] = {
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0, 0, 0, "LsNotHaltedCyc" },
|
|
- { PERF_TYPE_RAW, 0x0000000000004043, 0, 0, 0, "LsDmndFillsFromSys.DRAM_IO_Far" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0, 0, 0, "LsNotHaltedCyc" },
|
|
- { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, "ExRetOps" },
|
|
- { PERF_TYPE_RAW, 0x0000000000000843, 0, 0, 0, "LsDmndFillsFromSys.DRAM_IO_Near" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0, 0, 0, 0, "LsNotHaltedCyc" },
|
|
+ { PERF_TYPE_RAW, 0x0000000000004043, 0, 0, 0, 0, "LsDmndFillsFromSys.DRAM_IO_Far" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES, 0, 0, 0, 0, "LsNotHaltedCyc" },
|
|
+ { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, 0, 0, "ExRetOps" },
|
|
+ { PERF_TYPE_RAW, 0x0000000000000843, 0, 0, 0, 0, "LsDmndFillsFromSys.DRAM_IO_Near" },
|
|
};
|
|
|
|
static plat_event_config_t s_zen_ll = {
|
|
- PERF_TYPE_RAW, 0, 0, 0, 0, "Unsupported"
|
|
+ PERF_TYPE_RAW, 0, 0, 0, 0, 0, "Unsupported"
|
|
};
|
|
|
|
void
|
|
--
|
|
2.31.1
|
|
|