Re: PI patch against 2.6.16-rt9

Esben Nielsen
2006-03-28T22:51:21Z

On Tue, 28 Mar 2006, Ingo Molnar wrote:

>
> * Esben Nielsen <simlo@phys.au.dk> wrote:
>
> > > in short: wow do you ensure that the boosting is still part of the same
> > > dependency chain where it started off?
> >
> > I don't insure that. But does it matter?!?
>
> yes.

How does it matter?

>
> > If the task is still blocked on a lock and the owner of that lock
> > might need boosting. The boosting operation itself will always be
> > _correct_ as the pi_lock is held when it is done. But the task doing
> > the boosting might have preempted for so long that there is nothing
> > left to do - and then it simply stops unless deadlock detection is on.
>
> well, another possibility is that the task got blocked again, and we'll
> continue boosting _the wrong chain_. I.e. we'll add extra priority to
> task(s) that might not deserve it at all (it doesnt own the lock we are
> interested in anymore).
>

This can't happen. We are always looking at the first waiter on
task->pi_waiter task->pi_lock held when doing the boosting. If task
has released the lock the entry task->pi_waiter is gone and no boosting
will take place!

> i.e. we must observe the boosting chain in a time-coherent form. We must
> observe an actual "frozen" (all locks held) state of the system that we
> _know_ forms a correct dependency chain at that moment, to be able to
> propagate the priority one step forward. The act of 'boosting' must be
> atomic.
>
The i.e. refers to wrong conclusion and therefore the above can't be
concluded.

Esben

> Ingo
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>