Re: [PATCH v2 00/10] tracing/boot: Add histogram syntax support in boot-time tracing

From: Masami Hiramatsu
Date: Mon Aug 09 2021 - 19:38:29 EST



Oops, I forgot to update the title. This is v3.

On Tue, 10 Aug 2021 00:47:49 +0900
Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:

> Hi,
>
> Here is the 3rd version of boot-time tracing to add histogram
> syntax extension with a bugfix related hist-trigger.
>
> In this version, I updated the first bugfix to use IS_ENABLED()
> and show error if CONFIG_HIST_TRIGGERS=n ([1/10]), allow the spaces
> in the variable expressions ([2/10]), and update ktest bootconfig
> testcase ([10/10]).
>
>
> 'Histogram' options
> -------------------
> Currently, the boot-time tracing only supports per-event actions
> for setting trigger actions. This is enough for short actions
> like 'traceon', 'traceoff', 'snapshot' etc. However, it is not good
> for the 'hist' trigger action because it is usually too long to write
> it in a single string especially if it has an 'onmatch' action.
>
> Here is the new syntax.
>
> ftrace[.instance.INSTANCE].event.GROUP.EVENT.hist[.N] {
> keys = <KEY>[,...]
> values = <VAL>[,...]
> sort = <SORT-KEY>[,...]
> size = <ENTRIES>
> name = <HISTNAME>
> var { <VAR> = <EXPR> ... }
> pause|continue|clear
> onmax|onchange[.M] { var = <VAR>, <ACTION> [= <PARAM>] }
> onmatch[.M] { event = <EVENT>, <ACTION> [= <PARAM>] }
> filter = <FILTER>
> }
>
> Where <ACTION> is one of below;
>
> trace = <EVENT>, <ARG1>[, ...]
> save = <ARG1>[, ...]
> snapshot
>
> And "N" and "M" are digit started strings for multiple histograms
> and actions.
>
> For example,
>
> initcall.initcall_finish.actions =
> "hist:keys=func:lat=common_timestamp.usecs-$ts0:onmatch(initcall.initcall_start).trace(initcall_latency,func,$lat)"
>
> This can be written as below;
>
> initcall.initcall_finish.hist {
> keys = func
> var.lat = common_timestamp.usecs-$ts0
> onmatch {
> event = initcall.initcall_start
> trace = initcall_latency, func, $lat
> }
> }
>
> Also, you can add comments for each options.
>
>
> Thank you,
>
> ---
>
> Masami Hiramatsu (10):
> tracing/boot: Fix a hist trigger dependency for boot time tracing
> tracing/boot: Add per-event histogram action options
> tracing/boot: Support multiple handlers for per-event histogram
> tracing/boot: Support multiple histograms for each event
> tracing/boot: Show correct histogram error command
> Documentation: tracing: Add histogram syntax to boot-time tracing
> tools/bootconfig: Support per-group/all event enabling option
> tools/bootconfig: Add histogram syntax support to bconf2ftrace.sh
> tools/bootconfig: Use per-group/all enable option in ftrace2bconf script
> bootconfig/tracing/ktest: Update ktest example for boot-time tracing
>
>
> Documentation/trace/boottime-trace.rst | 85 +++++-
> kernel/trace/trace_boot.c | 301 ++++++++++++++++++++
> tools/bootconfig/scripts/bconf2ftrace.sh | 97 ++++++
> tools/bootconfig/scripts/ftrace2bconf.sh | 24 +-
> tools/bootconfig/scripts/xbc.sh | 4
> .../ktest/examples/bootconfigs/boottrace.bconf | 20 +
> .../ktest/examples/bootconfigs/verify-boottrace.sh | 2
> 7 files changed, 508 insertions(+), 25 deletions(-)
>
> --
> Masami Hiramatsu (Linaro) <mhiramat@xxxxxxxxxx>


--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>