Messages in this thread Patch in this message | | | Date | Tue, 12 Nov 2013 09:59:33 +0200 | From | Adrian Hunter <> | Subject | Re: "Test object code reading" failing, debug messages don't help |
| |
On 11/11/13 21:58, Arnaldo Carvalho de Melo wrote: > Em Mon, Nov 11, 2013 at 04:55:59PM -0300, Arnaldo Carvalho de Melo escreveu: >> Em Mon, Nov 11, 2013 at 04:51:17PM -0300, Arnaldo Carvalho de Melo escreveu: >>> Hi Adrian, >>> >>> I have perf test failing here: >>> >>> [root@ssdandy ~]# perf test 21 >>> 21: Test object code reading : FAILED! >>> [root@ssdandy ~]# >>> >>> Try it with -v, but all messages, except for that elf header, which I >>> assume is for a previous entry that is not suitable and should not be >>> considered, seems to say all is well, except that the test fails :-\ >> >> If I try gdb on test__code_reading, go on stepping thru it to try to >> figure out why it fails, it works :-\ > > Why this is so is still unclear, but since the other problem I had was > due to the kernel reducing the max sample_freq, I tried: > > [root@ssdandy ~]# echo 10000 > /proc/sys/kernel/perf_event_max_sample_rate > [root@ssdandy ~]# perf test 21 > 21: Test object code reading : Ok > [root@ssdandy ~]# echo 7000 > /proc/sys/kernel/perf_event_max_sample_rate > [root@ssdandy ~]# perf test 21 > 21: Test object code reading : FAILED! > [root@ssdandy ~]#
From: Adrian Hunter <adrian.hunter@intel.com> Subject: [PATCH] perf tests: Handle throttle events in 'object code reading' test
Unhandled events cause an error that fails the test
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- tools/perf/tests/code-reading.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c index 6d9dc19..85d4919 100644 --- a/tools/perf/tests/code-reading.c +++ b/tools/perf/tests/code-reading.c @@ -275,8 +275,19 @@ static int process_event(struct machine *machine, struct perf_evlist *evlist, if (event->header.type == PERF_RECORD_SAMPLE) return process_sample_event(machine, evlist, event, state); - if (event->header.type < PERF_RECORD_MAX) - return machine__process_event(machine, event, NULL); + if (event->header.type == PERF_RECORD_THROTTLE || + event->header.type == PERF_RECORD_UNTHROTTLE) + return 0; + + if (event->header.type < PERF_RECORD_MAX) { + int ret; + + ret = machine__process_event(machine, event, NULL); + if (ret < 0) + pr_debug("machine__process_event failed, event type %u\n", + event->header.type); + return ret; + } return 0; } -- 1.7.11.7
| |