Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1415152 > unrolled thread
| Started by | Andi Kleen <andi@firstfloor.org> |
|---|---|
| First post | 2016-06-06 16:40 +0200 |
| Last post | 2016-06-08 10:40 +0200 |
| Articles | 7 — 4 participants |
Back to article view | Back to linux.kernel
[PATCH] perf test: Ignore .scale and other special files Andi Kleen <andi@firstfloor.org> - 2016-06-06 16:40 +0200
Re: [PATCH] perf test: Ignore .scale and other special files Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-06 17:00 +0200
Re: [PATCH] perf test: Ignore .scale and other special files Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-06 17:20 +0200
Re: [PATCH] perf test: Ignore .scale and other special files Andi Kleen <ak@linux.intel.com> - 2016-06-06 18:40 +0200
Re: [PATCH] perf test: Ignore .scale and other special files Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-06 22:00 +0200
Re: [PATCH] perf test: Ignore .scale and other special files Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-06 17:00 +0200
[tip:perf/core] perf test: Ignore .scale and other special files tip-bot for Andi Kleen <tipbot@zytor.com> - 2016-06-08 10:40 +0200
| From | Andi Kleen <andi@firstfloor.org> |
|---|---|
| Date | 2016-06-06 16:40 +0200 |
| Subject | [PATCH] perf test: Ignore .scale and other special files |
| Message-ID | <rH3R9-68Z-71@gated-at.bofh.it> |
From: Andi Kleen <ak@linux.intel.com> perf test tries to parse all entries in /sys/devices/cpu/events/. Ignore the special entries like '.scale', which cannot be directly parsed as an event. This patch assumes all files containing a '.' are special and can be ignored. Signed-off-by: Andi Kleen <ak@linux.intel.com> --- tools/perf/tests/parse-events.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c index 7865f68dc0d8..b2a2c74136a5 100644 --- a/tools/perf/tests/parse-events.c +++ b/tools/perf/tests/parse-events.c @@ -1783,8 +1783,8 @@ static int test_pmu_events(void) struct evlist_test e; char name[MAX_NAME]; - if (!strcmp(ent->d_name, ".") || - !strcmp(ent->d_name, "..")) + /* Names containing . are special and cannot be used directly */ + if (strchr(ent->d_name, '.')) continue; snprintf(name, MAX_NAME, "cpu/event=%s/u", ent->d_name); -- 2.5.5
[toc] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-06 17:00 +0200 |
| Message-ID | <rH4au-6he-1@gated-at.bofh.it> |
| In reply to | #1415152 |
Em Mon, Jun 06, 2016 at 11:51:48AM -0300, Arnaldo Carvalho de Melo escreveu: > But this gets us to the following error: > > [root@jouet ~]# perf test -v 5 2>&1 | tail > running test 49 'r1234/name=rawpmu/' > running test 50 '4:0x6530160/name=numpmu/' > running test 51 'L1-dcache-misses/name=cachepmu/' > running test 0 'cpu/config=10,config1,config2=3,period=1000/u' > running test 1 'cpu/config=1,name=krava/u,cpu/config=2/u' > running test 2 'cpu/config=1,call-graph=fp,time,period=100000/,cpu/config=2,call-graph=no,time=0,period=2000/' > failed to parse event 'topdown-total-slots:u,cpu/event=topdown-total-slots/u', err 1 > test child finished with 1 > ---- end ---- > parse events tests: FAILED! > [root@jouet ~]# cat /sys/devices/cpu/events/topdown-total-slots > event=0x3c,umask=0x0,any=1[root@jouet ~]# > [root@jouet ~]# > [root@jouet ~]# cat /sys/devices/cpu/events/bus-cycles > event=0x3c,umask=0x01 > [root@jouet ~]# > > I.e seems to be bickering about a missing newline in the sysfs entry, will check the parser... Maybe something else, as there are other files there without the newline and the code introducing the topdown events doesn't look to be problematic in this regard... - Arnaldo
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-06 17:20 +0200 |
| Message-ID | <rH4tQ-6DT-31@gated-at.bofh.it> |
| In reply to | #1415186 |
Em Mon, Jun 06, 2016 at 11:54:58AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Mon, Jun 06, 2016 at 11:51:48AM -0300, Arnaldo Carvalho de Melo escreveu:
> > But this gets us to the following error:
> >
> > [root@jouet ~]# perf test -v 5 2>&1 | tail
> > running test 49 'r1234/name=rawpmu/'
> > running test 50 '4:0x6530160/name=numpmu/'
> > running test 51 'L1-dcache-misses/name=cachepmu/'
> > running test 0 'cpu/config=10,config1,config2=3,period=1000/u'
> > running test 1 'cpu/config=1,name=krava/u,cpu/config=2/u'
> > running test 2 'cpu/config=1,call-graph=fp,time,period=100000/,cpu/config=2,call-graph=no,time=0,period=2000/'
> > failed to parse event 'topdown-total-slots:u,cpu/event=topdown-total-slots/u', err 1
> > test child finished with 1
> > ---- end ----
> > parse events tests: FAILED!
> > [root@jouet ~]# cat /sys/devices/cpu/events/topdown-total-slots
> > event=0x3c,umask=0x0,any=1[root@jouet ~]#
> > [root@jouet ~]#
> > [root@jouet ~]# cat /sys/devices/cpu/events/bus-cycles
> > event=0x3c,umask=0x01
> > [root@jouet ~]#
> >
> > I.e seems to be bickering about a missing newline in the sysfs entry, will check the parser...
>
> Maybe something else, as there are other files there without the newline
> and the code introducing the topdown events doesn't look to be
> problematic in this regard...
[root@jouet ~]# perf stat -e cpu/topdown-total-slots/ usleep 1
Performance counter stats for 'usleep 1':
1,756,310 cpu/topdown-total-slots/
0.000797426 seconds time elapsed
[root@jouet ~]# perf stat -e cpu/topdown-total-slots/u usleep 1
Performance counter stats for 'usleep 1':
606,770 cpu/topdown-total-slots/u
0.000728467 seconds time elapsed
[root@jouet ~]# perf stat -e cpu/event=topdown-total-slots/u usleep 1
Performance counter stats for 'usleep 1':
639,170 cpu/event=topdown-total-slots/u
0.000797547 seconds time elapsed
[root@jouet ~]#
Both work, i.e. unrestricted wrt kernel/user, user only (/u suffix),
like in the test, it is just when we try:
[root@jouet ~]# perf stat -e topdown-total-slots:u,cpu/event=topdown-total-slots/u usleep 1
event syntax error: 'topdown-total-slots:u,cpu/event=topdown-total-slots/u'
\___ parser error
Run 'perf list' for a list of valid events
Usage: perf stat [<options>] [<command>]
-e, --event <event> event selector. use 'perf list' to list available events
[root@jouet ~]#
that it fails, Jiri, probably something obvious to you? :-)
- Arnaldo
[toc] | [prev] | [next] | [standalone]
| From | Andi Kleen <ak@linux.intel.com> |
|---|---|
| Date | 2016-06-06 18:40 +0200 |
| Message-ID | <rH5Jf-7nV-13@gated-at.bofh.it> |
| In reply to | #1415215 |
> [root@jouet ~]# perf stat -e topdown-total-slots:u,cpu/event=topdown-total-slots/u usleep 1
> event syntax error: 'topdown-total-slots:u,cpu/event=topdown-total-slots/u'
> \___ parser error
> Run 'perf list' for a list of valid events
>
> Usage: perf stat [<options>] [<command>]
>
> -e, --event <event> event selector. use 'perf list' to list available events
> [root@jouet ~]#
>
> that it fails, Jiri, probably something obvious to you? :-)
Works for me here
./perf stat -e topdown-total-slots:u,cpu/event=topdown-total-slots/u sleep 1
Performance counter stats for 'sleep 1':
515,204 topdown-total-slots:u
514,712 cpu/event=topdown-total-slots/u
1.001438114 seconds time elapsed
Did you perhaps miss this hunk?
--- a/tools/perf/util/parse-events.l
+++ b/tools/perf/util/parse-events.l
@@ -259,6 +259,7 @@ cycles-ct { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
cycles-t { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
mem-loads { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
mem-stores { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
+topdown-[a-z-]+ { return str(yyscanner, PE_KERN
-Andi
--
ak@linux.intel.com -- Speaking for myself only
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-06 22:00 +0200 |
| Message-ID | <rH8QO-Oc-27@gated-at.bofh.it> |
| In reply to | #1415272 |
Em Mon, Jun 06, 2016 at 09:31:16AM -0700, Andi Kleen escreveu:
> > [root@jouet ~]# perf stat -e topdown-total-slots:u,cpu/event=topdown-total-slots/u usleep 1
> > event syntax error: 'topdown-total-slots:u,cpu/event=topdown-total-slots/u'
> > \___ parser error
> > that it fails, Jiri, probably something obvious to you? :-)
> Works for me here
>
> ./perf stat -e topdown-total-slots:u,cpu/event=topdown-total-slots/u sleep 1
>
> Performance counter stats for 'sleep 1':
>
> 515,204 topdown-total-slots:u
> 514,712 cpu/event=topdown-total-slots/u
>
> 1.001438114 seconds time elapsed
>
> Did you perhaps miss this hunk?
Yeah, the build process seems to be buggy here, not noticing that change
it seems not to have regenerated the .c files from that .l.
After I removed the build dir and rebuilt everything, it works now,
doing the docker-based lots-of-distros build now.
- Arnaldo
> --- a/tools/perf/util/parse-events.l
> +++ b/tools/perf/util/parse-events.l
> @@ -259,6 +259,7 @@ cycles-ct { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
> cycles-t { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
> mem-loads { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
> mem-stores { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
> +topdown-[a-z-]+ { return str(yyscanner, PE_KERN
>
> -Andi
> --
> ak@linux.intel.com -- Speaking for myself only
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-06 17:00 +0200 |
| Message-ID | <rH4au-6he-3@gated-at.bofh.it> |
| In reply to | #1415152 |
Em Mon, Jun 06, 2016 at 07:36:06AM -0700, Andi Kleen escreveu: > perf test tries to parse all entries in /sys/devices/cpu/events/. > Ignore the special entries like '.scale', which cannot be directly > parsed as an event. This patch assumes all files containing a '.' > are special and can be ignored. > +++ b/tools/perf/tests/parse-events.c > @@ -1783,8 +1783,8 @@ static int test_pmu_events(void) > - if (!strcmp(ent->d_name, ".") || > - !strcmp(ent->d_name, "..")) > + /* Names containing . are special and cannot be used directly */ > + if (strchr(ent->d_name, '.')) > continue; Ok, this is a more generic fix than the one I used here (adding: || strends(ent->d_name, ".scale"), I'll use yours, but this gets us to the following error: [root@jouet ~]# perf test -v 5 2>&1 | tail running test 49 'r1234/name=rawpmu/' running test 50 '4:0x6530160/name=numpmu/' running test 51 'L1-dcache-misses/name=cachepmu/' running test 0 'cpu/config=10,config1,config2=3,period=1000/u' running test 1 'cpu/config=1,name=krava/u,cpu/config=2/u' running test 2 'cpu/config=1,call-graph=fp,time,period=100000/,cpu/config=2,call-graph=no,time=0,period=2000/' failed to parse event 'topdown-total-slots:u,cpu/event=topdown-total-slots/u', err 1 test child finished with 1 ---- end ---- parse events tests: FAILED! [root@jouet ~]# cat /sys/devices/cpu/events/topdown-total-slots event=0x3c,umask=0x0,any=1[root@jouet ~]# [root@jouet ~]# [root@jouet ~]# cat /sys/devices/cpu/events/bus-cycles event=0x3c,umask=0x01 [root@jouet ~]# I.e seems to be bickering about a missing newline in the sysfs entry, will check the parser... - Arnaldo
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Andi Kleen <tipbot@zytor.com> |
|---|---|
| Date | 2016-06-08 10:40 +0200 |
| Subject | [tip:perf/core] perf test: Ignore .scale and other special files |
| Message-ID | <rHHbQ-6et-5@gated-at.bofh.it> |
| In reply to | #1415152 |
Commit-ID: 17a2634bcb88e52bd637fdaa47d7ff0bddb0188f Gitweb: http://git.kernel.org/tip/17a2634bcb88e52bd637fdaa47d7ff0bddb0188f Author: Andi Kleen <ak@linux.intel.com> AuthorDate: Mon, 6 Jun 2016 07:36:06 -0700 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Mon, 6 Jun 2016 12:11:14 -0300 perf test: Ignore .scale and other special files 'perf test' tries to parse all entries in /sys/devices/cpu/events/. Ignore the special entries like '.scale', which cannot be directly parsed as an event. This patch assumes all files containing a '.' are special and can be ignored. Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Link: http://lkml.kernel.org/r/1465223766-29902-1-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/tests/parse-events.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c index 7865f68..b2a2c74 100644 --- a/tools/perf/tests/parse-events.c +++ b/tools/perf/tests/parse-events.c @@ -1783,8 +1783,8 @@ static int test_pmu_events(void) struct evlist_test e; char name[MAX_NAME]; - if (!strcmp(ent->d_name, ".") || - !strcmp(ent->d_name, "..")) + /* Names containing . are special and cannot be used directly */ + if (strchr(ent->d_name, '.')) continue; snprintf(name, MAX_NAME, "cpu/event=%s/u", ent->d_name);
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web