Hi, On 06/02/21 12:48, t...@redhat.com wrote: > From: Tom Rix <t...@redhat.com> > > When the BUG_ON check for (flags != ENQUEUE_REPLENISH) was created, the > flag was set to ENQUEUE_REPLENISH in rt_mutex_setprio(), now it is or-ed > in. So the checking logic needs to change. > > Fixes: 1de64443d755 ("sched/core: Fix task and run queue > sched_info::run_delay inconsistencies") > Signed-off-by: Tom Rix <t...@redhat.com> > --- > kernel/sched/deadline.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c > index 1508d126e88b..f50d20b7fe7c 100644 > --- a/kernel/sched/deadline.c > +++ b/kernel/sched/deadline.c > @@ -1561,7 +1561,7 @@ static void enqueue_task_dl(struct rq *rq, struct > task_struct *p, int flags) > * the throttle. > */ > p->dl.dl_throttled = 0; > - BUG_ON(!is_dl_boosted(&p->dl) || flags != ENQUEUE_REPLENISH); > + BUG_ON(!is_dl_boosted(&p->dl) || !(flags & ENQUEUE_REPLENISH));
Uhu, isn't this actually the else branch of "if (is_dl_boosted())"? If yes, I don't see how this is not always triggering. :-/ Thanks, Juri