Re: [PATCH] kselftests: ftrace: limit the executing time by reading from cached trace

From: Masami Hiramatsu
Date: Tue Oct 19 2021 - 22:20:35 EST


On Mon, 18 Oct 2021 22:16:36 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Mon, 18 Oct 2021 21:26:16 +0800
> Li Zhijian <lizhijian@xxxxxxxxxxxxxx> wrote:
>
> > LKP/0day observed that kselftests/ftrace cannot finish within 1 hour on
> > a 96 cpus platform where it hangs in the line like:
> > 'cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l'
> > subsystem-enable.tc
> >
> > It seems that trace will keep growing during it's read by 'cat' command.
> > Consequently, trace becomes too large to finish reading.
> >
> > replace 'cat trace' by:
> > $ sed -i 's/cat trace |/read_cached_trace |/g' $(find test.d -name "*.tc")
> >
>
> Instead, what happens if you add this command to each test?
>
> if [ -t options/pause-on-trace ]; then
> echo 1 > options/pause-on-trace
> fi
>
> We also need to add to the "initialize_ftrace" function in test.d/functions.
>
> if [ -t options/pause-on-trace ]; then
> echo 0 > options/pause-on-trace
> fi

Hmm, by the way, shouldn't we set this feature by default?
There are many "cat trace | grep ..." style test code in ftracetest just for
checking whether the event is recorded. At least for the ftracetest, it should
be set unless the testcase is explicitly disable it.

Thank you.

>
> -- Steve
>
> > CC: Philip Li <philip.li@xxxxxxxxx>
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > Signed-off-by: Li Zhijian <lizhijian@xxxxxxxxxxxxxx>
> > ---


--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>