Messages in this thread | | | Date | Thu, 9 Feb 2023 14:07:19 +0100 | Subject | Re: [RFC PATCH v2] sched/deadline: Add more reschedule cases to prio_changed_dl() | From | Daniel Bristot de Oliveira <> |
| |
On 2/7/23 12:58, Juri Lelli wrote: > Hi, > > On 06/02/23 14:06, Valentin Schneider wrote: >> I've been tracking down an issue on a ~5.17ish kernel where: >> >> CPUx CPUy >> >> <DL task p0 owns an rtmutex M> >> <p0 depletes its runtime, gets throttled> >> <rq switches to the idle task> >> <DL task p1 blocks on M, boost/replenish p0> >> <No call to resched_curr() happens here> >> >> [idle task keeps running here until *something* >> accidentally sets TIF_NEED_RESCHED] >> >> On that kernel, it is quite easy to trigger using rt-tests's deadline_test >> [1] with the test running on isolated CPUs (this reduces the chance of >> something unrelated setting TIF_NEED_RESCHED on the idle tasks, making the >> issue even more obvious as the hung task detector chimes in). >> >> I haven't been able to reproduce this using a mainline kernel, even if I >> revert >> >> 2972e3050e35 ("tracing: Make trace_marker{,_raw} stream-like") >> >> which gets rid of the lock involved in the above test, *but* I cannot >> convince myself the issue isn't there from looking at the code. >> >> Make prio_changed_dl() issue a reschedule if the current task isn't a >> deadline one. While at it, ensure a reschedule is emitted when a >> queued-but-not-current task gets boosted with an earlier deadline that >> current's. >> >> [1]: https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git >> Signed-off-by: Valentin Schneider <vschneid@redhat.com> >> --- > This looks now good to me, thanks! > > Acked-by: Juri Lelli <juri.lelli@redhat.com>
Reviewed-by: Daniel Bristot de Oliveira <bristot@redhat.com>
-- Daniel
| |