[BUG] perf: trace -s script is broken

From: Stephane Eranian
Date: Thu Aug 12 2010 - 05:39:47 EST


Hi,

I am trying to understand how you're supposed to use perf trace with a
script using tip-x86.
I am running into several problems.

I did:
$ make prefix=/usr
$ sudo make install prefix=/usr

$ sudo perf record -c 1 -e raw_syscalls:sys_enter -a -- sleep 1
$ sudo perf trace -s sctop.py
Can't open python script "sctop.py": No such file or directory

I looked into this a bit more, and sure enough, it seems perf is only looking
in the current subdir to find sctop.py. However if you do:
$ perf trace -l
List of available trace scripts:
failed-syscalls [comm] system-wide failed syscalls
rw-by-file <comm> r/w activity for a program, by file
rw-by-pid system-wide r/w activity
rwtop [interval] system-wide r/w top
wakeup-latency system-wide min/max/avg wakeup latency
workqueue-stats workqueue stats (ins/exe/create/destroy)
failed-syscalls-by-pid [comm] system-wide failed syscalls, by pid
sctop [comm] [interval] syscall top
syscall-counts-by-pid [comm] system-wide syscall counts, by pid
syscall-counts [comm] system-wide syscall counts

The listing requires trace to look at /usr/libexec/perf-core/scripts/*

I think in builtin-trace.c, you need to add the path prefix, perf_path_exec()
to the script_name for this to work correctly. Or am I missing something here?

Similarly, all the -report scripts installed via make install, still
have the ~/libexec
prefix hardcoded into them. I believe those should be relative to the
install prefix
instead.
--
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/