[LTP] [PATCH v2 0/6] sched_football: Re-add crazy fans and other cleanups

John Stultz via ltp
2024-06-25T23:53:51Z

Just the other day (~18 years ago), I had implemented the
sched_football test to validate the RT scheduling invariant that
we always run the top NR_CPU priority tasks at any time.

That early version of the test included crazy fans, which
disrupted the scheduling of the defensive threads. This was
later removed from the test, likely due to occasional failures
seen with it.

Recently, in testing the behavior of a scheduler patch I was
working on I started tinkering with this test again, and found
when I re-added the crazy fans, I could reproduce an actual
scheduling problem with the vanilla kernel.

So I wanted to submit these changes to re-add the crazy fans
along with some other cleanups and improvements to make it
easier to use with tracing, so that the test can be used by
others to reproduce this problem.

New in v2 (thank you for the feedback!):
* Rework to use tst_atomic* methods instead of atomic_t
suggested by Cyril
* Remove unused variables
* Drop changelog comment as suggested by Cyril
* Rework to use tst_atomic_* functions as suggested by Cyril
* Rework to use tst_timespec* functions as suggested by Cyril
* Pulled trace marker writing out into librttest helper functions
as suggested by Cyril

thanks
-john

Cc: kernel-team@android.com
Cc: Cyril Hrubis <chrubis@suse.cz>
Cc: Darren Hart <darren@os.amperecomputing.com>

John Stultz (6):
sched_football: Drop use of sched_yeild()
sched_football: Use atomic operations for ball
sched_football: Re-add the crazy fans to interrupt everyone
sched_football: Add a sleep before the game begins to get into steady
state
sched_football: Add prctrl calls to set thread comms
sched_football: Add trace_marker messages if we're tracing

.../func/sched_football/sched_football.c | 95 +++++++++++++++----
testcases/realtime/include/librttest.h | 13 +++
testcases/realtime/lib/librttest.c | 32 +++++++
3 files changed, 119 insertions(+), 21 deletions(-)