Re: perf on 2.6.38-rc4 wedges my box

From: David Ahern
Date: Wed Feb 09 2011 - 15:12:32 EST




On 02/09/11 11:22, Jeff Moyer wrote:
> David Ahern <dsahern@xxxxxxxxx> writes:
>
>> Have you tried '-e cpu-clock' for S/W based profiling vs the default H/W
>> profiling? Add -v to see if the fallback to S/W is happening now.
>
> Thanks for the suggestion, David. I tried:
>
> # perf record -v ls
> Warning: ... trying to fall back to cpu-clock-ticks
>
> couldn't open /proc/-1/status
> couldn't open /proc/-1/maps
> [ls output]
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.008 MB perf.data (~363 samples) ]
>
> If I explicitly set '-e cpu-clock', then the output is the same,
> except that the warning is gone. What's up with the /proc/-1/*?

target_{pid,tid} are initialized to -1 in builtin-record.c I believe the
tid version is making its way through the event__synthesize_xxx code
(event__synthesize_thread -> __event__synthesize_thread ->
event__synthesize_comm and event__synthesize_mmap_events).

>
> Now, when running perf record -e cpu-clock on the aio-stress run,
> unsurprisingly, I get the same result:
>
> # perf record -e cpu-clock -v -- ./aio-stress -O -o 0 -r 4 -d 32 -b 16 /dev/sds
> couldn't open /proc/-1/status
> couldn't open /proc/-1/maps
> adding stage write
> starting with write
> file size 1024MB, record size 4KB, depth 32, ios per iteration 8
> max io_submit 16, buffer alignment set to 4KB
> threads 1 files 1 contexts 1 context offset 2MB verification off
> adding file /dev/sds thread 0
>
> and there it sits. In this case, however, I did not see the NOHZ
> warnings on the console, and this time the machine is still responding
> to ping, but nothing else.

cpu-clock is handled through hrtimers if that helps understand the lockup.

David

>
> Cheers,
> Jeff
--
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/