diff mbox series

perf vendor events: Add missing Neoverse V1 events

Message ID 20220901151804.294823-1-nick.forrington@arm.com (mailing list archive)
State New, archived
Headers show
Series perf vendor events: Add missing Neoverse V1 events | expand

Commit Message

Nick Forrington Sept. 1, 2022, 3:18 p.m. UTC
Based on updated data from:
https://github.com/ARM-software/data/blob/master/pmu/neoverse-v1.json

which is based on PMU event descriptions from the Arm Neoverse V1
Technical Reference Manual.

This adds the following missing events:
ASE_INST_SPEC
SVE_INST_SPEC
SVE_PRED_SPEC
SVE_PRED_EMPTY_SPEC
SVE_PRED_FULL_SPEC
SVE_PRED_PARTIAL_SPEC
SVE_LDFF_SPEC
SVE_LDFF_FAULT_SPEC
FP_SCALE_OPS_SPEC
FP_FIXED_OPS_SPEC

It also moves REMOTE_ACCESS from other.json to memory.json.

Signed-off-by: Nick Forrington <nick.forrington@arm.com>
---
 .../arm64/arm/neoverse-v1/instruction.json    | 30 +++++++++++++++++++
 .../arch/arm64/arm/neoverse-v1/memory.json    |  3 ++
 .../arch/arm64/arm/neoverse-v1/other.json     |  5 ----
 3 files changed, 33 insertions(+), 5 deletions(-)
 delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/other.json

Comments

John Garry Sept. 2, 2022, 8:04 a.m. UTC | #1
On 01/09/2022 16:18, Nick Forrington wrote:
> Based on updated data from:
> https://github.com/ARM-software/data/blob/master/pmu/neoverse-v1.json
> 
> which is based on PMU event descriptions from the Arm Neoverse V1
> Technical Reference Manual.
> 
> This adds the following missing events:
> ASE_INST_SPEC
> SVE_INST_SPEC
> SVE_PRED_SPEC
> SVE_PRED_EMPTY_SPEC
> SVE_PRED_FULL_SPEC
> SVE_PRED_PARTIAL_SPEC
> SVE_LDFF_SPEC
> SVE_LDFF_FAULT_SPEC
> FP_SCALE_OPS_SPEC
> FP_FIXED_OPS_SPEC
> 
> It also moves REMOTE_ACCESS from other.json to memory.json.

Any specific reason why? I see that neoverse n2 and a76-n1 still use 
"other" json for REMOTE_ACCESS. Nicer to be consistent.

> 
> Signed-off-by: Nick Forrington<nick.forrington@arm.com>
> ---

Apart from above:
Reviewed-by: John Garry <john.garry@huawei.com>
Nick Forrington Sept. 2, 2022, 2:12 p.m. UTC | #2
On 02/09/2022 09:04, John Garry wrote:
> On 01/09/2022 16:18, Nick Forrington wrote:
>> Based on updated data from:
>> https://github.com/ARM-software/data/blob/master/pmu/neoverse-v1.json
>>
>> which is based on PMU event descriptions from the Arm Neoverse V1
>> Technical Reference Manual.
>>
>> This adds the following missing events:
>> ASE_INST_SPEC
>> SVE_INST_SPEC
>> SVE_PRED_SPEC
>> SVE_PRED_EMPTY_SPEC
>> SVE_PRED_FULL_SPEC
>> SVE_PRED_PARTIAL_SPEC
>> SVE_LDFF_SPEC
>> SVE_LDFF_FAULT_SPEC
>> FP_SCALE_OPS_SPEC
>> FP_FIXED_OPS_SPEC
>>
>> It also moves REMOTE_ACCESS from other.json to memory.json.
>
> Any specific reason why? I see that neoverse n2 and a76-n1 still use 
> "other" json for REMOTE_ACCESS. Nicer to be consistent.

Thanks John, I agree on consistency.

I think memory is a better categorisation (for all CPUs), and this is 
consistent with what I submitted for various Cortex CPUs a while back.

I'd be happy to remove the REMOTE_ACCESS change here and update (or not) 
REMOTE_ACCESS for Neoverse separately.

>
>>
>> Signed-off-by: Nick Forrington<nick.forrington@arm.com>
>> ---
>
> Apart from above:
> Reviewed-by: John Garry <john.garry@huawei.com>
Thanks, Nick
Arnaldo Carvalho de Melo Sept. 2, 2022, 7:25 p.m. UTC | #3
Em Fri, Sep 02, 2022 at 03:12:49PM +0100, Nick Forrington escreveu:
> On 02/09/2022 09:04, John Garry wrote:
> > On 01/09/2022 16:18, Nick Forrington wrote:
> > > Based on updated data from:
> > > https://github.com/ARM-software/data/blob/master/pmu/neoverse-v1.json
> > > 
> > > which is based on PMU event descriptions from the Arm Neoverse V1
> > > Technical Reference Manual.
> > > 
> > > This adds the following missing events:
> > > ASE_INST_SPEC
> > > SVE_INST_SPEC
> > > SVE_PRED_SPEC
> > > SVE_PRED_EMPTY_SPEC
> > > SVE_PRED_FULL_SPEC
> > > SVE_PRED_PARTIAL_SPEC
> > > SVE_LDFF_SPEC
> > > SVE_LDFF_FAULT_SPEC
> > > FP_SCALE_OPS_SPEC
> > > FP_FIXED_OPS_SPEC
> > > 
> > > It also moves REMOTE_ACCESS from other.json to memory.json.
> > 
> > Any specific reason why? I see that neoverse n2 and a76-n1 still use
> > "other" json for REMOTE_ACCESS. Nicer to be consistent.
> 
> Thanks John, I agree on consistency.
> 
> I think memory is a better categorisation (for all CPUs), and this is
> consistent with what I submitted for various Cortex CPUs a while back.

Were those patches processed or is some still outstanding?
 
> I'd be happy to remove the REMOTE_ACCESS change here and update (or not)
> REMOTE_ACCESS for Neoverse separately.
> 
> > 
> > > 
> > > Signed-off-by: Nick Forrington<nick.forrington@arm.com>
> > > ---
> > 
> > Apart from above:
> > Reviewed-by: John Garry <john.garry@huawei.com>
> Thanks, Nick

So, how should we proceed?

- Arnaldo
John Garry Sept. 5, 2022, 9:25 a.m. UTC | #4
On 02/09/2022 20:25, Arnaldo Carvalho de Melo wrote:
>> Thanks John, I agree on consistency.
>>
>> I think memory is a better categorisation (for all CPUs), and this is
>> consistent with what I submitted for various Cortex CPUs a while back.
> Were those patches processed or is some still outstanding?
>   
>> I'd be happy to remove the REMOTE_ACCESS change here and update (or not)
>> REMOTE_ACCESS for Neoverse separately.
>>
>>>> Signed-off-by: Nick Forrington<nick.forrington@arm.com>
>>>> ---
>>> Apart from above:
>>> Reviewed-by: John Garry<john.garry@huawei.com>
>> Thanks, Nick
> So, how should we proceed?

To me it would be better to just update the categorization of the 
REMOTE_ACCESS event for all cortex cores separately and just add the 
missing Neoverse v1 events here.

Thanks,
John
Nick Forrington Sept. 5, 2022, 11:19 a.m. UTC | #5
On 02/09/2022 20:25, Arnaldo Carvalho de Melo wrote:
> Em Fri, Sep 02, 2022 at 03:12:49PM +0100, Nick Forrington escreveu:
>> On 02/09/2022 09:04, John Garry wrote:
>>> On 01/09/2022 16:18, Nick Forrington wrote:
>>>> Based on updated data from:
>>>> https://github.com/ARM-software/data/blob/master/pmu/neoverse-v1.json
>>>>
>>>> which is based on PMU event descriptions from the Arm Neoverse V1
>>>> Technical Reference Manual.
>>>>
>>>> This adds the following missing events:
>>>> ASE_INST_SPEC
>>>> SVE_INST_SPEC
>>>> SVE_PRED_SPEC
>>>> SVE_PRED_EMPTY_SPEC
>>>> SVE_PRED_FULL_SPEC
>>>> SVE_PRED_PARTIAL_SPEC
>>>> SVE_LDFF_SPEC
>>>> SVE_LDFF_FAULT_SPEC
>>>> FP_SCALE_OPS_SPEC
>>>> FP_FIXED_OPS_SPEC
>>>>
>>>> It also moves REMOTE_ACCESS from other.json to memory.json.
>>> Any specific reason why? I see that neoverse n2 and a76-n1 still use
>>> "other" json for REMOTE_ACCESS. Nicer to be consistent.
>> Thanks John, I agree on consistency.
>>
>> I think memory is a better categorisation (for all CPUs), and this is
>> consistent with what I submitted for various Cortex CPUs a while back.
> Were those patches processed or is some still outstanding?

Those were processed.

(REMOTE_ACCESS appears in memory.json for the Cortex JSON files)

>   
>> I'd be happy to remove the REMOTE_ACCESS change here and update (or not)
>> REMOTE_ACCESS for Neoverse separately.
>>
>>>> Signed-off-by: Nick Forrington<nick.forrington@arm.com>
>>>> ---
>>> Apart from above:
>>> Reviewed-by: John Garry <john.garry@huawei.com>
>> Thanks, Nick
> So, how should we proceed?
>
> - Arnaldo

I'll update this patch to remove the REMOTE_ACCESS change, and submit a 
separate patch to make REMOTE_ACCESS categorisation consistent across 
all CPUs.
diff mbox series

Patch

diff --git a/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/instruction.json b/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/instruction.json
index 25825e14c535..e29b88fb7f24 100644
--- a/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/instruction.json
+++ b/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/instruction.json
@@ -85,5 +85,35 @@ 
     },
     {
         "ArchStdEvent": "RC_ST_SPEC"
+    },
+    {
+        "ArchStdEvent": "ASE_INST_SPEC"
+    },
+    {
+        "ArchStdEvent": "SVE_INST_SPEC"
+    },
+    {
+        "ArchStdEvent": "SVE_PRED_SPEC"
+    },
+    {
+        "ArchStdEvent": "SVE_PRED_EMPTY_SPEC"
+    },
+    {
+        "ArchStdEvent": "SVE_PRED_FULL_SPEC"
+    },
+    {
+        "ArchStdEvent": "SVE_PRED_PARTIAL_SPEC"
+    },
+    {
+        "ArchStdEvent": "SVE_LDFF_SPEC"
+    },
+    {
+        "ArchStdEvent": "SVE_LDFF_FAULT_SPEC"
+    },
+    {
+        "ArchStdEvent": "FP_SCALE_OPS_SPEC"
+    },
+    {
+        "ArchStdEvent": "FP_FIXED_OPS_SPEC"
     }
 ]
diff --git a/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/memory.json b/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/memory.json
index e3d08f1f7c92..5aff6e93c1ad 100644
--- a/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/memory.json
+++ b/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/memory.json
@@ -2,6 +2,9 @@ 
     {
         "ArchStdEvent": "MEM_ACCESS"
     },
+    {
+        "ArchStdEvent": "REMOTE_ACCESS"
+    },
     {
         "ArchStdEvent": "MEM_ACCESS_RD"
     },
diff --git a/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/other.json b/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/other.json
deleted file mode 100644
index 20d8365756c5..000000000000
--- a/tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/other.json
+++ /dev/null
@@ -1,5 +0,0 @@ 
-[
-    {
-        "ArchStdEvent": "REMOTE_ACCESS"
-    }
-]