From: Steven Rostedt <[email protected]> Commit f4a771cc684c7 ("tracing: Have show_event_filters/triggers files take trace array ref") fixed a bug where the show_event_filters and triggers did not take a trace array reference allowing an instance to be removed while active. This would have the reader of these files read data that was freed by the remove.
Update the instance test to read all the files in the instance, instance/events, instance/events/sched and instance/events/sched/sched_switch directories (with the exception of not reading trace or trace_pipe). This would hopefully catch issues with files not taking references. Signed-off-by: Steven Rostedt <[email protected]> --- .../ftrace/test.d/instances/instance-event.tc | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/ftrace/test.d/instances/instance-event.tc b/tools/testing/selftests/ftrace/test.d/instances/instance-event.tc index b0e9d3abbf2f..9374c20c6aaa 100644 --- a/tools/testing/selftests/ftrace/test.d/instances/instance-event.tc +++ b/tools/testing/selftests/ftrace/test.d/instances/instance-event.tc @@ -44,6 +44,19 @@ instance_set() { done 2> /dev/null } +instance_cat() { + while :; do + find instances/foo -maxdepth 1 -type f ! \( -name trace -o -name trace_pipe \) -exec head {} \; + sleep 0.1 + find instances/foo/events -maxdepth 1 -type f -exec cat {} \; + sleep 0.1 + find instances/foo/events/sched -maxdepth 1 -type f -exec cat {} \; + sleep 0.1 + find instances/foo/events/sched/sched_waking -maxdepth 1 -type f -exec cat {} \; + sleep 0.1 + done 2> /dev/null +} + instance_set & p1=$! echo $p1 @@ -52,15 +65,20 @@ instance_read & p2=$! echo $p2 +instance_cat & +p3=$! +echo $p3 + for i in `seq 10`; do instance_slam done +kill -1 $p3 kill -1 $p2 kill -1 $p1 echo "Wait for processes to finish" -wait $p1 $p2 +wait $p1 $p2 $p3 echo "all processes finished, wait for cleanup" sleep 1 -- 2.53.0
