Messages in this thread | | | Date | Tue, 18 Apr 2006 11:06:17 -0400 (EDT) | From | Steven Rostedt <> | Subject | Re: [RT] bad BUG_ON in rtmutex.c |
| |
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. :)
-- Steve
- 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/
| |