tools/bootconfig: Use per-group/all enable option in ftrace2bconf script
authorMasami Hiramatsu <mhiramat@kernel.org>
Tue, 10 Aug 2021 02:08:14 +0000 (11:08 +0900)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Mon, 16 Aug 2021 15:39:50 +0000 (11:39 -0400)
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>
tools/bootconfig/scripts/ftrace2bconf.sh

index a0c3bcc..fbaf07d 100755 (executable)
@@ -92,6 +92,10 @@ referred_vars() {
        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
        evdir=$1
        # 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\'
        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`
        if [ "$val" != "none" ]; then
                emit_kv $PREFIX.event.$group.$event.filter = "$val"
@@ -137,8 +143,19 @@ event_options() {
                kprobe_event_options
                synth_event_options
        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
                [ ! -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
                        [ ! -d $INSTANCE/events/$group/$event ] && continue
                        per_event_options $INSTANCE/events/$group/$event
@@ -226,11 +243,6 @@ instance_options() { # [instance-name]
                emit_kv $PREFIX.tracing_on = $val
        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 != nop ] && emit_kv $PREFIX.tracer = $val
        if grep -qv "^#" $INSTANCE/set_ftrace_filter $INSTANCE/set_ftrace_notrace; then