mbox series

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

Message ID 20240625235245.2106313-1-jstultz@google.com
Headers show
Series sched_football: Re-add crazy fans and other cleanups | expand

Message

John Stultz June 25, 2024, 11:52 p.m. UTC
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(-)

Comments

Cyril Hrubis June 26, 2024, 11:49 a.m. UTC | #1
Hi!
Patchset pushed, thanks.