Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tracing: mark user_events as BROKEN

After being merged, user_events become more visible to a wider audience
that have concerns with the current API.

It is too late to fix this for this release, but instead of a full
revert, just mark it as BROKEN (which prevents it from being selected in
make config). Then we can work finding a better API. If that fails,
then it will need to be completely reverted.

To not have the code silently bitrot, still allow building it with
COMPILE_TEST.

And to prevent the uapi header from being installed, then later changed,
and then have an old distro user space see the old version, move the
header file out of the uapi directory.

Surround the include with CONFIG_COMPILE_TEST to the current location,
but when the BROKEN tag is taken off, it will use the uapi directory,
and fail to compile. This is a good way to remind us to move the header
back.

Link: https://lore.kernel.org/all/20220330155835.5e1f6669@gandalf.local.home
Link: https://lkml.kernel.org/r/20220330201755.29319-1-mathieu.desnoyers@efficios.com
Suggested-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Steven Rostedt (Google) and committed by
Linus Torvalds
1cd927ad 88e6c020

+6
include/uapi/linux/user_events.h include/linux/user_events.h
+1
kernel/trace/Kconfig
··· 767 bool "User trace events" 768 select TRACING 769 select DYNAMIC_EVENTS 770 help 771 User trace events are user-defined trace events that 772 can be used like an existing kernel trace event. User trace
··· 767 bool "User trace events" 768 select TRACING 769 select DYNAMIC_EVENTS 770 + depends on BROKEN || COMPILE_TEST # API needs to be straighten out 771 help 772 User trace events are user-defined trace events that 773 can be used like an existing kernel trace event. User trace
+5
kernel/trace/trace_events_user.c
··· 18 #include <linux/tracefs.h> 19 #include <linux/types.h> 20 #include <linux/uaccess.h> 21 #include <uapi/linux/user_events.h> 22 #include "trace.h" 23 #include "trace_dynevent.h" 24
··· 18 #include <linux/tracefs.h> 19 #include <linux/types.h> 20 #include <linux/uaccess.h> 21 + /* Reminder to move to uapi when everything works */ 22 + #ifdef CONFIG_COMPILE_TEST 23 + #include <linux/user_events.h> 24 + #else 25 #include <uapi/linux/user_events.h> 26 + #endif 27 #include "trace.h" 28 #include "trace_dynevent.h" 29