On Fri, Jul 4, 2008 at 6:48 PM, Rene Herman <[EMAIL PROTECTED]> wrote:
> On 04-07-08 02:05, Peter Teoh wrote:
>
>> I see....eh...or I don't see......the original problem was that the
>> highest prio cannot acquire the lock, even though it has the highest prio.
>
> No. That is or was not the problem. This I believe is the fundamental
> misunderstanding left.
>
> Please note how I said "All fine and well up to this point" when the
> high-prioriy process went to sleep since the low-priority process was
> holding the lock.
>
> Such is the nature of the mutex/futex locking model. Holding a lock
> _overrides_ any scheduler priority, makes it irrelevant, and this is how
> things are supposed to work. If we just have the high-priority and the
> low-priority process, we have no priority inversion issues, no problem.
>
> It's mixing in that third medium priority process that's causing the
> problem. It itself does _not_ grab the lock, yet it still keeps the
> high-priority process from running since it keeps the low priority process
> from running to the point where it releases the lock. So we have here a
> situation where a process that isn't holding a lock the higher priority
> process is waiting for is still keeping the higher priority process from
> running -- effectively, the medium priority process has a higher priority
> then the high-priority process since it has a higher priority then the
> low-priority process.
>
> That's the problem called "priority inversion".
>
> I suppose once that's clear, the priority inheritance solution will also be:
> just assign the priority of the high-prio process to the low-prio process
> when the high prio-process blocks on the lock so that the medium-prio
> process won't keep the (originally) low-prio process from running (tweak
> solution to "assign the maximum of current prio of lock holder and prio of
> process about to be blocked to lock holder" in the general case of more than
> just 3 possible processes ofcourse).
>
> Rene.
>

Ah....very clear and well written explanation - thank you for the
effort put into the writing.

And for the phenomena of "unbounded priority inversion", I found this
very useful:

http://lkml.org/lkml/2006/5/10/52

Thank you to Rene and Roberto for the discussion.....

-- 
Regards,
Peter Teoh

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to