On Tue, 18 Apr 2006, Daniel Walker wrote:
> On Tue, 2006-04-18 at 10:32 -0400, Steven Rostedt wrote:
> > Actually, where that BUG_ON was is the exiting of the chain walk. So it
> > does stop. It's the higher priority task that needs to be continuing
> > the chain walk for that problem to occur. So really, it already does
> > what you suggest :)
> I bet you could test for that condition in some other spots too . Like
> when it adds to the pi_waiters , you could test if the priorities are
> out of sync ..
You mean the other places in rt_mutex_adjust_prio_chain? It already
checks once an iteration, anything more is just over kill.
> > >
> > > > To keep latencies down, we are letting the PI chain walk be preempted,
> > > > by releasing locks. It's understood that the chain can then change
> > > > while walking (big debate about this between Ingo, tglx and Esben). But
> > > > at the end, we decided on it being better to have latencies down, and
> > > > just make adjustments when they arise. This also keeps the latencies
> > > > bounded, since the old way was harder to know the worst case (PI chain
> > > > creep).
> > >
> > > I can imagine. Seems like PI is always a point of controversy .
> > But, as PI matures, it seems to be more and more acceptable.
> I read an article on priority ceiling as another method of doing this.
> Priority ceiling doesn't seem better, but at the same time I can't
> imagine how you'd implement it in Linux, or not in a straight forward
> way .
Actually, I always thought that running PREEMPT_DESKTOP with soft and hard
IRQS as threads was priority ceiling. It's just that all locks have the
priority of MAX_RT_PRIO (no preemption allowed). OK, this doesn't apply
to mutexes, but it does apply for spin_locks. :)
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo[email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Video 4 Linux]
[Linux for the blind]