[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linaro-dev
Subject:    [PATCH] [perf] sched spr-replay load record/playback.
From:       pantelis.antoniou () gmail ! com (Pantelis Antoniou)
Date:       2012-05-31 19:04:25
Message-ID: 05CC98E0-B2CD-4333-A2C1-28549DCAA9B5 () antoniou-consulting ! com
[Download RAW message or body]

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.

>> 1. 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



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic