Re: [PATCH 3/9] selftests/bpf: use canonical ftrace path

From: Steven Rostedt
Date: Mon Jan 30 2023 - 15:00:04 EST


On Mon, 30 Jan 2023 11:52:03 -0800
Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote:

> On Mon, Jan 30, 2023 at 10:19 AM Ross Zwisler <zwisler@xxxxxxxxxxxx> wrote:
> >
> > The canonical location for the tracefs filesystem is at /sys/kernel/tracing.
> >
> > But, from Documentation/trace/ftrace.rst:
> >
> > Before 4.1, all ftrace tracing control files were within the debugfs
> > file system, which is typically located at /sys/kernel/debug/tracing.
> > For backward compatibility, when mounting the debugfs file system,
> > the tracefs file system will be automatically mounted at:
> >
> > /sys/kernel/debug/tracing
> >
> > Many tests in the bpf selftest code still refer to this older debugfs
> > path, so let's update them to avoid confusion.
>
> I wish that was the case, but in reality there are still systems
> out there where tracefs is only mounted in that old location.
> For example in one my VMs:
>
> $ cat /proc/mounts |grep tracefs
> tracefs /sys/kernel/debug/tracing tracefs rw,relatime 0 0
> $ ls /sys/kernel/tracing/
> $ uname -r
> 6.2.0-rc5-01030-gc1a3daf7363b
>
> So this change will break the tests. We cannot do it.

Could we add a way to try to mount it?

If anything, the tests should not have the path hard coded. It should then
look to see if it is mounted and use the path that is found. Otherwise it
should try mounting it at the correct location.

Feel free to take the code from libtracefs (and modify it):

https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/tree/src/tracefs-utils.c#n89

It will make the test code much more robust.

-- Steve