* [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12
@ 2025-04-25 3:38 Yicong Yang
2025-04-25 3:38 ` [PATCH v2 1/3] arm64: cputype: Add cputype definition for HIP12 Yicong Yang
` (4 more replies)
0 siblings, 5 replies; 14+ messages in thread
From: Yicong Yang @ 2025-04-25 3:38 UTC (permalink / raw)
To: acme, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users
Cc: jonathan.cameron, hejunhao3, linuxarm, wangyushan12, caijingtao,
xueshan2, prime.zeng, yangyicong
From: Yicong Yang <yangyicong@hisilicon.com>
Add support for Data Source packet on HIP12. Support counting L2 HITM for c2c
statistic since it was missing.
Change since v2:
- split the kernel/userspace changes into different patch
- revise some mem_snoop decoding according to the discussion
- count missing L2 HITM for c2c statistic
Link: https://lore.kernel.org/linux-perf-users/20250408122809.37884-1-yangyicong@huawei.com/
Yicong Yang (3):
arm64: cputype: Add cputype definition for HIP12
perf arm-spe: Add support for SPE Data Source packet on HiSilicon
HIP12
perf mem: Count L2 HITM for c2c statistic
arch/arm64/include/asm/cputype.h | 2 +
tools/arch/arm64/include/asm/cputype.h | 2 +
.../util/arm-spe-decoder/arm-spe-decoder.h | 17 ++++
tools/perf/util/arm-spe.c | 96 +++++++++++++++++++
tools/perf/util/mem-events.c | 5 +-
5 files changed, 121 insertions(+), 1 deletion(-)
--
2.24.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 1/3] arm64: cputype: Add cputype definition for HIP12
2025-04-25 3:38 [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
@ 2025-04-25 3:38 ` Yicong Yang
2025-05-22 9:13 ` Yicong Yang
2025-04-25 3:38 ` [PATCH v2 2/3] perf arm-spe: Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
` (3 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Yicong Yang @ 2025-04-25 3:38 UTC (permalink / raw)
To: acme, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users
Cc: jonathan.cameron, hejunhao3, linuxarm, wangyushan12, caijingtao,
xueshan2, prime.zeng, yangyicong
From: Yicong Yang <yangyicong@hisilicon.com>
Add MIDR encoding for HiSilicon HIP12 which is used on HiSilicon
HIP12 SoCs.
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
---
arch/arm64/include/asm/cputype.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
index d1cc0571798b..36c5bbfbb6e9 100644
--- a/arch/arm64/include/asm/cputype.h
+++ b/arch/arm64/include/asm/cputype.h
@@ -133,6 +133,7 @@
#define HISI_CPU_PART_TSV110 0xD01
#define HISI_CPU_PART_HIP09 0xD02
+#define HISI_CPU_PART_HIP12 0xD06
#define APPLE_CPU_PART_M1_ICESTORM 0x022
#define APPLE_CPU_PART_M1_FIRESTORM 0x023
@@ -220,6 +221,7 @@
#define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
#define MIDR_HISI_HIP09 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP09)
+#define MIDR_HISI_HIP12 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP12)
#define MIDR_APPLE_M1_ICESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM)
#define MIDR_APPLE_M1_FIRESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM)
#define MIDR_APPLE_M1_ICESTORM_PRO MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM_PRO)
--
2.24.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 2/3] perf arm-spe: Add support for SPE Data Source packet on HiSilicon HIP12
2025-04-25 3:38 [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
2025-04-25 3:38 ` [PATCH v2 1/3] arm64: cputype: Add cputype definition for HIP12 Yicong Yang
@ 2025-04-25 3:38 ` Yicong Yang
2025-05-21 10:35 ` Leo Yan
2025-04-25 3:38 ` [PATCH v2 3/3] perf mem: Count L2 HITM for c2c statistic Yicong Yang
` (2 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Yicong Yang @ 2025-04-25 3:38 UTC (permalink / raw)
To: acme, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users
Cc: jonathan.cameron, hejunhao3, linuxarm, wangyushan12, caijingtao,
xueshan2, prime.zeng, yangyicong
From: Yicong Yang <yangyicong@hisilicon.com>
Add data source encoding for HiSilicon HIP12 and coresponding mapping
to the perf's memory data source. This will help to synthesize the data
and support upper layer tools like perf-mem and perf-c2c.
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
---
tools/arch/arm64/include/asm/cputype.h | 2 +
.../util/arm-spe-decoder/arm-spe-decoder.h | 17 ++++
tools/perf/util/arm-spe.c | 96 +++++++++++++++++++
3 files changed, 115 insertions(+)
diff --git a/tools/arch/arm64/include/asm/cputype.h b/tools/arch/arm64/include/asm/cputype.h
index 488f8e751349..9a5d85cfd1fb 100644
--- a/tools/arch/arm64/include/asm/cputype.h
+++ b/tools/arch/arm64/include/asm/cputype.h
@@ -129,6 +129,7 @@
#define FUJITSU_CPU_PART_A64FX 0x001
#define HISI_CPU_PART_TSV110 0xD01
+#define HISI_CPU_PART_HIP12 0xD06
#define APPLE_CPU_PART_M1_ICESTORM 0x022
#define APPLE_CPU_PART_M1_FIRESTORM 0x023
@@ -202,6 +203,7 @@
#define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)
#define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
+#define MIDR_HISI_HIP12 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP12)
#define MIDR_APPLE_M1_ICESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM)
#define MIDR_APPLE_M1_FIRESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM)
#define MIDR_APPLE_M1_ICESTORM_PRO MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM_PRO)
diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h
index 5d232188643b..881d9f29c138 100644
--- a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h
+++ b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h
@@ -82,6 +82,23 @@ enum arm_spe_ampereone_data_source {
ARM_SPE_AMPEREONE_L2D = 0x9,
};
+enum arm_spe_hisi_hip_data_source {
+ ARM_SPE_HISI_HIP_PEER_CPU = 0,
+ ARM_SPE_HISI_HIP_PEER_CPU_HITM = 1,
+ ARM_SPE_HISI_HIP_L3 = 2,
+ ARM_SPE_HISI_HIP_L3_HITM = 3,
+ ARM_SPE_HISI_HIP_PEER_CLUSTER = 4,
+ ARM_SPE_HISI_HIP_PEER_CLUSTER_HITM = 5,
+ ARM_SPE_HISI_HIP_REMOTE_SOCKET = 6,
+ ARM_SPE_HISI_HIP_REMOTE_SOCKET_HITM = 7,
+ ARM_SPE_HISI_HIP_LOCAL_MEM = 8,
+ ARM_SPE_HISI_HIP_REMOTE_MEM = 9,
+ ARM_SPE_HISI_HIP_NC_DEV = 13,
+ ARM_SPE_HISI_HIP_L2 = 16,
+ ARM_SPE_HISI_HIP_L2_HITM = 17,
+ ARM_SPE_HISI_HIP_L1 = 18,
+};
+
struct arm_spe_record {
enum arm_spe_sample_type type;
int err;
diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c
index 2a9775649cc2..d46e0cccac99 100644
--- a/tools/perf/util/arm-spe.c
+++ b/tools/perf/util/arm-spe.c
@@ -571,6 +571,11 @@ static const struct midr_range ampereone_ds_encoding_cpus[] = {
{},
};
+static const struct midr_range hisi_hip_ds_encoding_cpus[] = {
+ MIDR_ALL_VERSIONS(MIDR_HISI_HIP12),
+ {},
+};
+
static void arm_spe__sample_flags(struct arm_spe_queue *speq)
{
const struct arm_spe_record *record = &speq->decoder->record;
@@ -718,9 +723,100 @@ static void arm_spe__synth_data_source_ampereone(const struct arm_spe_record *re
arm_spe__synth_data_source_common(&common_record, data_src);
}
+static void arm_spe__synth_data_source_hisi_hip(const struct arm_spe_record *record,
+ union perf_mem_data_src *data_src)
+{
+ /* Use common synthesis method to handle store operations */
+ if (record->op & ARM_SPE_OP_ST) {
+ arm_spe__synth_data_source_common(record, data_src);
+ return;
+ }
+
+ switch (record->source) {
+ case ARM_SPE_HISI_HIP_PEER_CPU:
+ data_src->mem_lvl = PERF_MEM_LVL_L2 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L2;
+ data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
+ break;
+ case ARM_SPE_HISI_HIP_PEER_CPU_HITM:
+ data_src->mem_lvl = PERF_MEM_LVL_L2 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L2;
+ data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
+ data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
+ break;
+ case ARM_SPE_HISI_HIP_L3:
+ data_src->mem_lvl = PERF_MEM_LVL_L3 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L3;
+ data_src->mem_snoop = PERF_MEM_SNOOP_HIT;
+ break;
+ case ARM_SPE_HISI_HIP_L3_HITM:
+ data_src->mem_lvl = PERF_MEM_LVL_L3 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L3;
+ data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
+ break;
+ case ARM_SPE_HISI_HIP_PEER_CLUSTER:
+ data_src->mem_lvl = PERF_MEM_LVL_REM_CCE1 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L3;
+ data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
+ break;
+ case ARM_SPE_HISI_HIP_PEER_CLUSTER_HITM:
+ data_src->mem_lvl = PERF_MEM_LVL_REM_CCE1 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L3;
+ data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
+ data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
+ break;
+ case ARM_SPE_HISI_HIP_REMOTE_SOCKET:
+ data_src->mem_lvl = PERF_MEM_LVL_REM_CCE2;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_ANY_CACHE;
+ data_src->mem_remote = PERF_MEM_REMOTE_REMOTE;
+ data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
+ break;
+ case ARM_SPE_HISI_HIP_REMOTE_SOCKET_HITM:
+ data_src->mem_lvl = PERF_MEM_LVL_REM_CCE2;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_ANY_CACHE;
+ data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
+ data_src->mem_remote = PERF_MEM_REMOTE_REMOTE;
+ data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
+ break;
+ case ARM_SPE_HISI_HIP_LOCAL_MEM:
+ data_src->mem_lvl = PERF_MEM_LVL_LOC_RAM | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_RAM;
+ data_src->mem_snoop = PERF_MEM_SNOOP_NONE;
+ break;
+ case ARM_SPE_HISI_HIP_REMOTE_MEM:
+ data_src->mem_lvl = PERF_MEM_LVL_REM_RAM1 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_RAM;
+ data_src->mem_remote = PERF_MEM_REMOTE_REMOTE;
+ break;
+ case ARM_SPE_HISI_HIP_NC_DEV:
+ data_src->mem_lvl = PERF_MEM_LVL_IO | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_IO;
+ data_src->mem_snoop = PERF_MEM_SNOOP_NONE;
+ break;
+ case ARM_SPE_HISI_HIP_L2:
+ data_src->mem_lvl = PERF_MEM_LVL_L2 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L2;
+ data_src->mem_snoop = PERF_MEM_SNOOP_NONE;
+ break;
+ case ARM_SPE_HISI_HIP_L2_HITM:
+ data_src->mem_lvl = PERF_MEM_LVL_L2 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L2;
+ data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
+ break;
+ case ARM_SPE_HISI_HIP_L1:
+ data_src->mem_lvl = PERF_MEM_LVL_L1 | PERF_MEM_LVL_HIT;
+ data_src->mem_lvl_num = PERF_MEM_LVLNUM_L1;
+ data_src->mem_snoop = PERF_MEM_SNOOP_NONE;
+ break;
+ default:
+ break;
+ }
+}
+
static const struct data_source_handle data_source_handles[] = {
DS(common_ds_encoding_cpus, data_source_common),
DS(ampereone_ds_encoding_cpus, data_source_ampereone),
+ DS(hisi_hip_ds_encoding_cpus, data_source_hisi_hip),
};
static void arm_spe__synth_memory_level(const struct arm_spe_record *record,
--
2.24.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 3/3] perf mem: Count L2 HITM for c2c statistic
2025-04-25 3:38 [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
2025-04-25 3:38 ` [PATCH v2 1/3] arm64: cputype: Add cputype definition for HIP12 Yicong Yang
2025-04-25 3:38 ` [PATCH v2 2/3] perf arm-spe: Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
@ 2025-04-25 3:38 ` Yicong Yang
2025-05-21 10:37 ` Leo Yan
2025-05-14 3:38 ` [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
2025-05-22 10:50 ` Will Deacon
4 siblings, 1 reply; 14+ messages in thread
From: Yicong Yang @ 2025-04-25 3:38 UTC (permalink / raw)
To: acme, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users
Cc: jonathan.cameron, hejunhao3, linuxarm, wangyushan12, caijingtao,
xueshan2, prime.zeng, yangyicong
From: Yicong Yang <yangyicong@hisilicon.com>
L2 HITM is not counted in c2c statistic decoding. Count it for lcl_hitm
like how we handle L2 Peer snoop.
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
---
tools/perf/util/mem-events.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c
index 884d9aebce91..a384a866a562 100644
--- a/tools/perf/util/mem-events.c
+++ b/tools/perf/util/mem-events.c
@@ -680,7 +680,10 @@ do { \
if (lvl & P(LVL, LFB)) stats->ld_fbhit++;
if (lvl & P(LVL, L1 )) stats->ld_l1hit++;
if (lvl & P(LVL, L2)) {
- stats->ld_l2hit++;
+ if (snoop & P(SNOOP, HITM))
+ HITM_INC(lcl_hitm);
+ else
+ stats->ld_l2hit++;
if (snoopx & P(SNOOPX, PEER))
PEER_INC(lcl_peer);
--
2.24.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12
2025-04-25 3:38 [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
` (2 preceding siblings ...)
2025-04-25 3:38 ` [PATCH v2 3/3] perf mem: Count L2 HITM for c2c statistic Yicong Yang
@ 2025-05-14 3:38 ` Yicong Yang
2025-05-21 14:49 ` Arnaldo Carvalho de Melo
2025-05-22 10:50 ` Will Deacon
4 siblings, 1 reply; 14+ messages in thread
From: Yicong Yang @ 2025-05-14 3:38 UTC (permalink / raw)
To: acme, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users
Cc: yangyicong, jonathan.cameron, hejunhao3, linuxarm, wangyushan12,
caijingtao, xueshan2, prime.zeng
a gentle ping on this..
Thanks.
On 2025/4/25 11:38, Yicong Yang wrote:
> From: Yicong Yang <yangyicong@hisilicon.com>
>
> Add support for Data Source packet on HIP12. Support counting L2 HITM for c2c
> statistic since it was missing.
>
> Change since v2:
> - split the kernel/userspace changes into different patch
> - revise some mem_snoop decoding according to the discussion
> - count missing L2 HITM for c2c statistic
> Link: https://lore.kernel.org/linux-perf-users/20250408122809.37884-1-yangyicong@huawei.com/
>
> Yicong Yang (3):
> arm64: cputype: Add cputype definition for HIP12
> perf arm-spe: Add support for SPE Data Source packet on HiSilicon
> HIP12
> perf mem: Count L2 HITM for c2c statistic
>
> arch/arm64/include/asm/cputype.h | 2 +
> tools/arch/arm64/include/asm/cputype.h | 2 +
> .../util/arm-spe-decoder/arm-spe-decoder.h | 17 ++++
> tools/perf/util/arm-spe.c | 96 +++++++++++++++++++
> tools/perf/util/mem-events.c | 5 +-
> 5 files changed, 121 insertions(+), 1 deletion(-)
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/3] perf arm-spe: Add support for SPE Data Source packet on HiSilicon HIP12
2025-04-25 3:38 ` [PATCH v2 2/3] perf arm-spe: Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
@ 2025-05-21 10:35 ` Leo Yan
0 siblings, 0 replies; 14+ messages in thread
From: Leo Yan @ 2025-05-21 10:35 UTC (permalink / raw)
To: Yicong Yang
Cc: acme, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users, jonathan.cameron, hejunhao3,
linuxarm, wangyushan12, caijingtao, xueshan2, prime.zeng,
yangyicong
On Fri, Apr 25, 2025 at 11:38:44AM +0800, Yicong Yang wrote:
> From: Yicong Yang <yangyicong@hisilicon.com>
>
> Add data source encoding for HiSilicon HIP12 and coresponding mapping
> to the perf's memory data source. This will help to synthesize the data
> and support upper layer tools like perf-mem and perf-c2c.
>
> Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Reviewed-by: Leo Yan <leo.yan@arm.com>
> ---
> tools/arch/arm64/include/asm/cputype.h | 2 +
> .../util/arm-spe-decoder/arm-spe-decoder.h | 17 ++++
> tools/perf/util/arm-spe.c | 96 +++++++++++++++++++
> 3 files changed, 115 insertions(+)
>
> diff --git a/tools/arch/arm64/include/asm/cputype.h b/tools/arch/arm64/include/asm/cputype.h
> index 488f8e751349..9a5d85cfd1fb 100644
> --- a/tools/arch/arm64/include/asm/cputype.h
> +++ b/tools/arch/arm64/include/asm/cputype.h
> @@ -129,6 +129,7 @@
> #define FUJITSU_CPU_PART_A64FX 0x001
>
> #define HISI_CPU_PART_TSV110 0xD01
> +#define HISI_CPU_PART_HIP12 0xD06
>
> #define APPLE_CPU_PART_M1_ICESTORM 0x022
> #define APPLE_CPU_PART_M1_FIRESTORM 0x023
> @@ -202,6 +203,7 @@
> #define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)
> #define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
> #define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
> +#define MIDR_HISI_HIP12 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP12)
> #define MIDR_APPLE_M1_ICESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM)
> #define MIDR_APPLE_M1_FIRESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM)
> #define MIDR_APPLE_M1_ICESTORM_PRO MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM_PRO)
> diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h
> index 5d232188643b..881d9f29c138 100644
> --- a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h
> +++ b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h
> @@ -82,6 +82,23 @@ enum arm_spe_ampereone_data_source {
> ARM_SPE_AMPEREONE_L2D = 0x9,
> };
>
> +enum arm_spe_hisi_hip_data_source {
> + ARM_SPE_HISI_HIP_PEER_CPU = 0,
> + ARM_SPE_HISI_HIP_PEER_CPU_HITM = 1,
> + ARM_SPE_HISI_HIP_L3 = 2,
> + ARM_SPE_HISI_HIP_L3_HITM = 3,
> + ARM_SPE_HISI_HIP_PEER_CLUSTER = 4,
> + ARM_SPE_HISI_HIP_PEER_CLUSTER_HITM = 5,
> + ARM_SPE_HISI_HIP_REMOTE_SOCKET = 6,
> + ARM_SPE_HISI_HIP_REMOTE_SOCKET_HITM = 7,
> + ARM_SPE_HISI_HIP_LOCAL_MEM = 8,
> + ARM_SPE_HISI_HIP_REMOTE_MEM = 9,
> + ARM_SPE_HISI_HIP_NC_DEV = 13,
> + ARM_SPE_HISI_HIP_L2 = 16,
> + ARM_SPE_HISI_HIP_L2_HITM = 17,
> + ARM_SPE_HISI_HIP_L1 = 18,
> +};
> +
> struct arm_spe_record {
> enum arm_spe_sample_type type;
> int err;
> diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c
> index 2a9775649cc2..d46e0cccac99 100644
> --- a/tools/perf/util/arm-spe.c
> +++ b/tools/perf/util/arm-spe.c
> @@ -571,6 +571,11 @@ static const struct midr_range ampereone_ds_encoding_cpus[] = {
> {},
> };
>
> +static const struct midr_range hisi_hip_ds_encoding_cpus[] = {
> + MIDR_ALL_VERSIONS(MIDR_HISI_HIP12),
> + {},
> +};
> +
> static void arm_spe__sample_flags(struct arm_spe_queue *speq)
> {
> const struct arm_spe_record *record = &speq->decoder->record;
> @@ -718,9 +723,100 @@ static void arm_spe__synth_data_source_ampereone(const struct arm_spe_record *re
> arm_spe__synth_data_source_common(&common_record, data_src);
> }
>
> +static void arm_spe__synth_data_source_hisi_hip(const struct arm_spe_record *record,
> + union perf_mem_data_src *data_src)
> +{
> + /* Use common synthesis method to handle store operations */
> + if (record->op & ARM_SPE_OP_ST) {
> + arm_spe__synth_data_source_common(record, data_src);
> + return;
> + }
> +
> + switch (record->source) {
> + case ARM_SPE_HISI_HIP_PEER_CPU:
> + data_src->mem_lvl = PERF_MEM_LVL_L2 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L2;
> + data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
> + break;
> + case ARM_SPE_HISI_HIP_PEER_CPU_HITM:
> + data_src->mem_lvl = PERF_MEM_LVL_L2 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L2;
> + data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
> + data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
> + break;
> + case ARM_SPE_HISI_HIP_L3:
> + data_src->mem_lvl = PERF_MEM_LVL_L3 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L3;
> + data_src->mem_snoop = PERF_MEM_SNOOP_HIT;
> + break;
> + case ARM_SPE_HISI_HIP_L3_HITM:
> + data_src->mem_lvl = PERF_MEM_LVL_L3 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L3;
> + data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
> + break;
> + case ARM_SPE_HISI_HIP_PEER_CLUSTER:
> + data_src->mem_lvl = PERF_MEM_LVL_REM_CCE1 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L3;
> + data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
> + break;
> + case ARM_SPE_HISI_HIP_PEER_CLUSTER_HITM:
> + data_src->mem_lvl = PERF_MEM_LVL_REM_CCE1 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L3;
> + data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
> + data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
> + break;
> + case ARM_SPE_HISI_HIP_REMOTE_SOCKET:
> + data_src->mem_lvl = PERF_MEM_LVL_REM_CCE2;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_ANY_CACHE;
> + data_src->mem_remote = PERF_MEM_REMOTE_REMOTE;
> + data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
> + break;
> + case ARM_SPE_HISI_HIP_REMOTE_SOCKET_HITM:
> + data_src->mem_lvl = PERF_MEM_LVL_REM_CCE2;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_ANY_CACHE;
> + data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
> + data_src->mem_remote = PERF_MEM_REMOTE_REMOTE;
> + data_src->mem_snoopx = PERF_MEM_SNOOPX_PEER;
> + break;
> + case ARM_SPE_HISI_HIP_LOCAL_MEM:
> + data_src->mem_lvl = PERF_MEM_LVL_LOC_RAM | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_RAM;
> + data_src->mem_snoop = PERF_MEM_SNOOP_NONE;
> + break;
> + case ARM_SPE_HISI_HIP_REMOTE_MEM:
> + data_src->mem_lvl = PERF_MEM_LVL_REM_RAM1 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_RAM;
> + data_src->mem_remote = PERF_MEM_REMOTE_REMOTE;
> + break;
> + case ARM_SPE_HISI_HIP_NC_DEV:
> + data_src->mem_lvl = PERF_MEM_LVL_IO | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_IO;
> + data_src->mem_snoop = PERF_MEM_SNOOP_NONE;
> + break;
> + case ARM_SPE_HISI_HIP_L2:
> + data_src->mem_lvl = PERF_MEM_LVL_L2 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L2;
> + data_src->mem_snoop = PERF_MEM_SNOOP_NONE;
> + break;
> + case ARM_SPE_HISI_HIP_L2_HITM:
> + data_src->mem_lvl = PERF_MEM_LVL_L2 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L2;
> + data_src->mem_snoop = PERF_MEM_SNOOP_HITM;
> + break;
> + case ARM_SPE_HISI_HIP_L1:
> + data_src->mem_lvl = PERF_MEM_LVL_L1 | PERF_MEM_LVL_HIT;
> + data_src->mem_lvl_num = PERF_MEM_LVLNUM_L1;
> + data_src->mem_snoop = PERF_MEM_SNOOP_NONE;
> + break;
> + default:
> + break;
> + }
> +}
> +
> static const struct data_source_handle data_source_handles[] = {
> DS(common_ds_encoding_cpus, data_source_common),
> DS(ampereone_ds_encoding_cpus, data_source_ampereone),
> + DS(hisi_hip_ds_encoding_cpus, data_source_hisi_hip),
> };
>
> static void arm_spe__synth_memory_level(const struct arm_spe_record *record,
>
> --
> 2.24.0
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/3] perf mem: Count L2 HITM for c2c statistic
2025-04-25 3:38 ` [PATCH v2 3/3] perf mem: Count L2 HITM for c2c statistic Yicong Yang
@ 2025-05-21 10:37 ` Leo Yan
0 siblings, 0 replies; 14+ messages in thread
From: Leo Yan @ 2025-05-21 10:37 UTC (permalink / raw)
To: Yicong Yang
Cc: acme, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users, jonathan.cameron, hejunhao3,
linuxarm, wangyushan12, caijingtao, xueshan2, prime.zeng,
yangyicong
On Fri, Apr 25, 2025 at 11:38:45AM +0800, Yicong Yang wrote:
> From: Yicong Yang <yangyicong@hisilicon.com>
>
> L2 HITM is not counted in c2c statistic decoding. Count it for lcl_hitm
> like how we handle L2 Peer snoop.
>
> Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Reviewed-by: Leo Yan <leo.yan@arm.com>
> ---
> tools/perf/util/mem-events.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c
> index 884d9aebce91..a384a866a562 100644
> --- a/tools/perf/util/mem-events.c
> +++ b/tools/perf/util/mem-events.c
> @@ -680,7 +680,10 @@ do { \
> if (lvl & P(LVL, LFB)) stats->ld_fbhit++;
> if (lvl & P(LVL, L1 )) stats->ld_l1hit++;
> if (lvl & P(LVL, L2)) {
> - stats->ld_l2hit++;
> + if (snoop & P(SNOOP, HITM))
> + HITM_INC(lcl_hitm);
> + else
> + stats->ld_l2hit++;
>
> if (snoopx & P(SNOOPX, PEER))
> PEER_INC(lcl_peer);
>
> --
> 2.24.0
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12
2025-05-14 3:38 ` [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
@ 2025-05-21 14:49 ` Arnaldo Carvalho de Melo
2025-05-22 9:07 ` Yicong Yang
2025-05-26 11:06 ` Yicong Yang
0 siblings, 2 replies; 14+ messages in thread
From: Arnaldo Carvalho de Melo @ 2025-05-21 14:49 UTC (permalink / raw)
To: Yicong Yang
Cc: namhyung, catalin.marinas, will, peterz, mingo, mark.rutland,
jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users, yangyicong, jonathan.cameron,
hejunhao3, linuxarm, wangyushan12, caijingtao, xueshan2,
prime.zeng, Joe Mario
On Wed, May 14, 2025 at 11:38:42AM +0800, Yicong Yang wrote:
> a gentle ping on this..
So this involves both kernel and tooling, as soon as someone merges the
kernel part, I can try and get to the user part,
- Arnaldo
> Thanks.
>
> On 2025/4/25 11:38, Yicong Yang wrote:
> > From: Yicong Yang <yangyicong@hisilicon.com>
> >
> > Add support for Data Source packet on HIP12. Support counting L2 HITM for c2c
> > statistic since it was missing.
> >
> > Change since v2:
> > - split the kernel/userspace changes into different patch
> > - revise some mem_snoop decoding according to the discussion
> > - count missing L2 HITM for c2c statistic
> > Link: https://lore.kernel.org/linux-perf-users/20250408122809.37884-1-yangyicong@huawei.com/
> >
> > Yicong Yang (3):
> > arm64: cputype: Add cputype definition for HIP12
> > perf arm-spe: Add support for SPE Data Source packet on HiSilicon
> > HIP12
> > perf mem: Count L2 HITM for c2c statistic
> >
> > arch/arm64/include/asm/cputype.h | 2 +
> > tools/arch/arm64/include/asm/cputype.h | 2 +
> > .../util/arm-spe-decoder/arm-spe-decoder.h | 17 ++++
> > tools/perf/util/arm-spe.c | 96 +++++++++++++++++++
> > tools/perf/util/mem-events.c | 5 +-
> > 5 files changed, 121 insertions(+), 1 deletion(-)
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12
2025-05-21 14:49 ` Arnaldo Carvalho de Melo
@ 2025-05-22 9:07 ` Yicong Yang
2025-05-26 11:06 ` Yicong Yang
1 sibling, 0 replies; 14+ messages in thread
From: Yicong Yang @ 2025-05-22 9:07 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: yangyicong, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users, jonathan.cameron, hejunhao3,
linuxarm, wangyushan12, caijingtao, xueshan2, prime.zeng,
Joe Mario
On 2025/5/21 22:49, Arnaldo Carvalho de Melo wrote:
> On Wed, May 14, 2025 at 11:38:42AM +0800, Yicong Yang wrote:
>> a gentle ping on this..
>
> So this involves both kernel and tooling, as soon as someone merges the
> kernel part, I can try and get to the user part,
>
the kernel part only add the cputype definition, then the definition update is synchronized in
both userspace/kernel headers. So the changes in the userspace actually have no dependency on
the kernel one.
Thanks.
> - Arnaldo
>
>> Thanks.
>>
>> On 2025/4/25 11:38, Yicong Yang wrote:
>>> From: Yicong Yang <yangyicong@hisilicon.com>
>>>
>>> Add support for Data Source packet on HIP12. Support counting L2 HITM for c2c
>>> statistic since it was missing.
>>>
>>> Change since v2:
>>> - split the kernel/userspace changes into different patch
>>> - revise some mem_snoop decoding according to the discussion
>>> - count missing L2 HITM for c2c statistic
>>> Link: https://lore.kernel.org/linux-perf-users/20250408122809.37884-1-yangyicong@huawei.com/
>>>
>>> Yicong Yang (3):
>>> arm64: cputype: Add cputype definition for HIP12
>>> perf arm-spe: Add support for SPE Data Source packet on HiSilicon
>>> HIP12
>>> perf mem: Count L2 HITM for c2c statistic
>>>
>>> arch/arm64/include/asm/cputype.h | 2 +
>>> tools/arch/arm64/include/asm/cputype.h | 2 +
>>> .../util/arm-spe-decoder/arm-spe-decoder.h | 17 ++++
>>> tools/perf/util/arm-spe.c | 96 +++++++++++++++++++
>>> tools/perf/util/mem-events.c | 5 +-
>>> 5 files changed, 121 insertions(+), 1 deletion(-)
>>>
>
> .
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/3] arm64: cputype: Add cputype definition for HIP12
2025-04-25 3:38 ` [PATCH v2 1/3] arm64: cputype: Add cputype definition for HIP12 Yicong Yang
@ 2025-05-22 9:13 ` Yicong Yang
2025-05-22 10:25 ` Will Deacon
0 siblings, 1 reply; 14+ messages in thread
From: Yicong Yang @ 2025-05-22 9:13 UTC (permalink / raw)
To: catalin.marinas, will
Cc: acme, namhyung, peterz, mingo, mark.rutland, jolsa, john.g.garry,
james.clark, leo.yan, irogers, linux-arm-kernel, linux-perf-users,
yangyicong, jonathan.cameron, hejunhao3, linuxarm, wangyushan12,
caijingtao, xueshan2, prime.zeng
Hi Catalin and Will,
would you mind taking this kernel change? we'll add this in the userspace tools' cputype.h and this
patch is aimed to synchronize the update in the kernel.
Thanks.
On 2025/4/25 11:38, Yicong Yang wrote:
> From: Yicong Yang <yangyicong@hisilicon.com>
>
> Add MIDR encoding for HiSilicon HIP12 which is used on HiSilicon
> HIP12 SoCs.
>
> Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
> ---
> arch/arm64/include/asm/cputype.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
> index d1cc0571798b..36c5bbfbb6e9 100644
> --- a/arch/arm64/include/asm/cputype.h
> +++ b/arch/arm64/include/asm/cputype.h
> @@ -133,6 +133,7 @@
>
> #define HISI_CPU_PART_TSV110 0xD01
> #define HISI_CPU_PART_HIP09 0xD02
> +#define HISI_CPU_PART_HIP12 0xD06
>
> #define APPLE_CPU_PART_M1_ICESTORM 0x022
> #define APPLE_CPU_PART_M1_FIRESTORM 0x023
> @@ -220,6 +221,7 @@
> #define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
> #define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
> #define MIDR_HISI_HIP09 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP09)
> +#define MIDR_HISI_HIP12 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP12)
> #define MIDR_APPLE_M1_ICESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM)
> #define MIDR_APPLE_M1_FIRESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM)
> #define MIDR_APPLE_M1_ICESTORM_PRO MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM_PRO)
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/3] arm64: cputype: Add cputype definition for HIP12
2025-05-22 9:13 ` Yicong Yang
@ 2025-05-22 10:25 ` Will Deacon
0 siblings, 0 replies; 14+ messages in thread
From: Will Deacon @ 2025-05-22 10:25 UTC (permalink / raw)
To: Yicong Yang
Cc: catalin.marinas, acme, namhyung, peterz, mingo, mark.rutland,
jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users, yangyicong, jonathan.cameron,
hejunhao3, linuxarm, wangyushan12, caijingtao, xueshan2,
prime.zeng
On Thu, May 22, 2025 at 05:13:25PM +0800, Yicong Yang wrote:
> would you mind taking this kernel change? we'll add this in the userspace tools' cputype.h and this
> patch is aimed to synchronize the update in the kernel.
Sure, I'll grab it now...
Will
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12
2025-04-25 3:38 [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
` (3 preceding siblings ...)
2025-05-14 3:38 ` [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
@ 2025-05-22 10:50 ` Will Deacon
4 siblings, 0 replies; 14+ messages in thread
From: Will Deacon @ 2025-05-22 10:50 UTC (permalink / raw)
To: acme, namhyung, catalin.marinas, peterz, mingo, mark.rutland,
jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users, Yicong Yang
Cc: kernel-team, Will Deacon, jonathan.cameron, hejunhao3, linuxarm,
wangyushan12, caijingtao, xueshan2, prime.zeng, yangyicong
On Fri, 25 Apr 2025 11:38:42 +0800, Yicong Yang wrote:
> Add support for Data Source packet on HIP12. Support counting L2 HITM for c2c
> statistic since it was missing.
>
> Change since v2:
> - split the kernel/userspace changes into different patch
> - revise some mem_snoop decoding according to the discussion
> - count missing L2 HITM for c2c statistic
> Link: https://lore.kernel.org/linux-perf-users/20250408122809.37884-1-yangyicong@huawei.com/
>
> [...]
Applied cputype change to arm64 (for-next/cpufeature), thanks!
[1/3] arm64: cputype: Add cputype definition for HIP12
https://git.kernel.org/arm64/c/226ff35039d0
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12
2025-05-21 14:49 ` Arnaldo Carvalho de Melo
2025-05-22 9:07 ` Yicong Yang
@ 2025-05-26 11:06 ` Yicong Yang
2025-05-27 20:54 ` Arnaldo Carvalho de Melo
1 sibling, 1 reply; 14+ messages in thread
From: Yicong Yang @ 2025-05-26 11:06 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: yangyicong, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users, jonathan.cameron, hejunhao3,
linuxarm, wangyushan12, caijingtao, xueshan2, prime.zeng,
Joe Mario
Hi Arnaldo,
On 2025/5/21 22:49, Arnaldo Carvalho de Melo wrote:
> On Wed, May 14, 2025 at 11:38:42AM +0800, Yicong Yang wrote:
>> a gentle ping on this..
>
> So this involves both kernel and tooling, as soon as someone merges the
> kernel part, I can try and get to the user part,
is it still possible to catch up with this cycle? Kernel part has been picked up [1].
thanks.
[1] https://lore.kernel.org/linux-arm-kernel/174790933967.1291842.14160046478134585349.b4-ty@kernel.org/
>
> - Arnaldo
>
>> Thanks.
>>
>> On 2025/4/25 11:38, Yicong Yang wrote:
>>> From: Yicong Yang <yangyicong@hisilicon.com>
>>>
>>> Add support for Data Source packet on HIP12. Support counting L2 HITM for c2c
>>> statistic since it was missing.
>>>
>>> Change since v2:
>>> - split the kernel/userspace changes into different patch
>>> - revise some mem_snoop decoding according to the discussion
>>> - count missing L2 HITM for c2c statistic
>>> Link: https://lore.kernel.org/linux-perf-users/20250408122809.37884-1-yangyicong@huawei.com/
>>>
>>> Yicong Yang (3):
>>> arm64: cputype: Add cputype definition for HIP12
>>> perf arm-spe: Add support for SPE Data Source packet on HiSilicon
>>> HIP12
>>> perf mem: Count L2 HITM for c2c statistic
>>>
>>> arch/arm64/include/asm/cputype.h | 2 +
>>> tools/arch/arm64/include/asm/cputype.h | 2 +
>>> .../util/arm-spe-decoder/arm-spe-decoder.h | 17 ++++
>>> tools/perf/util/arm-spe.c | 96 +++++++++++++++++++
>>> tools/perf/util/mem-events.c | 5 +-
>>> 5 files changed, 121 insertions(+), 1 deletion(-)
>>>
>
> .
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12
2025-05-26 11:06 ` Yicong Yang
@ 2025-05-27 20:54 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 14+ messages in thread
From: Arnaldo Carvalho de Melo @ 2025-05-27 20:54 UTC (permalink / raw)
To: Yicong Yang
Cc: yangyicong, namhyung, catalin.marinas, will, peterz, mingo,
mark.rutland, jolsa, john.g.garry, james.clark, leo.yan, irogers,
linux-arm-kernel, linux-perf-users, jonathan.cameron, hejunhao3,
linuxarm, wangyushan12, caijingtao, xueshan2, prime.zeng,
Joe Mario
On Mon, May 26, 2025 at 07:06:37PM +0800, Yicong Yang wrote:
> Hi Arnaldo,
>
> On 2025/5/21 22:49, Arnaldo Carvalho de Melo wrote:
> > On Wed, May 14, 2025 at 11:38:42AM +0800, Yicong Yang wrote:
> >> a gentle ping on this..
> >
> > So this involves both kernel and tooling, as soon as someone merges the
> > kernel part, I can try and get to the user part,
>
> is it still possible to catch up with this cycle? Kernel part has been picked up [1].
>
> thanks.
I'm applying it now.
- Arnaldo
> [1] https://lore.kernel.org/linux-arm-kernel/174790933967.1291842.14160046478134585349.b4-ty@kernel.org/
>
> >
> > - Arnaldo
> >
> >> Thanks.
> >>
> >> On 2025/4/25 11:38, Yicong Yang wrote:
> >>> From: Yicong Yang <yangyicong@hisilicon.com>
> >>>
> >>> Add support for Data Source packet on HIP12. Support counting L2 HITM for c2c
> >>> statistic since it was missing.
> >>>
> >>> Change since v2:
> >>> - split the kernel/userspace changes into different patch
> >>> - revise some mem_snoop decoding according to the discussion
> >>> - count missing L2 HITM for c2c statistic
> >>> Link: https://lore.kernel.org/linux-perf-users/20250408122809.37884-1-yangyicong@huawei.com/
> >>>
> >>> Yicong Yang (3):
> >>> arm64: cputype: Add cputype definition for HIP12
> >>> perf arm-spe: Add support for SPE Data Source packet on HiSilicon
> >>> HIP12
> >>> perf mem: Count L2 HITM for c2c statistic
> >>>
> >>> arch/arm64/include/asm/cputype.h | 2 +
> >>> tools/arch/arm64/include/asm/cputype.h | 2 +
> >>> .../util/arm-spe-decoder/arm-spe-decoder.h | 17 ++++
> >>> tools/perf/util/arm-spe.c | 96 +++++++++++++++++++
> >>> tools/perf/util/mem-events.c | 5 +-
> >>> 5 files changed, 121 insertions(+), 1 deletion(-)
> >>>
> >
> > .
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-05-27 20:54 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-25 3:38 [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
2025-04-25 3:38 ` [PATCH v2 1/3] arm64: cputype: Add cputype definition for HIP12 Yicong Yang
2025-05-22 9:13 ` Yicong Yang
2025-05-22 10:25 ` Will Deacon
2025-04-25 3:38 ` [PATCH v2 2/3] perf arm-spe: Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
2025-05-21 10:35 ` Leo Yan
2025-04-25 3:38 ` [PATCH v2 3/3] perf mem: Count L2 HITM for c2c statistic Yicong Yang
2025-05-21 10:37 ` Leo Yan
2025-05-14 3:38 ` [PATCH v2 0/3] Add support for SPE Data Source packet on HiSilicon HIP12 Yicong Yang
2025-05-21 14:49 ` Arnaldo Carvalho de Melo
2025-05-22 9:07 ` Yicong Yang
2025-05-26 11:06 ` Yicong Yang
2025-05-27 20:54 ` Arnaldo Carvalho de Melo
2025-05-22 10:50 ` Will Deacon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).