Re: [RFC][PATCH 2/8] sched/rtmutex/deadline: Fix a PI crash for deadline tasks

From: Peter Zijlstra
Date: Tue Jun 14 2016 - 16:28:47 EST


On Tue, Jun 14, 2016 at 02:42:17PM -0400, Steven Rostedt wrote:
> On Tue, 07 Jun 2016 21:56:37 +0200
> Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> > + /*
> > + * We should deboost before waking the top waiter task such that
> > + * we don't run two tasks with the 'same' priority. This however
> > + * can lead to prio-inversion if we would get preempted after
> > + * the deboost but before waking our high-prio task, hence the
> > + * preempt_disable before unlock. Pairs with preempt_enable() in
> > + * rt_mutex_postunlock();
> > + */
> > + preempt_disable();
> > +
>
> This looks like a possible maintenance nightmare. Can we add some more
> comments at the start of the functions that state that
> rt_mutex_slowunlock() calls must be paired with rt_mutex_postunlock()?

Please look at patches 4 and 5 that clean this up.