tracing/user_events: Split up mm alloc and attach
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 May 2023 23:07:38 +0000 (16:07 -0700)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 24 May 2023 00:58:17 +0000 (20:58 -0400)
commit3e0fea09b17fa2255f6cb0108bbffd4a505f8925
tree6f5e1342c91b850d3853e1d9eaa0516bfbb807ff
parent632478a05821bc1c9b55c3a1dd0fb1be7bfa1acc
tracing/user_events: Split up mm alloc and attach

When a new mm is being created in a fork() path it currently is
allocated and then attached in one go. This leaves the mm exposed out to
the tracing register callbacks while any parent enabler locations are
copied in. This should not happen.

Split up mm alloc and attach as unique operations. When duplicating
enablers, first alloc, then duplicate, and only upon success, attach.
This prevents any timing window outside of the event_reg mutex for
enablement walking. This allows for dropping RCU requirement for
enablement walking in later patches.

Link: https://lkml.kernel.org/r/20230519230741.669-2-beaub@linux.microsoft.com
Link: https://lore.kernel.org/linux-trace-kernel/CAHk-=whTBvXJuoi_kACo3qi5WZUmRrhyA-_=rRFsycTytmB6qw@mail.gmail.com/
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[ change log written by Beau Belgrave ]
Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/trace_events_user.c