Hi There,
On May 31, 2012, at 5:06 PM, Dmitry Antipov wrote:
On 05/31/2012 11:41 AM, Pantelis Antoniou wrote:
There are a number of problems that this patch solves.
Do you have a feedback from core perf developers?
Not yet. I need to have some internal review first and then post.
- The format used by default is the binary perf trace format which is
both non-portable between arches and non human editable. The format spr-replay uses is text based and easily understandable, and completely portable between arches& kernel version. It can been used to collect load data from an android ICS setup and then have the load analyzed in a normal linux x86 host.
I agree. But, there was a lot of work to make perf.data is really portable (although it's not so at this moment yet). Most probably others will have a strong objections against one more new data format just because a few unsolved issues with an old one.
I know this is far from optimal, but I need to have something that works now, and not have to wait until the perf developers manage to have a portable data format. And to be honest I don't want something as complicated as the perf data format, for the kind of analysis I want to do next.
The purpose for this patchset is not to get into mainline as it is, it is to have something that we can use for evaluating & developing a big.LITTLE aware MP scheduler.
Example use:
IIUC something is broken now. I did:
perf record -a -R -f -m 8192 -c 1 -e sched:sched_switch -e sched:sched_process_exit \ -e sched:sched_process_fork -e sched:sched_wakeup -e sched:sched_migrate_task /bin/ls -la /
and then 'perf sched spr-replay -l -n':
[kworker/1:1/20] S R:2746584 [sshd/3102] S R:7293700 [perf/3749] S R:0 [perf/3750] S R:22583006 [swapper/1/0] S R:19165041
No events recorded for 'ls'? Obviously wrong since 'perf report --stdio' shows:
# Samples: 134 of event 'sched:sched_switch' # Event count (approx.): 134 # # Overhead Command Shared Object Symbol # ........ ........... ............. ...... # 42.54% ls [unknown] [.] 00000000 41.79% kworker/1:1 [unknown] [.] 00000000 8.21% swapper [unknown] [.] 00000000 6.72% sshd [unknown] [.] 00000000 0.75% perf [unknown] [.] 00000000
I suppose 'ls' is incorrectly reported as [perf/3750] here.
Please do a perf sched spr-replay -l -n -d -d and send me the output. There was a change made to the way names are recorded, and this could have affected it.
And, finally, please fix annoying warnings about set-but-unused variables since this can't be compiled with -Werror (which is on by default) with never versions of gcc.
Dmitry
<set_but_unused.patch>
Which warnings? I don't use the latest linaro toolchain, so I get no such warnings. The compiler that I used last (for x86 since I'm not at my office) is "gcc (Ubuntu/Linaro 4.4.4-14ubuntu5.1) 4.4.5".
Feel free to fix them and send me a patch.
Regards
-- Pantelis