lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 10 Aug 2021 11:07:05 +0900 From: Masami Hiramatsu <mhiramat@...nel.org> To: Steven Rostedt <rostedt@...dmis.org> Cc: linux-kernel@...r.kernel.org, Tom Zanussi <zanussi@...nel.org>, Masami Hiramatsu <mhiramat@...nel.org> Subject: [PATCH v4 00/10] tracing/boot: Add histogram syntax support in boot-time tracing Hi, Here is the 4th version of boot-time tracing to add histogram syntax extension with a bugfix related hist-trigger. The last version is here (NOTE: the subject version was wrong) https://lore.kernel.org/lkml/162852406891.143877.12110677006587392853.stgit@devnote2/ This version fixes build warnings and some issues; Changes from v3: [2/10] - Add 'const' qualifier for @str parameter of append_str_nospace(). [5/10] - Fix to add braces for if block. [8/10] - Fix to remove spaces in the expression for the variables. Changes from v2: [1/10] - Use IS_ENABLED() instead of #ifdef and show an error. [2/10] - Allow var expression includes spaces. [4/10] - Fixes a build error when CONFIG_HIST_TRIGGERS=n. [10/10] - Newly added. '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 | 302 ++++++++++++++++++++ tools/bootconfig/scripts/bconf2ftrace.sh | 101 +++++++ 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, 513 insertions(+), 25 deletions(-) -- Masami Hiramatsu (Linaro) <mhiramat@...nel.org>
Powered by blists - more mailing lists