All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/10] tracing/boot: Add histogram syntax support in boot-time tracing
@ 2021-08-09 15:47 Masami Hiramatsu
  2021-08-09 15:47 ` [PATCH v2 01/10] tracing/boot: Fix a hist trigger dependency for boot time tracing Masami Hiramatsu
                   ` (10 more replies)
  0 siblings, 11 replies; 15+ messages in thread
From: Masami Hiramatsu @ 2021-08-09 15:47 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-kernel, Tom Zanussi, Masami Hiramatsu

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@kernel.org>

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-08-10  0:50 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-09 15:47 [PATCH v2 00/10] tracing/boot: Add histogram syntax support in boot-time tracing Masami Hiramatsu
2021-08-09 15:47 ` [PATCH v2 01/10] tracing/boot: Fix a hist trigger dependency for boot time tracing Masami Hiramatsu
2021-08-09 15:48 ` [PATCH v2 02/10] tracing/boot: Add per-event histogram action options Masami Hiramatsu
2021-08-09 19:19   ` kernel test robot
2021-08-10  0:33   ` Masami Hiramatsu
2021-08-09 15:48 ` [PATCH v2 03/10] tracing/boot: Support multiple handlers for per-event histogram Masami Hiramatsu
2021-08-09 15:48 ` [PATCH v2 04/10] tracing/boot: Support multiple histograms for each event Masami Hiramatsu
2021-08-09 15:48 ` [PATCH v2 05/10] tracing/boot: Show correct histogram error command Masami Hiramatsu
2021-08-10  0:48   ` Masami Hiramatsu
2021-08-09 15:48 ` [PATCH v2 06/10] Documentation: tracing: Add histogram syntax to boot-time tracing Masami Hiramatsu
2021-08-09 15:48 ` [PATCH v2 07/10] tools/bootconfig: Support per-group/all event enabling option Masami Hiramatsu
2021-08-09 15:48 ` [PATCH v2 08/10] tools/bootconfig: Add histogram syntax support to bconf2ftrace.sh Masami Hiramatsu
2021-08-09 15:48 ` [PATCH v2 09/10] tools/bootconfig: Use per-group/all enable option in ftrace2bconf script Masami Hiramatsu
2021-08-09 15:49 ` [PATCH v2 10/10] bootconfig/tracing/ktest: Update ktest example for boot-time tracing Masami Hiramatsu
2021-08-09 23:38 ` [PATCH v2 00/10] tracing/boot: Add histogram syntax support in " Masami Hiramatsu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.