Re: [FIX PATCH] selftests: tracing: Fix to unmount tracefs for recovering environment

From: Google
Date: Mon Sep 11 2023 - 22:08:06 EST


On Mon, 11 Sep 2023 13:09:09 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Sat, 9 Sep 2023 18:36:39 +0900
> "Masami Hiramatsu (Google)" <mhiramat@xxxxxxxxxx> wrote:
>
> > From: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
> >
> > Fix to unmount the tracefs if the ftracetest mounted it for recovering
> > system environment. If the tracefs is already mounted, this does nothing.
> >
> > Suggested-by: Mark Brown <broonie@xxxxxxxxxx>
> > Link: https://lore.kernel.org/all/29fce076-746c-4650-8358-b4e0fa215cf7@xxxxxxxxxxxxx/
> > Fixes: cbd965bde74c ("ftrace/selftests: Return the skip code when tracing directory not configured in kernel")
> > Signed-off-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
> > ---
> > tools/testing/selftests/ftrace/ftracetest | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
> > index cb5f18c06593..89c212d82256 100755
> > --- a/tools/testing/selftests/ftrace/ftracetest
> > +++ b/tools/testing/selftests/ftrace/ftracetest
> > @@ -31,6 +31,9 @@ err_ret=1
> > # kselftest skip code is 4
> > err_skip=4
> >
> > +# umount required
> > +UMOUNT_DIR=""
> > +
> > # cgroup RT scheduling prevents chrt commands from succeeding, which
> > # induces failures in test wakeup tests. Disable for the duration of
> > # the tests.
> > @@ -45,6 +48,9 @@ setup() {
> >
> > cleanup() {
> > echo $sched_rt_runtime_orig > $sched_rt_runtime
> > + if [ "${UMOUNT_DIR}" ]; then
>
> Shouldn't the above be:
>
> if [ ! -z "${UNMOUNT_DIR}" ]; then
>
> ?

I think both are good.
What about using '-n' explictly?

[ -n "${UNMOUNT_DIR}" ]

Thanks,

>
> -- Steve
>
> > + umount ${UMOUNT_DIR} ||:
> > + fi
> > }
> >
> > errexit() { # message
> > @@ -160,11 +166,13 @@ if [ -z "$TRACING_DIR" ]; then
> > mount -t tracefs nodev /sys/kernel/tracing ||
> > errexit "Failed to mount /sys/kernel/tracing"
> > TRACING_DIR="/sys/kernel/tracing"
> > + UMOUNT_DIR=${TRACING_DIR}
> > # If debugfs exists, then so does /sys/kernel/debug
> > elif [ -d "/sys/kernel/debug" ]; then
> > mount -t debugfs nodev /sys/kernel/debug ||
> > errexit "Failed to mount /sys/kernel/debug"
> > TRACING_DIR="/sys/kernel/debug/tracing"
> > + UMOUNT_DIR=${TRACING_DIR}
> > else
> > err_ret=$err_skip
> > errexit "debugfs and tracefs are not configured in this kernel"
>


--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>