Re: PI patch against 2.6.16-rt9

Ingo Molnar
2006-03-28T21:27:22Z

* 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.

> 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).

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.

Ingo