tools/bootconfig: Use per-group/all enable option in ftrace2bconf script

Use per-group/all enable option instead of ftrace.events option.
This will make the bootconfig file more readable.

Link: https://lkml.kernel.org/r/162856129436.203126.12462564671412940618.stgit@devnote2

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
Masami Hiramatsu 2021-08-10 11:08:14 +09:00 committed by Steven Rostedt (VMware)
parent f134ebb281
commit 1eaad3ac3f
1 changed files with 18 additions and 6 deletions

View File

@ -92,6 +92,10 @@ referred_vars() {
grep "^hist" $1/trigger | grep -o '$[a-zA-Z0-9]*' grep "^hist" $1/trigger | grep -o '$[a-zA-Z0-9]*'
} }
event_is_enabled() { # enable-file
test -f $1 & grep -q "1" $1
}
per_event_options() { # event-dir per_event_options() { # event-dir
evdir=$1 evdir=$1
# Check the special event which has no filter and no trigger # Check the special event which has no filter and no trigger
@ -113,7 +117,9 @@ per_event_options() { # event-dir
emit_kv $PREFIX.event.$group.$event.actions += \'$action\' emit_kv $PREFIX.event.$group.$event.actions += \'$action\'
done done
# enable is not checked; this is done by set_event in the instance. if [ $GROUP_ENABLED -eq 0 ] && event_is_enabled $evdir/enable; then
emit_kv $PREFIX.event.$group.$event.enable
fi
val=`cat $evdir/filter` val=`cat $evdir/filter`
if [ "$val" != "none" ]; then if [ "$val" != "none" ]; then
emit_kv $PREFIX.event.$group.$event.filter = "$val" emit_kv $PREFIX.event.$group.$event.filter = "$val"
@ -137,8 +143,19 @@ event_options() {
kprobe_event_options kprobe_event_options
synth_event_options synth_event_options
fi fi
ALL_ENABLED=0
if event_is_enabled $INSTANCE/events/enable; then
emit_kv $PREFIX.event.enable
ALL_ENABLED=1
fi
for group in `ls $INSTANCE/events/` ; do for group in `ls $INSTANCE/events/` ; do
[ ! -d $INSTANCE/events/$group ] && continue [ ! -d $INSTANCE/events/$group ] && continue
GROUP_ENABLED=$ALL_ENABLED
if [ $ALL_ENABLED -eq 0 ] && \
event_is_enabled $INSTANCE/events/$group/enable ;then
emit_kv $PREFIX.event.$group.enable
GROUP_ENABLED=1
fi
for event in `ls $INSTANCE/events/$group/` ;do for event in `ls $INSTANCE/events/$group/` ;do
[ ! -d $INSTANCE/events/$group/$event ] && continue [ ! -d $INSTANCE/events/$group/$event ] && continue
per_event_options $INSTANCE/events/$group/$event per_event_options $INSTANCE/events/$group/$event
@ -226,11 +243,6 @@ instance_options() { # [instance-name]
emit_kv $PREFIX.tracing_on = $val emit_kv $PREFIX.tracing_on = $val
fi fi
val=
for i in `cat $INSTANCE/set_event`; do
val="$val, $i"
done
[ "$val" ] && emit_kv $PREFIX.events = "${val#,}"
val=`cat $INSTANCE/current_tracer` val=`cat $INSTANCE/current_tracer`
[ $val != nop ] && emit_kv $PREFIX.tracer = $val [ $val != nop ] && emit_kv $PREFIX.tracer = $val
if grep -qv "^#" $INSTANCE/set_ftrace_filter $INSTANCE/set_ftrace_notrace; then if grep -qv "^#" $INSTANCE/set_ftrace_filter $INSTANCE/set_ftrace_notrace; then