Add new event test for uncore system event which is used to verify the
functionality of "Compat" matching multiple identifiers and the new event
fields "EventIdCode" and "Type".
Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com>
---
.../pmu-events/arch/test/test_soc/sys/uncore.json | 8 ++++
tools/perf/tests/pmu-events.c | 55 ++++++++++++++++++++++
2 files changed, 63 insertions(+)
diff --git a/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json b/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
index c7e7528..879a0ae 100644
--- a/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
+++ b/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
@@ -12,5 +12,13 @@
"EventName": "sys_ccn_pmu.read_cycles",
"Unit": "sys_ccn_pmu",
"Compat": "0x01"
+ },
+ {
+ "BriefDescription": "Counts total cache misses in first lookup result (high priority).",
+ "Type": "0x05",
+ "EventIdCode": "0x01",
+ "EventName": "sys_cmn_pmu.hnf_cache_miss",
+ "Unit": "arm_cmn",
+ "Compat": "434*;436*;43c*;43a01"
}
]
diff --git a/tools/perf/tests/pmu-events.c b/tools/perf/tests/pmu-events.c
index 1dff863b..e227dcd 100644
--- a/tools/perf/tests/pmu-events.c
+++ b/tools/perf/tests/pmu-events.c
@@ -255,9 +255,24 @@ struct perf_pmu_test_pmu {
.matching_pmu = "uncore_sys_ccn_pmu",
};
+static const struct perf_pmu_test_event sys_cmn_pmu_hnf_cache_miss = {
+ .event = {
+ .name = "sys_cmn_pmu.hnf_cache_miss",
+ .event = "type=0x05,eventid=0x01",
+ .desc = "Counts total cache misses in first lookup result (high priority). Unit: uncore_arm_cmn ",
+ .topic = "uncore",
+ .pmu = "uncore_arm_cmn",
+ .compat = "434*;436*;43c*;43a01",
+ },
+ .alias_str = "type=0x5,eventid=0x1",
+ .alias_long_desc = "Counts total cache misses in first lookup result (high priority). Unit: uncore_arm_cmn ",
+ .matching_pmu = "uncore_arm_cmn_0",
+};
+
static const struct perf_pmu_test_event *sys_events[] = {
&sys_ddr_pmu_write_cycles,
&sys_ccn_pmu_read_cycles,
+ &sys_cmn_pmu_hnf_cache_miss,
NULL
};
@@ -699,6 +714,46 @@ static int __test_uncore_pmu_event_aliases(struct perf_pmu_test_pmu *test_pmu)
&sys_ccn_pmu_read_cycles,
},
},
+ {
+ .pmu = {
+ .name = (char *)"uncore_arm_cmn_0",
+ .is_uncore = 1,
+ .id = (char *)"43401",
+ },
+ .aliases = {
+ &sys_cmn_pmu_hnf_cache_miss,
+ },
+ },
+ {
+ .pmu = {
+ .name = (char *)"uncore_arm_cmn_0",
+ .is_uncore = 1,
+ .id = (char *)"43602",
+ },
+ .aliases = {
+ &sys_cmn_pmu_hnf_cache_miss,
+ },
+ },
+ {
+ .pmu = {
+ .name = (char *)"uncore_arm_cmn_1",
+ .is_uncore = 1,
+ .id = (char *)"43c03",
+ },
+ .aliases = {
+ &sys_cmn_pmu_hnf_cache_miss,
+ },
+ },
+ {
+ .pmu = {
+ .name = (char *)"uncore_arm_cmn_1",
+ .is_uncore = 1,
+ .id = (char *)"43a01",
+ },
+ .aliases = {
+ &sys_cmn_pmu_hnf_cache_miss,
+ },
+ }
};
/* Test that aliases generated are as expected */
--
1.8.3.1
On 28/07/2023 07:17, Jing Zhang wrote:
> Add new event test for uncore system event which is used to verify the
> functionality of "Compat" matching multiple identifiers and the new event
> fields "EventIdCode" and "Type".
>
Thanks for doing this. It looks ok. I just have a comment, below.
> Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com>
> ---
> .../pmu-events/arch/test/test_soc/sys/uncore.json | 8 ++++
> tools/perf/tests/pmu-events.c | 55 ++++++++++++++++++++++
> 2 files changed, 63 insertions(+)
>
> diff --git a/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json b/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
> index c7e7528..879a0ae 100644
> --- a/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
> +++ b/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
> @@ -12,5 +12,13 @@
> "EventName": "sys_ccn_pmu.read_cycles",
> "Unit": "sys_ccn_pmu",
> "Compat": "0x01"
> + },
> + {
> + "BriefDescription": "Counts total cache misses in first lookup result (high priority).",
> + "Type": "0x05",
> + "EventIdCode": "0x01",
> + "EventName": "sys_cmn_pmu.hnf_cache_miss",
> + "Unit": "arm_cmn",
> + "Compat": "434*;436*;43c*;43a01"
> }
> ]
> diff --git a/tools/perf/tests/pmu-events.c b/tools/perf/tests/pmu-events.c
> index 1dff863b..e227dcd 100644
> --- a/tools/perf/tests/pmu-events.c
> +++ b/tools/perf/tests/pmu-events.c
> @@ -255,9 +255,24 @@ struct perf_pmu_test_pmu {
> .matching_pmu = "uncore_sys_ccn_pmu",
> };
>
> +static const struct perf_pmu_test_event sys_cmn_pmu_hnf_cache_miss = {
> + .event = {
> + .name = "sys_cmn_pmu.hnf_cache_miss",
> + .event = "type=0x05,eventid=0x01",
> + .desc = "Counts total cache misses in first lookup result (high priority). Unit: uncore_arm_cmn ",
> + .topic = "uncore",
> + .pmu = "uncore_arm_cmn",
> + .compat = "434*;436*;43c*;43a01",
> + },
> + .alias_str = "type=0x5,eventid=0x1",
> + .alias_long_desc = "Counts total cache misses in first lookup result (high priority). Unit: uncore_arm_cmn ",
> + .matching_pmu = "uncore_arm_cmn_0",
> +};
> +
> static const struct perf_pmu_test_event *sys_events[] = {
> &sys_ddr_pmu_write_cycles,
> &sys_ccn_pmu_read_cycles,
> + &sys_cmn_pmu_hnf_cache_miss,
> NULL
> };
>
> @@ -699,6 +714,46 @@ static int __test_uncore_pmu_event_aliases(struct perf_pmu_test_pmu *test_pmu)
> &sys_ccn_pmu_read_cycles,
> },
> },
> + {
> + .pmu = {
> + .name = (char *)"uncore_arm_cmn_0",
> + .is_uncore = 1,
> + .id = (char *)"43401",
> + },
> + .aliases = {
> + &sys_cmn_pmu_hnf_cache_miss,
> + },
> + },
> + {
> + .pmu = {
> + .name = (char *)"uncore_arm_cmn_0",
> + .is_uncore = 1,
> + .id = (char *)"43602",
> + },
> + .aliases = {
> + &sys_cmn_pmu_hnf_cache_miss,
> + },
> + },
> + {
> + .pmu = {
> + .name = (char *)"uncore_arm_cmn_1",
Shouldn't this match some perf_pmu_test_event entry with same
matching_pmu member? But is perf_pmu_test_event.matching_pmu member ever
used for any checking???
Thanks,
John
> + .is_uncore = 1,
> + .id = (char *)"43c03",
> + },
> + .aliases = {
> + &sys_cmn_pmu_hnf_cache_miss,
> + },
> + },
> + {
> + .pmu = {
> + .name = (char *)"uncore_arm_cmn_1",
> + .is_uncore = 1,
> + .id = (char *)"43a01",
> + },
> + .aliases = {
> + &sys_cmn_pmu_hnf_cache_miss,
> + },
> + }
> };
>
> /* Test that aliases generated are as expected */
在 2023/7/28 下午4:30, John Garry 写道:
> On 28/07/2023 07:17, Jing Zhang wrote:
>> Add new event test for uncore system event which is used to verify the
>> functionality of "Compat" matching multiple identifiers and the new event
>> fields "EventIdCode" and "Type".
>>
>
> Thanks for doing this. It looks ok. I just have a comment, below.
>
Thanks.
>> Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com>
>> ---
>> .../pmu-events/arch/test/test_soc/sys/uncore.json | 8 ++++
>> tools/perf/tests/pmu-events.c | 55 ++++++++++++++++++++++
>> 2 files changed, 63 insertions(+)
>>
>> diff --git a/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json b/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
>> index c7e7528..879a0ae 100644
>> --- a/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
>> +++ b/tools/perf/pmu-events/arch/test/test_soc/sys/uncore.json
>> @@ -12,5 +12,13 @@
>> "EventName": "sys_ccn_pmu.read_cycles",
>> "Unit": "sys_ccn_pmu",
>> "Compat": "0x01"
>> + },
>> + {
>> + "BriefDescription": "Counts total cache misses in first lookup result (high priority).",
>> + "Type": "0x05",
>> + "EventIdCode": "0x01",
>> + "EventName": "sys_cmn_pmu.hnf_cache_miss",
>> + "Unit": "arm_cmn",
>> + "Compat": "434*;436*;43c*;43a01"
>> }
>> ]
>> diff --git a/tools/perf/tests/pmu-events.c b/tools/perf/tests/pmu-events.c
>> index 1dff863b..e227dcd 100644
>> --- a/tools/perf/tests/pmu-events.c
>> +++ b/tools/perf/tests/pmu-events.c
>> @@ -255,9 +255,24 @@ struct perf_pmu_test_pmu {
>> .matching_pmu = "uncore_sys_ccn_pmu",
>> };
>> +static const struct perf_pmu_test_event sys_cmn_pmu_hnf_cache_miss = {
>> + .event = {
>> + .name = "sys_cmn_pmu.hnf_cache_miss",
>> + .event = "type=0x05,eventid=0x01",
>> + .desc = "Counts total cache misses in first lookup result (high priority). Unit: uncore_arm_cmn ",
>> + .topic = "uncore",
>> + .pmu = "uncore_arm_cmn",
>> + .compat = "434*;436*;43c*;43a01",
>> + },
>> + .alias_str = "type=0x5,eventid=0x1",
>> + .alias_long_desc = "Counts total cache misses in first lookup result (high priority). Unit: uncore_arm_cmn ",
>> + .matching_pmu = "uncore_arm_cmn_0",
>> +};
>> +
>> static const struct perf_pmu_test_event *sys_events[] = {
>> &sys_ddr_pmu_write_cycles,
>> &sys_ccn_pmu_read_cycles,
>> + &sys_cmn_pmu_hnf_cache_miss,
>> NULL
>> };
>> @@ -699,6 +714,46 @@ static int __test_uncore_pmu_event_aliases(struct perf_pmu_test_pmu *test_pmu)
>> &sys_ccn_pmu_read_cycles,
>> },
>> },
>> + {
>> + .pmu = {
>> + .name = (char *)"uncore_arm_cmn_0",
>> + .is_uncore = 1,
>> + .id = (char *)"43401",
>> + },
>> + .aliases = {
>> + &sys_cmn_pmu_hnf_cache_miss,
>> + },
>> + },
>> + {
>> + .pmu = {
>> + .name = (char *)"uncore_arm_cmn_0",
>> + .is_uncore = 1,
>> + .id = (char *)"43602",
>> + },
>> + .aliases = {
>> + &sys_cmn_pmu_hnf_cache_miss,
>> + },
>> + },
>> + {
>> + .pmu = {
>> + .name = (char *)"uncore_arm_cmn_1",
>
> Shouldn't this match some perf_pmu_test_event entry with same matching_pmu member? But is perf_pmu_test_event.matching_pmu member ever used for any checking???
>
I need to double check because I was testing against 6.3-rc2.
Thanks,
Jing
> Thanks,
> John
>
>> + .is_uncore = 1,
>> + .id = (char *)"43c03",
>> + },
>> + .aliases = {
>> + &sys_cmn_pmu_hnf_cache_miss,
>> + },
>> + },
>> + {
>> + .pmu = {
>> + .name = (char *)"uncore_arm_cmn_1",
>> + .is_uncore = 1,
>> + .id = (char *)"43a01",
>> + },
>> + .aliases = {
>> + &sys_cmn_pmu_hnf_cache_miss,
>> + },
>> + }
>> };
>> /* Test that aliases generated are as expected */
On 31/07/2023 13:30, Jing Zhang wrote:
>>> + .pmu = {
>>> + .name = (char *)"uncore_arm_cmn_0",
>>> + .is_uncore = 1,
>>> + .id = (char *)"43602",
>>> + },
>>> + .aliases = {
>>> + &sys_cmn_pmu_hnf_cache_miss,
>>> + },
>>> + },
>>> + {
>>> + .pmu = {
>>> + .name = (char *)"uncore_arm_cmn_1",
>> Shouldn't this match some perf_pmu_test_event entry with same matching_pmu member? But is perf_pmu_test_event.matching_pmu member ever used for any checking???
>>
> I need to double check because I was testing against 6.3-rc2.
That 6.3-rc2, was for the the kernel? Or baseline for this series? See
see maintainers for git/branch to base perf tool dev on.
Thanks,
John
在 2023/7/31 下午9:12, John Garry 写道:
> On 31/07/2023 13:30, Jing Zhang wrote:
>>>> + .pmu = {
>>>> + .name = (char *)"uncore_arm_cmn_0",
>>>> + .is_uncore = 1,
>>>> + .id = (char *)"43602",
>>>> + },
>>>> + .aliases = {
>>>> + &sys_cmn_pmu_hnf_cache_miss,
>>>> + },
>>>> + },
>>>> + {
>>>> + .pmu = {
>>>> + .name = (char *)"uncore_arm_cmn_1",
>>> Shouldn't this match some perf_pmu_test_event entry with same matching_pmu member? But is perf_pmu_test_event.matching_pmu member ever used for any checking???
>>>
>> I need to double check because I was testing against 6.3-rc2.
>
> That 6.3-rc2, was for the the kernel? Or baseline for this series? See see maintainers for git/branch to base perf tool dev on.
>
I have now developed based on the latest perf tool, but I'm still confused.
"matching_pmu" does not seem to have any effect. No matter what value matching_pmu
is, it will not affect the final test result.
Thank,
Jing
On 01/08/2023 10:19, Jing Zhang wrote: >>> I need to double check because I was testing against 6.3-rc2. >> That 6.3-rc2, was for the the kernel? Or baseline for this series? See see maintainers for git/branch to base perf tool dev on. >> > I have now developed based on the latest perf tool, but I'm still confused. > "matching_pmu" does not seem to have any effect. No matter what value matching_pmu > is, it will not affect the final test result. Yeah, that is what I was saying - matching_pmu is not used. Can you fix that up (to be used), please? Thanks, John
在 2023/8/1 下午11:10, John Garry 写道: > On 01/08/2023 10:19, Jing Zhang wrote: >>>> I need to double check because I was testing against 6.3-rc2. >>> That 6.3-rc2, was for the the kernel? Or baseline for this series? See see maintainers for git/branch to base perf tool dev on. >>> >> I have now developed based on the latest perf tool, but I'm still confused. >> "matching_pmu" does not seem to have any effect. No matter what value matching_pmu >> is, it will not affect the final test result. > > Yeah, that is what I was saying - matching_pmu is not used. Can you fix that up (to be used), please? > Ok, let me try :) Thanks, Jing
© 2016 - 2026 Red Hat, Inc.