This reverts commit ac0e2cd555373ae6f8f3a3ad3fbbf5b6d1e7aaaa. Michael reported an issue with oversized terms values assignment and I noticed there was actually a misunderstanding of the max value check in the past. The above commit's changelog says: If bit 21 is set, there is parsing issues as below. $ perf stat -a -e uncore_qpi_0/event=0x200002,umask=0x8/ event syntax error: '..pi_0/event=0x200002,umask=0x8/' \___ value too big for format, maximum is 511 But there's no issue there, because the event value is distributed along the value defined by the format. Even if the format defines separated bit, the value is treated as a continual number, which should follow the format definition. In above case it's 9-bit value with last bit separated: $ cat uncore_qpi_0/format/event config:0-7,21 Hence the value 0x200002 is correctly reported as format violation, because it exceeds 9 bits. It should have been 0x102 instead, which sets the 9th bit - the bit 21 of the format. $ perf stat -vv -a -e uncore_qpi_0/event=0x102,umask=0x8/ Using CPUID GenuineIntel-6-2D ... ------------------------------------------------------------ perf_event_attr: type 10 size 112 config 0x200802 sample_type IDENTIFIER ... Cc: Andi Kleen <ak@linux.intel.com> Cc: Kan Liang <kan.liang@intel.com> Reported-by: Michael Petlan <mpetlan@redhat.com> Link: http://lkml.kernel.org/n/tip-icxq7a1r66lusm3ahaimekis@git.kernel.org Signed-off-by: Jiri Olsa <jolsa@kernel.org> --- tools/perf/util/pmu.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index afd68524ffa9..7799788f662f 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -930,13 +930,14 @@ static void pmu_format_value(unsigned long *format, __u64 value, __u64 *v, static __u64 pmu_format_max_value(const unsigned long *format) { - __u64 w = 0; - int fbit; - - for_each_set_bit(fbit, format, PERF_PMU_FORMAT_BITS) - w |= (1ULL << fbit); + int w; - return w; + w = bitmap_weight(format, PERF_PMU_FORMAT_BITS); + if (!w) + return 0; + if (w < 64) + return (1ULL << w) - 1; + return -1; } /* -- 2.17.1
On Wed, Oct 03, 2018 at 09:20:46AM +0200, Jiri Olsa wrote: > This reverts commit ac0e2cd555373ae6f8f3a3ad3fbbf5b6d1e7aaaa. > > Michael reported an issue with oversized terms values assignment > and I noticed there was actually a misunderstanding of the max > value check in the past. hi, this is just a follow up question.. Miachel's original report was that he could not stat following event: $ perf stat -e unc_p_freq_ge_1200mhz_cycles -a -- ls event syntax error: '..e_1200mhz_cycles' \___ value too big for format, maximum is 255 Run 'perf list' for a list of valid events The event is unwrapped into: uncore_pcu/event=0xb,filter_band0=1200/ where filter_band0 format says it's one byte only: [root@intel-lizardhead-01 uncore_pcu]# cat format/filter_band0 config1:0-7 while json files specifies bigger number: "Filter": "filter_band0=1200", [root@intel-lizardhead-01 uncore_pcu]# cat format/filter_band1 config1:8-15 [root@intel-lizardhead-01 uncore_pcu]# cat format/filter_band2 config1:16-23 [root@intel-lizardhead-01 uncore_pcu]# cat format/filter_band3 config1:24-31 The reason seems to be that filter_band* values are supposed to be in 100Mhz units.. it's stated in the json help for the events, like: filter_band3=XXX, with XXX in 100Mhz units Attached change and the original patch fix the problem problem for me, but Intel guys might have already some update on that.. and I have no way on checking on this other than the help message I found.. hence the RFC ;-) also there might be more of those.. note there's couple of changes that actually changed the number completely, like: - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", thanks, jirka --- .../arch/x86/ivytown/uncore-power.json | 16 ++++++++-------- .../arch/x86/jaketown/uncore-power.json | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json index d40498f2cb1e..635c09fda1d9 100644 --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json @@ -188,7 +188,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", - "Filter": "filter_band0=1200", + "Filter": "filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -199,7 +199,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", - "Filter": "filter_band1=2000", + "Filter": "filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -210,7 +210,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", - "Filter": "filter_band2=3000", + "Filter": "filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -221,7 +221,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", - "Filter": "filter_band3=4000", + "Filter": "filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", @@ -232,7 +232,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band0=1200", + "Filter": "edge=1,filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -243,7 +243,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band1=2000", + "Filter": "edge=1,filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -254,7 +254,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -265,7 +265,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band3=4000", + "Filter": "edge=1,filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", diff --git a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json index 16034bfd06dd..8755693d86c6 100644 --- a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json +++ b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json @@ -187,7 +187,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", - "Filter": "filter_band0=1200", + "Filter": "filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -198,7 +198,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", - "Filter": "filter_band1=2000", + "Filter": "filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -209,7 +209,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", - "Filter": "filter_band2=3000", + "Filter": "filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -220,7 +220,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", - "Filter": "filter_band3=4000", + "Filter": "filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", @@ -231,7 +231,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band0=1200", + "Filter": "edge=1,filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -242,7 +242,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band1=2000", + "Filter": "edge=1,filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -253,7 +253,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -264,7 +264,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band3=4000", + "Filter": "edge=1,filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", -- 2.17.1
> note there's couple of changes that actually changed
> the number completely, like:
>
> - "Filter": "edge=1,filter_band2=4000",
> + "Filter": "edge=1,filter_band2=30",
Thanks. Looks good. I'll fix the scripts to generate the uncore events.
-Andi
ping
thanks,
jirka
On Wed, Oct 03, 2018 at 09:20:46AM +0200, Jiri Olsa wrote:
> This reverts commit ac0e2cd555373ae6f8f3a3ad3fbbf5b6d1e7aaaa.
>
> Michael reported an issue with oversized terms values assignment
> and I noticed there was actually a misunderstanding of the max
> value check in the past.
>
> The above commit's changelog says:
>
> If bit 21 is set, there is parsing issues as below.
>
> $ perf stat -a -e uncore_qpi_0/event=0x200002,umask=0x8/
> event syntax error: '..pi_0/event=0x200002,umask=0x8/'
> \___ value too big for format, maximum is 511
>
> But there's no issue there, because the event value is distributed
> along the value defined by the format. Even if the format defines
> separated bit, the value is treated as a continual number, which
> should follow the format definition.
>
> In above case it's 9-bit value with last bit separated:
> $ cat uncore_qpi_0/format/event
> config:0-7,21
>
> Hence the value 0x200002 is correctly reported as format violation,
> because it exceeds 9 bits. It should have been 0x102 instead, which
> sets the 9th bit - the bit 21 of the format.
>
> $ perf stat -vv -a -e uncore_qpi_0/event=0x102,umask=0x8/
> Using CPUID GenuineIntel-6-2D
> ...
> ------------------------------------------------------------
> perf_event_attr:
> type 10
> size 112
> config 0x200802
> sample_type IDENTIFIER
> ...
>
> Cc: Andi Kleen <ak@linux.intel.com>
> Cc: Kan Liang <kan.liang@intel.com>
> Reported-by: Michael Petlan <mpetlan@redhat.com>
> Link: http://lkml.kernel.org/n/tip-icxq7a1r66lusm3ahaimekis@git.kernel.org
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---
> tools/perf/util/pmu.c | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> index afd68524ffa9..7799788f662f 100644
> --- a/tools/perf/util/pmu.c
> +++ b/tools/perf/util/pmu.c
> @@ -930,13 +930,14 @@ static void pmu_format_value(unsigned long *format, __u64 value, __u64 *v,
>
> static __u64 pmu_format_max_value(const unsigned long *format)
> {
> - __u64 w = 0;
> - int fbit;
> -
> - for_each_set_bit(fbit, format, PERF_PMU_FORMAT_BITS)
> - w |= (1ULL << fbit);
> + int w;
>
> - return w;
> + w = bitmap_weight(format, PERF_PMU_FORMAT_BITS);
> + if (!w)
> + return 0;
> + if (w < 64)
> + return (1ULL << w) - 1;
> + return -1;
> }
>
> /*
> --
> 2.17.1
>
On Wed, Oct 03, 2018 at 07:45:50AM -0700, Andi Kleen wrote:
> > note there's couple of changes that actually changed
> > the number completely, like:
> >
> > - "Filter": "edge=1,filter_band2=4000",
> > + "Filter": "edge=1,filter_band2=30",
>
> Thanks. Looks good. I'll fix the scripts to generate the uncore events.
hi,
any idea when you could post an update for this?
thanks,
jirka
Em Tue, Oct 09, 2018 at 11:59:17AM +0200, Jiri Olsa escreveu: > ping oops, applied to perf/urgent, added a Fixes: line so that stable@ pick this up. - Arnaldo > thanks, > jirka > > On Wed, Oct 03, 2018 at 09:20:46AM +0200, Jiri Olsa wrote: > > This reverts commit ac0e2cd555373ae6f8f3a3ad3fbbf5b6d1e7aaaa. > > > > Michael reported an issue with oversized terms values assignment > > and I noticed there was actually a misunderstanding of the max > > value check in the past. > > > > The above commit's changelog says: > > > > If bit 21 is set, there is parsing issues as below. > > > > $ perf stat -a -e uncore_qpi_0/event=0x200002,umask=0x8/ > > event syntax error: '..pi_0/event=0x200002,umask=0x8/' > > \___ value too big for format, maximum is 511 > > > > But there's no issue there, because the event value is distributed > > along the value defined by the format. Even if the format defines > > separated bit, the value is treated as a continual number, which > > should follow the format definition. > > > > In above case it's 9-bit value with last bit separated: > > $ cat uncore_qpi_0/format/event > > config:0-7,21 > > > > Hence the value 0x200002 is correctly reported as format violation, > > because it exceeds 9 bits. It should have been 0x102 instead, which > > sets the 9th bit - the bit 21 of the format. > > > > $ perf stat -vv -a -e uncore_qpi_0/event=0x102,umask=0x8/ > > Using CPUID GenuineIntel-6-2D > > ... > > ------------------------------------------------------------ > > perf_event_attr: > > type 10 > > size 112 > > config 0x200802 > > sample_type IDENTIFIER > > ... > > > > Cc: Andi Kleen <ak@linux.intel.com> > > Cc: Kan Liang <kan.liang@intel.com> > > Reported-by: Michael Petlan <mpetlan@redhat.com> > > Link: http://lkml.kernel.org/n/tip-icxq7a1r66lusm3ahaimekis@git.kernel.org > > Signed-off-by: Jiri Olsa <jolsa@kernel.org> > > --- > > tools/perf/util/pmu.c | 13 +++++++------ > > 1 file changed, 7 insertions(+), 6 deletions(-) > > > > diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c > > index afd68524ffa9..7799788f662f 100644 > > --- a/tools/perf/util/pmu.c > > +++ b/tools/perf/util/pmu.c > > @@ -930,13 +930,14 @@ static void pmu_format_value(unsigned long *format, __u64 value, __u64 *v, > > > > static __u64 pmu_format_max_value(const unsigned long *format) > > { > > - __u64 w = 0; > > - int fbit; > > - > > - for_each_set_bit(fbit, format, PERF_PMU_FORMAT_BITS) > > - w |= (1ULL << fbit); > > + int w; > > > > - return w; > > + w = bitmap_weight(format, PERF_PMU_FORMAT_BITS); > > + if (!w) > > + return 0; > > + if (w < 64) > > + return (1ULL << w) - 1; > > + return -1; > > } > > > > /* > > -- > > 2.17.1 > >
On Tue, Oct 09, 2018 at 12:01:44PM +0200, Jiri Olsa wrote:
> On Wed, Oct 03, 2018 at 07:45:50AM -0700, Andi Kleen wrote:
> > > note there's couple of changes that actually changed
> > > the number completely, like:
> > >
> > > - "Filter": "edge=1,filter_band2=4000",
> > > + "Filter": "edge=1,filter_band2=30",
> >
> > Thanks. Looks good. I'll fix the scripts to generate the uncore events.
>
> hi,
> any idea when you could post an update for this?
Can just use your patch for the existing event lists. You can add
Acked-by: Andi Kleen <ak@linux.intel.com>
I was mainly worried about future updates, but it doesn't seem to be a problem.
-Andi
On Tue, Oct 09, 2018 at 02:18:39PM -0700, Andi Kleen wrote: > On Tue, Oct 09, 2018 at 12:01:44PM +0200, Jiri Olsa wrote: > > On Wed, Oct 03, 2018 at 07:45:50AM -0700, Andi Kleen wrote: > > > > note there's couple of changes that actually changed > > > > the number completely, like: > > > > > > > > - "Filter": "edge=1,filter_band2=4000", > > > > + "Filter": "edge=1,filter_band2=30", > > > > > > Thanks. Looks good. I'll fix the scripts to generate the uncore events. > > > > hi, > > any idea when you could post an update for this? > > Can just use your patch for the existing event lists. You can add > > Acked-by: Andi Kleen <ak@linux.intel.com> > > I was mainly worried about future updates, but it doesn't seem to be a problem. ok, attaching patch with full changelog thanks, jirka --- Michael reported that he could not stat following event: $ perf stat -e unc_p_freq_ge_1200mhz_cycles -a -- ls event syntax error: '..e_1200mhz_cycles' \___ value too big for format, maximum is 255 Run 'perf list' for a list of valid events The event is unwrapped into: uncore_pcu/event=0xb,filter_band0=1200/ where filter_band0 format says it's one byte only: # cat uncore_pcu/format/filter_band0 config1:0-7 while json files specifies bigger number: "Filter": "filter_band0=1200", all the filter_band* formats show 1 byte width: # cat uncore_pcu/format/filter_band1 config1:8-15 # cat uncore_pcu/format/filter_band2 config1:16-23 # cat uncore_pcu/format/filter_band3 config1:24-31 The reason of the issue is that filter_band* values are supposed to be in 100Mhz units.. it's stated in the json help for the events, like: filter_band3=XXX, with XXX in 100Mhz units This patch divides the filter_band* values by 100, plus there's couple of changes that actually change the number completely, like: - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", Reported-by: Michael Petlan <mpetlan@redhat.com> Acked-by: Andi Kleen <ak@linux.intel.com> Link: http://lkml.kernel.org/n/tip-ujl4yzkexf3i10fjw24maa9e@git.kernel.org Signed-off-by: Jiri Olsa <jolsa@kernel.org> --- .../arch/x86/ivytown/uncore-power.json | 16 ++++++++-------- .../arch/x86/jaketown/uncore-power.json | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json index d40498f2cb1e..635c09fda1d9 100644 --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json @@ -188,7 +188,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", - "Filter": "filter_band0=1200", + "Filter": "filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -199,7 +199,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", - "Filter": "filter_band1=2000", + "Filter": "filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -210,7 +210,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", - "Filter": "filter_band2=3000", + "Filter": "filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -221,7 +221,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", - "Filter": "filter_band3=4000", + "Filter": "filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", @@ -232,7 +232,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band0=1200", + "Filter": "edge=1,filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -243,7 +243,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band1=2000", + "Filter": "edge=1,filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -254,7 +254,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -265,7 +265,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band3=4000", + "Filter": "edge=1,filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", diff --git a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json index 16034bfd06dd..8755693d86c6 100644 --- a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json +++ b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json @@ -187,7 +187,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", - "Filter": "filter_band0=1200", + "Filter": "filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -198,7 +198,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", - "Filter": "filter_band1=2000", + "Filter": "filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -209,7 +209,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", - "Filter": "filter_band2=3000", + "Filter": "filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -220,7 +220,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", - "Filter": "filter_band3=4000", + "Filter": "filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", @@ -231,7 +231,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band0=1200", + "Filter": "edge=1,filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -242,7 +242,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band1=2000", + "Filter": "edge=1,filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -253,7 +253,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -264,7 +264,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band3=4000", + "Filter": "edge=1,filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", -- 2.17.1
Em Wed, Oct 10, 2018 at 10:03:39AM +0200, Jiri Olsa escreveu: > On Tue, Oct 09, 2018 at 02:18:39PM -0700, Andi Kleen wrote: > > On Tue, Oct 09, 2018 at 12:01:44PM +0200, Jiri Olsa wrote: > > > On Wed, Oct 03, 2018 at 07:45:50AM -0700, Andi Kleen wrote: > > > > > note there's couple of changes that actually changed > > > > > the number completely, like: > > > > > > > > > > - "Filter": "edge=1,filter_band2=4000", > > > > > + "Filter": "edge=1,filter_band2=30", > > > > > > > > Thanks. Looks good. I'll fix the scripts to generate the uncore events. > > > > > > hi, > > > any idea when you could post an update for this? > > > > Can just use your patch for the existing event lists. You can add > > > > Acked-by: Andi Kleen <ak@linux.intel.com> > > > > I was mainly worried about future updates, but it doesn't seem to be a problem. > > ok, attaching patch with full changelog > > thanks, > jirka Ok, queuing this up in perf/urgent. Thanks, - Arnaldo > > --- > Michael reported that he could not stat following event: > > $ perf stat -e unc_p_freq_ge_1200mhz_cycles -a -- ls > event syntax error: '..e_1200mhz_cycles' > \___ value too big for format, maximum is 255 > Run 'perf list' for a list of valid events > > The event is unwrapped into: > uncore_pcu/event=0xb,filter_band0=1200/ > > where filter_band0 format says it's one byte only: > > # cat uncore_pcu/format/filter_band0 > config1:0-7 > > while json files specifies bigger number: > > "Filter": "filter_band0=1200", > > all the filter_band* formats show 1 byte width: > > # cat uncore_pcu/format/filter_band1 > config1:8-15 > # cat uncore_pcu/format/filter_band2 > config1:16-23 > # cat uncore_pcu/format/filter_band3 > config1:24-31 > > The reason of the issue is that filter_band* values are > supposed to be in 100Mhz units.. it's stated in the json > help for the events, like: > > filter_band3=XXX, with XXX in 100Mhz units > > This patch divides the filter_band* values by 100, > plus there's couple of changes that actually change > the number completely, like: > > - "Filter": "edge=1,filter_band2=4000", > + "Filter": "edge=1,filter_band2=30", > > Reported-by: Michael Petlan <mpetlan@redhat.com> > Acked-by: Andi Kleen <ak@linux.intel.com> > Link: http://lkml.kernel.org/n/tip-ujl4yzkexf3i10fjw24maa9e@git.kernel.org > Signed-off-by: Jiri Olsa <jolsa@kernel.org> > --- > .../arch/x86/ivytown/uncore-power.json | 16 ++++++++-------- > .../arch/x86/jaketown/uncore-power.json | 16 ++++++++-------- > 2 files changed, 16 insertions(+), 16 deletions(-) > > diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json > index d40498f2cb1e..635c09fda1d9 100644 > --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json > +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json > @@ -188,7 +188,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xb", > "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", > - "Filter": "filter_band0=1200", > + "Filter": "filter_band0=12", > "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_1200mhz_cycles %", > "PerPkg": "1", > @@ -199,7 +199,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xc", > "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", > - "Filter": "filter_band1=2000", > + "Filter": "filter_band1=20", > "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_2000mhz_cycles %", > "PerPkg": "1", > @@ -210,7 +210,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xd", > "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", > - "Filter": "filter_band2=3000", > + "Filter": "filter_band2=30", > "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_3000mhz_cycles %", > "PerPkg": "1", > @@ -221,7 +221,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xe", > "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", > - "Filter": "filter_band3=4000", > + "Filter": "filter_band3=40", > "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_4000mhz_cycles %", > "PerPkg": "1", > @@ -232,7 +232,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xb", > "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", > - "Filter": "edge=1,filter_band0=1200", > + "Filter": "edge=1,filter_band0=12", > "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_1200mhz_cycles %", > "PerPkg": "1", > @@ -243,7 +243,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xc", > "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", > - "Filter": "edge=1,filter_band1=2000", > + "Filter": "edge=1,filter_band1=20", > "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_2000mhz_cycles %", > "PerPkg": "1", > @@ -254,7 +254,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xd", > "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", > - "Filter": "edge=1,filter_band2=4000", > + "Filter": "edge=1,filter_band2=30", > "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_3000mhz_cycles %", > "PerPkg": "1", > @@ -265,7 +265,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xe", > "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", > - "Filter": "edge=1,filter_band3=4000", > + "Filter": "edge=1,filter_band3=40", > "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_4000mhz_cycles %", > "PerPkg": "1", > diff --git a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json > index 16034bfd06dd..8755693d86c6 100644 > --- a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json > +++ b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json > @@ -187,7 +187,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xb", > "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", > - "Filter": "filter_band0=1200", > + "Filter": "filter_band0=12", > "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_1200mhz_cycles %", > "PerPkg": "1", > @@ -198,7 +198,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xc", > "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", > - "Filter": "filter_band1=2000", > + "Filter": "filter_band1=20", > "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_2000mhz_cycles %", > "PerPkg": "1", > @@ -209,7 +209,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xd", > "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", > - "Filter": "filter_band2=3000", > + "Filter": "filter_band2=30", > "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_3000mhz_cycles %", > "PerPkg": "1", > @@ -220,7 +220,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xe", > "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", > - "Filter": "filter_band3=4000", > + "Filter": "filter_band3=40", > "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_4000mhz_cycles %", > "PerPkg": "1", > @@ -231,7 +231,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xb", > "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", > - "Filter": "edge=1,filter_band0=1200", > + "Filter": "edge=1,filter_band0=12", > "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_1200mhz_cycles %", > "PerPkg": "1", > @@ -242,7 +242,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xc", > "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", > - "Filter": "edge=1,filter_band1=2000", > + "Filter": "edge=1,filter_band1=20", > "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_2000mhz_cycles %", > "PerPkg": "1", > @@ -253,7 +253,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xd", > "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", > - "Filter": "edge=1,filter_band2=4000", > + "Filter": "edge=1,filter_band2=30", > "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_3000mhz_cycles %", > "PerPkg": "1", > @@ -264,7 +264,7 @@ > "Counter": "0,1,2,3", > "EventCode": "0xe", > "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", > - "Filter": "edge=1,filter_band3=4000", > + "Filter": "edge=1,filter_band3=40", > "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", > "MetricName": "freq_ge_4000mhz_cycles %", > "PerPkg": "1", > -- > 2.17.1
Commit-ID: 1b9caa10b31dda0866f4028e4bfb923fb6e4072f Gitweb: https://git.kernel.org/tip/1b9caa10b31dda0866f4028e4bfb923fb6e4072f Author: Jiri Olsa <jolsa@kernel.org> AuthorDate: Wed, 3 Oct 2018 09:20:46 +0200 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Tue, 9 Oct 2018 10:48:55 -0300 Revert "perf tools: Fix PMU term format max value calculation" This reverts commit ac0e2cd555373ae6f8f3a3ad3fbbf5b6d1e7aaaa. Michael reported an issue with oversized terms values assignment and I noticed there was actually a misunderstanding of the max value check in the past. The above commit's changelog says: If bit 21 is set, there is parsing issues as below. $ perf stat -a -e uncore_qpi_0/event=0x200002,umask=0x8/ event syntax error: '..pi_0/event=0x200002,umask=0x8/' \___ value too big for format, maximum is 511 But there's no issue there, because the event value is distributed along the value defined by the format. Even if the format defines separated bit, the value is treated as a continual number, which should follow the format definition. In above case it's 9-bit value with last bit separated: $ cat uncore_qpi_0/format/event config:0-7,21 Hence the value 0x200002 is correctly reported as format violation, because it exceeds 9 bits. It should have been 0x102 instead, which sets the 9th bit - the bit 21 of the format. $ perf stat -vv -a -e uncore_qpi_0/event=0x102,umask=0x8/ Using CPUID GenuineIntel-6-2D ... ------------------------------------------------------------ perf_event_attr: type 10 size 112 config 0x200802 sample_type IDENTIFIER ... Reported-by: Michael Petlan <mpetlan@redhat.com> Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Fixes: ac0e2cd55537 ("perf tools: Fix PMU term format max value calculation") Link: http://lkml.kernel.org/r/20181003072046.29276-1-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/pmu.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index afd68524ffa9..7799788f662f 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -930,13 +930,14 @@ static void pmu_format_value(unsigned long *format, __u64 value, __u64 *v, static __u64 pmu_format_max_value(const unsigned long *format) { - __u64 w = 0; - int fbit; - - for_each_set_bit(fbit, format, PERF_PMU_FORMAT_BITS) - w |= (1ULL << fbit); + int w; - return w; + w = bitmap_weight(format, PERF_PMU_FORMAT_BITS); + if (!w) + return 0; + if (w < 64) + return (1ULL << w) - 1; + return -1; } /*
Commit-ID: 94aafb74cee0002e2f2eb6dc5376f54d5951ab4d Gitweb: https://git.kernel.org/tip/94aafb74cee0002e2f2eb6dc5376f54d5951ab4d Author: Jiri Olsa <jolsa@redhat.com> AuthorDate: Wed, 10 Oct 2018 10:03:39 +0200 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Thu, 11 Oct 2018 11:13:23 -0300 perf vendor events intel: Fix wrong filter_band* values for uncore events Michael reported that he could not stat following event: $ perf stat -e unc_p_freq_ge_1200mhz_cycles -a -- ls event syntax error: '..e_1200mhz_cycles' \___ value too big for format, maximum is 255 Run 'perf list' for a list of valid events The event is unwrapped into: uncore_pcu/event=0xb,filter_band0=1200/ where filter_band0 format says it's one byte only: # cat uncore_pcu/format/filter_band0 config1:0-7 while JSON files specifies bigger number: "Filter": "filter_band0=1200", all the filter_band* formats show 1 byte width: # cat uncore_pcu/format/filter_band1 config1:8-15 # cat uncore_pcu/format/filter_band2 config1:16-23 # cat uncore_pcu/format/filter_band3 config1:24-31 The reason of the issue is that filter_band* values are supposed to be in 100Mhz units.. it's stated in the JSON help for the events, like: filter_band3=XXX, with XXX in 100Mhz units This patch divides the filter_band* values by 100, plus there's couple of changes that actually change the number completely, like: - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", Reported-by: Michael Petlan <mpetlan@redhat.com> Signed-off-by: Jiri Olsa <jolsa@kernel.org> Acked-by: Andi Kleen <ak@linux.intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20181010080339.GB15790@krava Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json | 16 ++++++++-------- .../perf/pmu-events/arch/x86/jaketown/uncore-power.json | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json index d40498f2cb1e..635c09fda1d9 100644 --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json @@ -188,7 +188,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", - "Filter": "filter_band0=1200", + "Filter": "filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -199,7 +199,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", - "Filter": "filter_band1=2000", + "Filter": "filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -210,7 +210,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", - "Filter": "filter_band2=3000", + "Filter": "filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -221,7 +221,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", - "Filter": "filter_band3=4000", + "Filter": "filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", @@ -232,7 +232,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band0=1200", + "Filter": "edge=1,filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -243,7 +243,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band1=2000", + "Filter": "edge=1,filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -254,7 +254,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -265,7 +265,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band3=4000", + "Filter": "edge=1,filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", diff --git a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json index 16034bfd06dd..8755693d86c6 100644 --- a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json +++ b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json @@ -187,7 +187,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", - "Filter": "filter_band0=1200", + "Filter": "filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -198,7 +198,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", - "Filter": "filter_band1=2000", + "Filter": "filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -209,7 +209,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", - "Filter": "filter_band2=3000", + "Filter": "filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -220,7 +220,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", - "Filter": "filter_band3=4000", + "Filter": "filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1", @@ -231,7 +231,7 @@ "Counter": "0,1,2,3", "EventCode": "0xb", "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band0=1200", + "Filter": "edge=1,filter_band0=12", "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_1200mhz_cycles %", "PerPkg": "1", @@ -242,7 +242,7 @@ "Counter": "0,1,2,3", "EventCode": "0xc", "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band1=2000", + "Filter": "edge=1,filter_band1=20", "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_2000mhz_cycles %", "PerPkg": "1", @@ -253,7 +253,7 @@ "Counter": "0,1,2,3", "EventCode": "0xd", "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band2=4000", + "Filter": "edge=1,filter_band2=30", "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_3000mhz_cycles %", "PerPkg": "1", @@ -264,7 +264,7 @@ "Counter": "0,1,2,3", "EventCode": "0xe", "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", - "Filter": "edge=1,filter_band3=4000", + "Filter": "edge=1,filter_band3=40", "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", "MetricName": "freq_ge_4000mhz_cycles %", "PerPkg": "1",