Re: [RFC 1/1] sched: Skip redundant operations for proxy tasks needing return migration
From: John Stultz
Date: Wed Apr 16 2025 - 20:23:35 EST
On Thu, Apr 10, 2025 at 2:51 AM hupu <hupu.gm@xxxxxxxxx> wrote:
>
> Hi John:
> Thank you for your feedback.
>
> On Thu, Apr 10, 2025 at 10:41 AM John Stultz <jstultz@xxxxxxxxxx> wrote:
> >
> > Unfortunately this patch crashes pretty quickly in my testing. The
> > first issue was proxy_needs_return() calls deactivate_task() w/
> > DEQUEUE_NOCLOCK, which causes warnings when the update_rq_clock()
> > hasn't been called. Preserving the update_rq_clock() line before
> > checking proxy_needs_return() avoided that issue, but then I saw hangs
> > during bootup, which I suspect is due to us shortcutting over the
> > sched_delayed case.
...
> This patch worked correctly on my QEMU-based test platform, it seems
> our testing methods might differ. Could you please share the details
> of your testing environment and methodology? I’ll try to replicate the
> issue using the same approach.
Usually I boot qemu with 64 cores, and have found stress testing
running the following separate programs frequently uncovers issues:
#cyclictest from the rt-test suite to add some rt load
cyclictest -t -p90
# rerunning the test_ww_mtuex logic (enabled by a patch in my full
proxy-exec series)
while true; do echo 1 > /sys/kernel/test_ww_mutex/run_tests ; sleep 5; done
# Along with my prio-inversion-demo (which ensures we do the proxying paths)
# https://github.com/johnstultz-work/priority-inversion-demo
while true; do ./run.sh; sleep 10 ; done
# Sometimes I also throw in the ltp sched_football test:
# https://github.com/linux-test-project/ltp/tree/master/testcases/realtime/func/sched_football
while true; do ./sched_football -m | grep Result ; sleep 1; done
But I'm always looking for other scheduling loads to trip up bugs, so
open to suggestions.
thanks
-john