Re: [GIT PULL||RFC 00/11] perf library and regression testing improvements

From: Stephane Eranian
Date: Tue Jan 04 2011 - 08:59:11 EST


Arnaldo,

The version of perf at tip-x86 commit 9274b36, segfaults for me:

$ gdb perf
(gdb) r stat date

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fdc602eb6e0 (LWP 4590)]
cmd_stat (argc=1, argv=0x7fff6fa2a9f0, prefix=<value optimized out>)
at builtin-stat.c:206
206 update_stats(&ps->res_stats[i], count[i]);
(gdb) bt
#0 cmd_stat (argc=1, argv=0x7fff6fa2a9f0, prefix=<value optimized
out>) at builtin-stat.c:206
#1 0x0000000000405c8b in handle_internal_command (argc=2,
argv=0x7fff6fa2a9f0) at perf.c:286
#2 0x00000000004060b0 in main (argc=2, argv=0x7fff6fa2a680) at perf.c:403

Most like ps is NULL.


On Tue, Jan 4, 2011 at 8:16 AM, Ingo Molnar <mingo@xxxxxxx> wrote:
>
> * Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxx> wrote:
>
>> Hi Ingo, Peter et al,
>>
>> Â Â Â Trying to simplify using the API for tools and more specifically for
>> 'perf test' regression tests, please take a look, perhaps starting from the last
>> changeset, that implements a regression test using the resulting library API.
>>
>> Â Â Â It also reduces the 'perf' tool footprint by not using hard coded array
>> sizes, more need to be done, but should be a good start, one changeset shows a
>> good reduction in BSS use.
>>
>> Â Â Â Suggestions for naming most welcome, I thought about using "event__",
>> but that is taken, "perf_event__", but thought it would clash with "event_t",
>> so used the jargon used for the '-e' parameters: "Event Selector", but don't
>> like it that much, what do you think?
>>
>> Â Â Â Writing the first regression test I think there are more ways to simplify,
>> on top of these, like not requiring a thread_map, i.e. passing NULL for that
>> parameter would mean: self-monitor, etc.
>>
>> Â Â Â Â If you are pleased as-is, please pull from:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 perf/test
>>
>> Regards,
>>
>> - Arnaldo
>>
>> Arnaldo Carvalho de Melo (11):
>> Â perf tools: Introduce event selectors
>> Â perf evsel: Adopt MATCH_EVENT macro from 'stat'
>> Â perf util: Move do_read from session to util
>> Â perf evsel: Delete the event selectors at exit
>> Â perf evsel: Steal the counter reading routines from stat
>> Â perf evsel: Introduce per cpu and per thread open helpers
>> Â perf tools: Refactor cpumap to hold nr and the map
>> Â perf tools: Refactor all_tids to hold nr and the map
>> Â perf evsel: Use {cpu,thread}_map to shorten list of parameters
>> Â perf evsel: Auto allocate resources needed for some methods
>> Â perf test: Add test for counting open syscalls
>>
>> Âtools/perf/Makefile        Â|  Â4 +
>> Âtools/perf/builtin-record.c    Â| Â152 +++++++--------
>> Âtools/perf/builtin-stat.c     Â| Â368 +++++++++++++++---------------------
>> Âtools/perf/builtin-test.c     Â|  83 ++++++++
>> Âtools/perf/builtin-top.c      | Â221 ++++++++++++----------
>> Âtools/perf/perf.c         Â|  Â2 +
>> Âtools/perf/util/cpumap.c      | Â123 +++++++++---
>> Âtools/perf/util/cpumap.h      |  10 +-
>> Âtools/perf/util/evsel.c      Â| Â186 ++++++++++++++++++
>> Âtools/perf/util/evsel.h      Â| Â115 +++++++++++
>> Âtools/perf/util/header.c      |  15 +-
>> Âtools/perf/util/header.h      |  Â3 +-
>> Âtools/perf/util/parse-events.c   |  58 ++++--
>> Âtools/perf/util/parse-events.h   |  18 ++-
>> Âtools/perf/util/session.c     Â|  22 +--
>> Âtools/perf/util/session.h     Â|  Â1 -
>> Âtools/perf/util/thread.c      |  43 +++--
>> Âtools/perf/util/thread.h      |  15 ++-
>> Âtools/perf/util/trace-event-info.c | Â 30 ++--
>> Âtools/perf/util/trace-event.h   Â|  Â5 +-
>> Âtools/perf/util/util.c       |  17 ++
>> Âtools/perf/util/util.h       |  Â1 +
>> Âtools/perf/util/xyarray.c     Â|  20 ++
>> Âtools/perf/util/xyarray.h     Â|  20 ++
>> Â24 files changed, 1013 insertions(+), 519 deletions(-)
>> Âcreate mode 100644 tools/perf/util/evsel.c
>> Âcreate mode 100644 tools/perf/util/evsel.h
>> Âcreate mode 100644 tools/perf/util/xyarray.c
>> Âcreate mode 100644 tools/perf/util/xyarray.h
>
> Pulled, thanks a lot Arnaldo!
>
> Â Â Â ÂIngo
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/