Re: [PATCH 5/5] perf report: Support callchains with relativeoverhead rate

From: Ingo Molnar
Date: Sun Jul 05 2009 - 04:34:27 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> The current callchain displays the overhead rates as absolute:
> relative to the total overhead.
>
> This patch provides relative overhead percentage, in which each
> branch of the callchain tree is a independant instrumentated object.
>
> You can produce such output by using the "relative" mode
> that you can lower in r, re, rel, etc...
>
> ./perf report -s sym -c relative
>
> Example:
>
> 8.46% [k] copy_user_generic_string
> |
> |--52.01%-- generic_file_aio_read
> | do_sync_read
> | vfs_read
> | |
> | |--97.20%-- sys_pread64
> | | system_call_fastpath
> | | pread64
> | |
> | --2.81%-- sys_read
> | system_call_fastpath
> | __read
> |
> |--39.85%-- generic_file_buffered_write
> | __generic_file_aio_write_nolock
> | generic_file_aio_write
> | do_sync_write
> | reiserfs_file_write
> | vfs_write
> | |
> | |--97.05%-- sys_pwrite64
> | | system_call_fastpath
> | | __pwrite64
> | |
> | --2.95%-- sys_write
> | system_call_fastpath
> | __write_nocancel
> [...]

Wow, this is extremely intuitive and powerful looking!

It's basically a fractal structure: each sub-graph looks like a
full-blown profile in itself. Thus the overhead of individual
components of the graph profile can be analyzed without having to
think in small numbers.

The above example shows it particularly well - it shows that in
regard to generic_file_buffered_write() overhead, the system is
doing 97% sys_pwrite64() calls and 3% sys_write() calls.

Thus i took the liberty to change your last patch in two ways: i
renamed 'relative' to 'fractal' (it was not a proper counterpart to
'graph' anyway - we have no 'absolute' output mode name either), and
i changed it to be the default output mode. This stuff rocks!

absolute-graph and flat mode can be displayed too, via the option,
as usual.

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/