On Mon, Jan 30, 2023 at 11:59 AM Steven Rostedt rostedt@goodmis.org wrote:
On Mon, 30 Jan 2023 11:52:03 -0800 Alexei Starovoitov alexei.starovoitov@gmail.com wrote:
On Mon, Jan 30, 2023 at 10:19 AM Ross Zwisler zwisler@chromium.org 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...
It will make the test code much more robust.
The point is not about tests. The point is that this change might break some users that are working today with /sys/kernel/debug/tracing. It also might be mounted differently. For example from another system: cat /proc/mounts|grep trace tracefs /sys/kernel/tracing tracefs rw,nosuid,nodev,noexec,relatime 0 0 tracefs /sys/kernel/debug/tracing tracefs rw,relatime 0 0
So I suggest leaving the code as-is.