linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
@ 2018-07-31 10:02 Ganapatrao Kulkarni
  2018-07-31 14:28 ` Arnaldo Carvalho de Melo
  2018-08-02  8:15 ` [tip:perf/core] " tip-bot for Ganapatrao Kulkarni
  0 siblings, 2 replies; 6+ messages in thread
From: Ganapatrao Kulkarni @ 2018-07-31 10:02 UTC (permalink / raw)
  To: linux-kernel, linux-arm-kernel
  Cc: acme, alexander.shishkin, jolsa, namhyung, peterz, mingo,
	Will.Deacon, mark.rutland, jnair, Robert.Richter,
	Vadim.Lomovtsev, Jan.Glauber, gklkml16

Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
---
 .../arch/arm64/cavium/thunderx2/core-imp-def.json  | 87 +++++++++++++++++++++-
 1 file changed, 84 insertions(+), 3 deletions(-)

diff --git a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
index bc03c06..752e47e 100644
--- a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
+++ b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
@@ -12,6 +12,21 @@
         "ArchStdEvent": "L1D_CACHE_REFILL_WR",
     },
     {
+        "ArchStdEvent": "L1D_CACHE_REFILL_INNER",
+    },
+    {
+        "ArchStdEvent": "L1D_CACHE_REFILL_OUTER",
+    },
+    {
+        "ArchStdEvent": "L1D_CACHE_WB_VICTIM",
+    },
+    {
+        "ArchStdEvent": "L1D_CACHE_WB_CLEAN",
+    },
+    {
+        "ArchStdEvent": "L1D_CACHE_INVAL",
+    },
+    {
         "ArchStdEvent": "L1D_TLB_REFILL_RD",
     },
     {
@@ -24,9 +39,75 @@
         "ArchStdEvent": "L1D_TLB_WR",
     },
     {
+        "ArchStdEvent": "L2D_TLB_REFILL_RD",
+    },
+    {
+        "ArchStdEvent": "L2D_TLB_REFILL_WR",
+    },
+    {
+        "ArchStdEvent": "L2D_TLB_RD",
+    },
+    {
+        "ArchStdEvent": "L2D_TLB_WR",
+    },
+    {
         "ArchStdEvent": "BUS_ACCESS_RD",
-   },
-   {
+    },
+    {
         "ArchStdEvent": "BUS_ACCESS_WR",
-   }
+    },
+    {
+        "ArchStdEvent": "MEM_ACCESS_RD",
+    },
+    {
+        "ArchStdEvent": "MEM_ACCESS_WR",
+    },
+    {
+        "ArchStdEvent": "UNALIGNED_LD_SPEC",
+    },
+    {
+        "ArchStdEvent": "UNALIGNED_ST_SPEC",
+    },
+    {
+        "ArchStdEvent": "UNALIGNED_LDST_SPEC",
+    },
+    {
+        "ArchStdEvent": "EXC_UNDEF",
+    },
+    {
+        "ArchStdEvent": "EXC_SVC",
+    },
+    {
+        "ArchStdEvent": "EXC_PABORT",
+    },
+    {
+        "ArchStdEvent": "EXC_DABORT",
+    },
+    {
+        "ArchStdEvent": "EXC_IRQ",
+    },
+    {
+        "ArchStdEvent": "EXC_FIQ",
+    },
+    {
+        "ArchStdEvent": "EXC_SMC",
+    },
+    {
+        "ArchStdEvent": "EXC_HVC",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_PABORT",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_DABORT",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_OTHER",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_IRQ",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_FIQ",
+    }
 ]
-- 
2.9.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
  2018-07-31 10:02 [PATCH] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events Ganapatrao Kulkarni
@ 2018-07-31 14:28 ` Arnaldo Carvalho de Melo
  2018-07-31 15:10   ` Ganapatrao Kulkarni
  2018-08-02  8:15 ` [tip:perf/core] " tip-bot for Ganapatrao Kulkarni
  1 sibling, 1 reply; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-07-31 14:28 UTC (permalink / raw)
  To: Ganapatrao Kulkarni
  Cc: linux-kernel, linux-arm-kernel, alexander.shishkin, jolsa,
	namhyung, peterz, mingo, Will.Deacon, mark.rutland, jnair,
	Robert.Richter, Vadim.Lomovtsev, Jan.Glauber, gklkml16

Em Tue, Jul 31, 2018 at 03:32:51PM +0530, Ganapatrao Kulkarni escreveu:
> Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>

Can you please consider to provide an example of such counters being
used, i.e. with a simple C synthetic test that causes these events to
take place, then run it via 'perf stat' to show that indeed, they are
being programmed and read correctly?

Ideally for all of them, but if that becomes too burdensome, for a few
of them?

Thanks,

- Arnaldo

> ---
>  .../arch/arm64/cavium/thunderx2/core-imp-def.json  | 87 +++++++++++++++++++++-
>  1 file changed, 84 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
> index bc03c06..752e47e 100644
> --- a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
> +++ b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
> @@ -12,6 +12,21 @@
>          "ArchStdEvent": "L1D_CACHE_REFILL_WR",
>      },
>      {
> +        "ArchStdEvent": "L1D_CACHE_REFILL_INNER",
> +    },
> +    {
> +        "ArchStdEvent": "L1D_CACHE_REFILL_OUTER",
> +    },
> +    {
> +        "ArchStdEvent": "L1D_CACHE_WB_VICTIM",
> +    },
> +    {
> +        "ArchStdEvent": "L1D_CACHE_WB_CLEAN",
> +    },
> +    {
> +        "ArchStdEvent": "L1D_CACHE_INVAL",
> +    },
> +    {
>          "ArchStdEvent": "L1D_TLB_REFILL_RD",
>      },
>      {
> @@ -24,9 +39,75 @@
>          "ArchStdEvent": "L1D_TLB_WR",
>      },
>      {
> +        "ArchStdEvent": "L2D_TLB_REFILL_RD",
> +    },
> +    {
> +        "ArchStdEvent": "L2D_TLB_REFILL_WR",
> +    },
> +    {
> +        "ArchStdEvent": "L2D_TLB_RD",
> +    },
> +    {
> +        "ArchStdEvent": "L2D_TLB_WR",
> +    },
> +    {
>          "ArchStdEvent": "BUS_ACCESS_RD",
> -   },
> -   {
> +    },
> +    {
>          "ArchStdEvent": "BUS_ACCESS_WR",
> -   }
> +    },
> +    {
> +        "ArchStdEvent": "MEM_ACCESS_RD",
> +    },
> +    {
> +        "ArchStdEvent": "MEM_ACCESS_WR",
> +    },
> +    {
> +        "ArchStdEvent": "UNALIGNED_LD_SPEC",
> +    },
> +    {
> +        "ArchStdEvent": "UNALIGNED_ST_SPEC",
> +    },
> +    {
> +        "ArchStdEvent": "UNALIGNED_LDST_SPEC",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_UNDEF",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_SVC",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_PABORT",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_DABORT",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_IRQ",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_FIQ",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_SMC",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_HVC",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_TRAP_PABORT",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_TRAP_DABORT",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_TRAP_OTHER",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_TRAP_IRQ",
> +    },
> +    {
> +        "ArchStdEvent": "EXC_TRAP_FIQ",
> +    }
>  ]
> -- 
> 2.9.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
  2018-07-31 14:28 ` Arnaldo Carvalho de Melo
@ 2018-07-31 15:10   ` Ganapatrao Kulkarni
  2018-07-31 17:29     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 6+ messages in thread
From: Ganapatrao Kulkarni @ 2018-07-31 15:10 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ganapatrao Kulkarni, LKML, linux-arm-kernel, Alexander Shishkin,
	Jiri Olsa, namhyung, Peter Zijlstra, Ingo Molnar, Will Deacon,
	Mark Rutland, jnair, Robert Richter, Vadim.Lomovtsev,
	Jan.Glauber

Hi Arnaldo,

On Tue, Jul 31, 2018 at 7:58 PM, Arnaldo Carvalho de Melo
<arnaldo.melo@gmail.com> wrote:
> Em Tue, Jul 31, 2018 at 03:32:51PM +0530, Ganapatrao Kulkarni escreveu:
>> Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
>
> Can you please consider to provide an example of such counters being
> used, i.e. with a simple C synthetic test that causes these events to
> take place, then run it via 'perf stat' to show that indeed, they are
> being programmed and read correctly?
>
> Ideally for all of them, but if that becomes too burdensome, for a few
> of them?

It may be tedious for all, certainly I will provide the test
results/log for some of them(as many as possible).

>
> Thanks,
>
> - Arnaldo
>
>> ---
>>  .../arch/arm64/cavium/thunderx2/core-imp-def.json  | 87 +++++++++++++++++++++-
>>  1 file changed, 84 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
>> index bc03c06..752e47e 100644
>> --- a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
>> +++ b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
>> @@ -12,6 +12,21 @@
>>          "ArchStdEvent": "L1D_CACHE_REFILL_WR",
>>      },
>>      {
>> +        "ArchStdEvent": "L1D_CACHE_REFILL_INNER",
>> +    },
>> +    {
>> +        "ArchStdEvent": "L1D_CACHE_REFILL_OUTER",
>> +    },
>> +    {
>> +        "ArchStdEvent": "L1D_CACHE_WB_VICTIM",
>> +    },
>> +    {
>> +        "ArchStdEvent": "L1D_CACHE_WB_CLEAN",
>> +    },
>> +    {
>> +        "ArchStdEvent": "L1D_CACHE_INVAL",
>> +    },
>> +    {
>>          "ArchStdEvent": "L1D_TLB_REFILL_RD",
>>      },
>>      {
>> @@ -24,9 +39,75 @@
>>          "ArchStdEvent": "L1D_TLB_WR",
>>      },
>>      {
>> +        "ArchStdEvent": "L2D_TLB_REFILL_RD",
>> +    },
>> +    {
>> +        "ArchStdEvent": "L2D_TLB_REFILL_WR",
>> +    },
>> +    {
>> +        "ArchStdEvent": "L2D_TLB_RD",
>> +    },
>> +    {
>> +        "ArchStdEvent": "L2D_TLB_WR",
>> +    },
>> +    {
>>          "ArchStdEvent": "BUS_ACCESS_RD",
>> -   },
>> -   {
>> +    },
>> +    {
>>          "ArchStdEvent": "BUS_ACCESS_WR",
>> -   }
>> +    },
>> +    {
>> +        "ArchStdEvent": "MEM_ACCESS_RD",
>> +    },
>> +    {
>> +        "ArchStdEvent": "MEM_ACCESS_WR",
>> +    },
>> +    {
>> +        "ArchStdEvent": "UNALIGNED_LD_SPEC",
>> +    },
>> +    {
>> +        "ArchStdEvent": "UNALIGNED_ST_SPEC",
>> +    },
>> +    {
>> +        "ArchStdEvent": "UNALIGNED_LDST_SPEC",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_UNDEF",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_SVC",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_PABORT",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_DABORT",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_IRQ",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_FIQ",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_SMC",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_HVC",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_TRAP_PABORT",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_TRAP_DABORT",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_TRAP_OTHER",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_TRAP_IRQ",
>> +    },
>> +    {
>> +        "ArchStdEvent": "EXC_TRAP_FIQ",
>> +    }
>>  ]
>> --
>> 2.9.4

thanks
Ganapat

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
  2018-07-31 15:10   ` Ganapatrao Kulkarni
@ 2018-07-31 17:29     ` Arnaldo Carvalho de Melo
  2018-08-01  4:59       ` Ganapatrao Kulkarni
  0 siblings, 1 reply; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-07-31 17:29 UTC (permalink / raw)
  To: Ganapatrao Kulkarni
  Cc: Arnaldo Carvalho de Melo, Ganapatrao Kulkarni, LKML,
	linux-arm-kernel, Alexander Shishkin, Jiri Olsa, namhyung,
	Peter Zijlstra, Ingo Molnar, Will Deacon, Mark Rutland, jnair,
	Robert Richter, Vadim.Lomovtsev, Jan.Glauber

Em Tue, Jul 31, 2018 at 08:40:51PM +0530, Ganapatrao Kulkarni escreveu:
> Hi Arnaldo,
> 
> On Tue, Jul 31, 2018 at 7:58 PM, Arnaldo Carvalho de Melo
> <arnaldo.melo@gmail.com> wrote:
> > Em Tue, Jul 31, 2018 at 03:32:51PM +0530, Ganapatrao Kulkarni escreveu:
> >> Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
> >
> > Can you please consider to provide an example of such counters being
> > used, i.e. with a simple C synthetic test that causes these events to
> > take place, then run it via 'perf stat' to show that indeed, they are
> > being programmed and read correctly?
> >
> > Ideally for all of them, but if that becomes too burdensome, for a few
> > of them?
> 
> It may be tedious for all, certainly I will provide the test
> results/log for some of them(as many as possible).

Right, we do try to test some of the events via 'perf test', for
instance:

[root@jouet perf]# perf test openat
 2: Detect openat syscall event                           : Ok
 3: Detect openat syscall event on all cpus               : Ok
15: syscalls:sys_enter_openat event fields                : Ok
[root@jouet perf]#

Things like setting up evsels for some events, then forking + calling a
syscall, then checking if that event appeared on the ring buffer, check
if the payload for the event, as read using the tracefs format fields
matches the parameters we passed in the syscall, etc.

See tools/perf/tests/openat-syscall-tp-fields.c for that
"syscalls:sys_enter_openat event fields" specific source code.

So doing some of these synthetic tests when updating the event files may
help us in the direction of having tests that run on those specific
hardwares (ThunderX2 in this case) everytime we run 'perf test', so that
we can detect failures sooner.

I.e. first write a simple test for one of those events, use it as
documentation, at some point, as time permits, turn those into a 'perf
test' entry.

Thanks,

- Arnaldo
 
> >
> > Thanks,
> >
> > - Arnaldo
> >
> >> ---
> >>  .../arch/arm64/cavium/thunderx2/core-imp-def.json  | 87 +++++++++++++++++++++-
> >>  1 file changed, 84 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
> >> index bc03c06..752e47e 100644
> >> --- a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
> >> +++ b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
> >> @@ -12,6 +12,21 @@
> >>          "ArchStdEvent": "L1D_CACHE_REFILL_WR",
> >>      },
> >>      {
> >> +        "ArchStdEvent": "L1D_CACHE_REFILL_INNER",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "L1D_CACHE_REFILL_OUTER",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "L1D_CACHE_WB_VICTIM",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "L1D_CACHE_WB_CLEAN",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "L1D_CACHE_INVAL",
> >> +    },
> >> +    {
> >>          "ArchStdEvent": "L1D_TLB_REFILL_RD",
> >>      },
> >>      {
> >> @@ -24,9 +39,75 @@
> >>          "ArchStdEvent": "L1D_TLB_WR",
> >>      },
> >>      {
> >> +        "ArchStdEvent": "L2D_TLB_REFILL_RD",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "L2D_TLB_REFILL_WR",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "L2D_TLB_RD",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "L2D_TLB_WR",
> >> +    },
> >> +    {
> >>          "ArchStdEvent": "BUS_ACCESS_RD",
> >> -   },
> >> -   {
> >> +    },
> >> +    {
> >>          "ArchStdEvent": "BUS_ACCESS_WR",
> >> -   }
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "MEM_ACCESS_RD",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "MEM_ACCESS_WR",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "UNALIGNED_LD_SPEC",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "UNALIGNED_ST_SPEC",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "UNALIGNED_LDST_SPEC",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_UNDEF",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_SVC",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_PABORT",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_DABORT",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_IRQ",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_FIQ",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_SMC",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_HVC",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_TRAP_PABORT",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_TRAP_DABORT",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_TRAP_OTHER",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_TRAP_IRQ",
> >> +    },
> >> +    {
> >> +        "ArchStdEvent": "EXC_TRAP_FIQ",
> >> +    }
> >>  ]
> >> --
> >> 2.9.4
> 
> thanks
> Ganapat

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
  2018-07-31 17:29     ` Arnaldo Carvalho de Melo
@ 2018-08-01  4:59       ` Ganapatrao Kulkarni
  0 siblings, 0 replies; 6+ messages in thread
From: Ganapatrao Kulkarni @ 2018-08-01  4:59 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ganapatrao Kulkarni, LKML, linux-arm-kernel, Alexander Shishkin,
	Jiri Olsa, namhyung, Peter Zijlstra, Ingo Molnar, Will Deacon,
	Mark Rutland, jnair, Robert Richter, Vadim.Lomovtsev,
	Jan.Glauber

Hi Arnaldo,


On Tue, Jul 31, 2018 at 10:59 PM, Arnaldo Carvalho de Melo
<arnaldo.melo@gmail.com> wrote:
> Em Tue, Jul 31, 2018 at 08:40:51PM +0530, Ganapatrao Kulkarni escreveu:
>> Hi Arnaldo,
>>
>> On Tue, Jul 31, 2018 at 7:58 PM, Arnaldo Carvalho de Melo
>> <arnaldo.melo@gmail.com> wrote:
>> > Em Tue, Jul 31, 2018 at 03:32:51PM +0530, Ganapatrao Kulkarni escreveu:
>> >> Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
>> >
>> > Can you please consider to provide an example of such counters being
>> > used, i.e. with a simple C synthetic test that causes these events to
>> > take place, then run it via 'perf stat' to show that indeed, they are
>> > being programmed and read correctly?
>> >
>> > Ideally for all of them, but if that becomes too burdensome, for a few
>> > of them?
>>
>> It may be tedious for all, certainly I will provide the test
>> results/log for some of them(as many as possible).
>
> Right, we do try to test some of the events via 'perf test', for
> instance:
>
> [root@jouet perf]# perf test openat
>  2: Detect openat syscall event                           : Ok
>  3: Detect openat syscall event on all cpus               : Ok
> 15: syscalls:sys_enter_openat event fields                : Ok
> [root@jouet perf]#

we have not tried perf test, will look in to this test suite to keep
it complaint on our hardware too!

>
> Things like setting up evsels for some events, then forking + calling a
> syscall, then checking if that event appeared on the ring buffer, check
> if the payload for the event, as read using the tracefs format fields
> matches the parameters we passed in the syscall, etc.
>
> See tools/perf/tests/openat-syscall-tp-fields.c for that
> "syscalls:sys_enter_openat event fields" specific source code.
>
> So doing some of these synthetic tests when updating the event files may
> help us in the direction of having tests that run on those specific
> hardwares (ThunderX2 in this case) everytime we run 'perf test', so that
> we can detect failures sooner.
>
> I.e. first write a simple test for one of those events, use it as
> documentation, at some point, as time permits, turn those into a 'perf
> test' entry.

All these events are implemented as per "ARMv8, The Performance
Monitors Extension specification" [1].
Brief explanation of each of these events is already captured at
tools/perf/pmu-events/arch/arm64/armv8-recommended.json

[1] https://static.docs.arm.com/ddi0487/a/DDI0487A_j_armv8_arm.pdf?_ga=2.104377475.2065785066.1533095452-1490247355.1441251141

i have used ltp testcases as workload to test some of the events and
log is below,

root@SBR-26>ganapat>> perf stat -e
unaligned_ld_spec,unaligned_st_spec,unaligned_ldst_spec,mem_access_rd,mem_access_wr,armv8_pmuv3_0/mem_access/
ltp/testcases/kernel/mem/mtest001 -p80
mtest01     0  TINFO  :  Total memory already used on system = 11849792 kbytes
mtest01     0  TINFO  :  Total memory used needed to reach maximum =
214325040 kbytes
mtest01     0  TINFO  :  Filling up 80% of ram which is 202475248 kbytes
mtest01     1  TPASS  :  202475248 kbytes allocated only.

 Performance counter stats for 'ltp/testcases/kernel/mem/mtest01/mtest01 -p80':

             2,573      unaligned_ld_spec
             3,976      unaligned_st_spec
             6,549      unaligned_ldst_spec
         1,525,489      mem_access_rd
         1,549,531      mem_access_wr
         3,075,020      armv8_pmuv3_0/mem_access/

       0.006368837 seconds time elapsed

       0.000000000 seconds user
       0.006390000 seconds sys


root@SBR-26>ganapat>> perf stat -e
l1d_cache_refill_rd,l1d_cache_refill_wr,armv8_pmuv3_0/l1d_cache_refill/
./ltp/testcases/kernel/mem/mtest01/mtest01 -p80
mtest01     0  TINFO  :  Total memory already used on system = 11851520 kbytes
mtest01     0  TINFO  :  Total memory used needed to reach maximum =
214325040 kbytes
mtest01     0  TINFO  :  Filling up 80% of ram which is 202473520 kbytes
mtest01     1  TPASS  :  202473520 kbytes allocated only.

 Performance counter stats for
'./ltp/testcases/kernel/mem/mtest01/mtest01 -p80':

           257,128      l1d_cache_refill_rd
           162,151      l1d_cache_refill_wr
           419,279      armv8_pmuv3_0/l1d_cache_refill/

       0.006118645 seconds time elapsed

       0.000000000 seconds user
       0.006141000 seconds sys


root@SBR-26>ganapat>> perf stat -e exc_svc
./ltp/testcases/kernel/syscalls/brk/brk01
tst_test.c:1015: INFO: Timeout per run is 0h 05m 00s
brk01.c:67: PASS: brk() works fine

Summary:
passed   1
failed   0
skipped  0
warnings 0

 Performance counter stats for './ltp/testcases/kernel/syscalls/brk/brk01':

               100      exc_svc

       0.000887222 seconds time elapsed

       0.000950000 seconds user
       0.000000000 seconds sys


root@SBR-26>ganapat>>

>
> Thanks,
>
> - Arnaldo
>
>> >
>> > Thanks,
>> >
>> > - Arnaldo
>> >
>> >> ---
>> >>  .../arch/arm64/cavium/thunderx2/core-imp-def.json  | 87 +++++++++++++++++++++-
>> >>  1 file changed, 84 insertions(+), 3 deletions(-)
>> >>
>> >> diff --git a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
>> >> index bc03c06..752e47e 100644
>> >> --- a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
>> >> +++ b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
>> >> @@ -12,6 +12,21 @@
>> >>          "ArchStdEvent": "L1D_CACHE_REFILL_WR",
>> >>      },
>> >>      {
>> >> +        "ArchStdEvent": "L1D_CACHE_REFILL_INNER",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "L1D_CACHE_REFILL_OUTER",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "L1D_CACHE_WB_VICTIM",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "L1D_CACHE_WB_CLEAN",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "L1D_CACHE_INVAL",
>> >> +    },
>> >> +    {
>> >>          "ArchStdEvent": "L1D_TLB_REFILL_RD",
>> >>      },
>> >>      {
>> >> @@ -24,9 +39,75 @@
>> >>          "ArchStdEvent": "L1D_TLB_WR",
>> >>      },
>> >>      {
>> >> +        "ArchStdEvent": "L2D_TLB_REFILL_RD",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "L2D_TLB_REFILL_WR",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "L2D_TLB_RD",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "L2D_TLB_WR",
>> >> +    },
>> >> +    {
>> >>          "ArchStdEvent": "BUS_ACCESS_RD",
>> >> -   },
>> >> -   {
>> >> +    },
>> >> +    {
>> >>          "ArchStdEvent": "BUS_ACCESS_WR",
>> >> -   }
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "MEM_ACCESS_RD",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "MEM_ACCESS_WR",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "UNALIGNED_LD_SPEC",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "UNALIGNED_ST_SPEC",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "UNALIGNED_LDST_SPEC",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_UNDEF",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_SVC",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_PABORT",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_DABORT",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_IRQ",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_FIQ",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_SMC",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_HVC",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_TRAP_PABORT",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_TRAP_DABORT",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_TRAP_OTHER",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_TRAP_IRQ",
>> >> +    },
>> >> +    {
>> >> +        "ArchStdEvent": "EXC_TRAP_FIQ",
>> >> +    }
>> >>  ]
>> >> --
>> >> 2.9.4
>>
>> thanks
>> Ganapat

thanks
Ganapat

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [tip:perf/core] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
  2018-07-31 10:02 [PATCH] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events Ganapatrao Kulkarni
  2018-07-31 14:28 ` Arnaldo Carvalho de Melo
@ 2018-08-02  8:15 ` tip-bot for Ganapatrao Kulkarni
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Ganapatrao Kulkarni @ 2018-08-02  8:15 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: alexander.shishkin, hpa, ganapatrao.kulkarni, acme, gklkml16,
	tglx, namhyung, linux-kernel, peterz, jnair, jan.glauber, jolsa,
	will.deacon, mark.rutland, vadim.lomovtsev, mingo,
	robert.richter

Commit-ID:  b9b77222d4ff6b5bb8f5d87fca20de0910618bb9
Gitweb:     https://git.kernel.org/tip/b9b77222d4ff6b5bb8f5d87fca20de0910618bb9
Author:     Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
AuthorDate: Tue, 31 Jul 2018 15:32:51 +0530
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 31 Jul 2018 11:28:44 -0300

perf vendor events arm64: Update ThunderX2 implementation defined pmu core events

Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ganapatrao Kulkarni <gklkml16@gmail.com>
Cc: Jan Glauber <jan.glauber@cavium.com>
Cc: Jayachandran C <jnair@caviumnetworks.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Robert Richter <robert.richter@cavium.com>
Cc: Vadim Lomovtsev <vadim.lomovtsev@cavium.com>
Cc: Will Deacon <will.deacon@arm.com>
Link: http://lkml.kernel.org/r/20180731100251.23575-1-ganapatrao.kulkarni@cavium.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 .../arch/arm64/cavium/thunderx2/core-imp-def.json  | 87 +++++++++++++++++++++-
 1 file changed, 84 insertions(+), 3 deletions(-)

diff --git a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
index bc03c06c3918..752e47eb6977 100644
--- a/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
+++ b/tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
@@ -11,6 +11,21 @@
     {
         "ArchStdEvent": "L1D_CACHE_REFILL_WR",
     },
+    {
+        "ArchStdEvent": "L1D_CACHE_REFILL_INNER",
+    },
+    {
+        "ArchStdEvent": "L1D_CACHE_REFILL_OUTER",
+    },
+    {
+        "ArchStdEvent": "L1D_CACHE_WB_VICTIM",
+    },
+    {
+        "ArchStdEvent": "L1D_CACHE_WB_CLEAN",
+    },
+    {
+        "ArchStdEvent": "L1D_CACHE_INVAL",
+    },
     {
         "ArchStdEvent": "L1D_TLB_REFILL_RD",
     },
@@ -23,10 +38,76 @@
     {
         "ArchStdEvent": "L1D_TLB_WR",
     },
+    {
+        "ArchStdEvent": "L2D_TLB_REFILL_RD",
+    },
+    {
+        "ArchStdEvent": "L2D_TLB_REFILL_WR",
+    },
+    {
+        "ArchStdEvent": "L2D_TLB_RD",
+    },
+    {
+        "ArchStdEvent": "L2D_TLB_WR",
+    },
     {
         "ArchStdEvent": "BUS_ACCESS_RD",
-   },
-   {
+    },
+    {
         "ArchStdEvent": "BUS_ACCESS_WR",
-   }
+    },
+    {
+        "ArchStdEvent": "MEM_ACCESS_RD",
+    },
+    {
+        "ArchStdEvent": "MEM_ACCESS_WR",
+    },
+    {
+        "ArchStdEvent": "UNALIGNED_LD_SPEC",
+    },
+    {
+        "ArchStdEvent": "UNALIGNED_ST_SPEC",
+    },
+    {
+        "ArchStdEvent": "UNALIGNED_LDST_SPEC",
+    },
+    {
+        "ArchStdEvent": "EXC_UNDEF",
+    },
+    {
+        "ArchStdEvent": "EXC_SVC",
+    },
+    {
+        "ArchStdEvent": "EXC_PABORT",
+    },
+    {
+        "ArchStdEvent": "EXC_DABORT",
+    },
+    {
+        "ArchStdEvent": "EXC_IRQ",
+    },
+    {
+        "ArchStdEvent": "EXC_FIQ",
+    },
+    {
+        "ArchStdEvent": "EXC_SMC",
+    },
+    {
+        "ArchStdEvent": "EXC_HVC",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_PABORT",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_DABORT",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_OTHER",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_IRQ",
+    },
+    {
+        "ArchStdEvent": "EXC_TRAP_FIQ",
+    }
 ]

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-08-02  8:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-31 10:02 [PATCH] perf vendor events arm64: Update ThunderX2 implementation defined pmu core events Ganapatrao Kulkarni
2018-07-31 14:28 ` Arnaldo Carvalho de Melo
2018-07-31 15:10   ` Ganapatrao Kulkarni
2018-07-31 17:29     ` Arnaldo Carvalho de Melo
2018-08-01  4:59       ` Ganapatrao Kulkarni
2018-08-02  8:15 ` [tip:perf/core] " tip-bot for Ganapatrao Kulkarni

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).