Messages in this thread | | | Date | Tue, 7 Feb 2023 11:58:34 +0000 | From | Juri Lelli <> | Subject | Re: [RFC PATCH v2] sched/deadline: Add more reschedule cases to prio_changed_dl() |
| |
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>
Best, Juri
| |