Re: PI patch against 2.6.16-rt9

From: Ingo Molnar
Date: Tue Mar 28 2006 - 16:25:49 EST



* Esben Nielsen <simlo@xxxxxxxxxx> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/