Messages in this thread |  | | Date | Tue, 28 Mar 2006 23:24:48 +0200 | From | Ingo Molnar <> | Subject | Re: PI patch against 2.6.16-rt9 |
| |
* 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 - 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/
|  |