tracing: Place trace_pid_list logic into abstract functions
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 24 Sep 2021 01:03:49 +0000 (21:03 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Jul 2022 15:25:29 +0000 (17:25 +0200)
commitd9777061727b759e999fb04a302ff50a9fd33225
tree73f37c3e72944b51d1d8c64bf5e525d292415ccc
parent6107b014163f04252ced73e8171139ab9c8b7804
tracing: Place trace_pid_list logic into abstract functions

[ Upstream commit 6954e415264eeb5ee6be0d22d789ad12c995ee64 ]

Instead of having the logic that does trace_pid_list open coded, wrap it in
abstract functions. This will allow a rewrite of the logic that implements
the trace_pid_list without affecting the users.

Note, this causes a change in behavior. Every time a pid is written into
the set_*_pid file, it creates a new list and uses RCU to update it. If
pid_max is lowered, but there was a pid currently in the list that was
higher than pid_max, those pids will now be removed on updating the list.
The old behavior kept that from happening.

The rewrite of the pid_list logic will no longer depend on pid_max,
and will return the old behavior.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/trace/Makefile
kernel/trace/ftrace.c
kernel/trace/pid_list.c [new file with mode: 0644]
kernel/trace/pid_list.h [new file with mode: 0644]
kernel/trace/trace.c
kernel/trace/trace.h
kernel/trace/trace_events.c