Re: [PATCH 00/19] perf: ftrace enhancement

From: Arnaldo Melo
Date: Sun May 10 2020 - 12:18:23 EST




On May 10, 2020 12:23:36 PM GMT-03:00, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>On Sun, 10 May 2020 23:06:09 +0800
>Changbin Du <changbin.du@xxxxxxxxx> wrote:
>
>> The perf has basic kernel ftrace support but lack support of most
>tracing
>> options. This serias is target to enhance the perf ftrace
>functionality so
>> that we can make full use of kernel ftrace with only perf.
>>
>> In general, this serias be cataloged into two main changes:
>> 1) Improve usability of existing functions. For example, we don't
>need to type
>> extra option to select the tracer.
>> 2) Add new options to support all other ftrace functions.
>>
>> Here is a glance of all ftrace functions with this serias:
>> * - improved existing options.
>> + - new added options.
>>
>> $ sudo perf ftrace -h
>>
>> Usage: perf ftrace [<options>] [<command>]
>> or: perf ftrace [<options>] -- <command> [<options>]
>>
>> * -a, --all-cpus system-wide collection from all CPUs
>> + -b, --buffer-size <n>
>> size of per cpu buffer in kb
>> -C, --cpu <cpu> list of cpus to monitor
>> + -d, --delay <n> Wait <n> ms before tracing
>> -D, --graph-depth <n>
>> Max depth for function graph tracer
>> * -G, --graph-funcs <func>
>> Set graph filter on given functions (imply
>to use function_graph tracer)
>> -g, --nograph-funcs <func>
>> Set nograph filter on given functions
>(imply to use function_graph tracer)
>> + -L, --list-functions List available functions to filter
>> + -l, --long-info Show process names, PIDs, timestamps,
>irq-info if available
>> -N, --notrace-funcs <func>
>> do not trace given functions
>> + -P, --no-pager Do not use pager
>> -p, --pid <pid> trace on existing process id
>> + -s, --func-stack-trace
>> Show kernel stack trace for function tracer
>> + -t, --tid <tid> trace on existing thread id (exclusive to
>--pid)
>> -T, --trace-funcs <func>
>> trace given functions only
>> + -u, --userstacktrace Show stacktrace of the current user space
>thread
>> -v, --verbose be more verbose
>> + --funcgraph-tail Show function tails comment (function_graph
>only)
>> + --latency-format displays additional information about the
>latency (function_graph only)
>> + --nofuncgraph-irqs
>> Ignore functions that happen inside
>interrupt (function_graph only)
>> + --nosleep-time Measure on-CPU time only (function_graph
>only)
>> + --trace-children Trace children processes
>> + --tracing-thresh <n>
>> Only show functions of which the duration
>is greater than <n>Âs
>>
>
>Note, we are working on making more of the trace-cmd functionality into
>libraries. See this work here:
>
>https://lore.kernel.org/r/20191219113502.28964-2-tz.stoyanov@xxxxxxxxx
>
>Which introduces a libtracefs, that is to handle all the work needed to
>interact with the tracefs directory. This will also be useful for perf
>to read the event directory without having to open code that work.
>
>I'm all for giving perf the functionality of ftrace, but I would like
>to have it do so with a more generic solution that other tools could
>benefit from as well.
>

I think in time things will fall into place, 'perf ftrace' has potential as a way for perf users to have a familiar interface to ftrace, and that I think it's its raison d'Ãtre, in time well go on finding ways to have common code.

Tomorrow I'll go over this patch set,

Thanks,

- Arnaldo

>Thanks!
>
>-- Steve

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.