On Wed, 9 Mar 2016 13:24:23 +0100
Sebastian Andrzej Siewior <bige...@linutronix.de> wrote:

> * Josh Cartwright | 2016-03-08 12:26:56 [-0600]:
> 
> >Is it really just about latency?  Does this deferral not lead to an
> >inversion in the case where the single woken task isn't the highest
> >priority waiter on the completion (and doesn't run due to a
> >middle-priority thing spinning)?  
> 
> This would be case, yes. Not only with deferral. Say you have two
> waters: 1st one is MID-prio and the second is HI-prio. Currently after
> the wakeup of the MID-prio waiter you get preempted. Waking all of them
> at once would put the second waiter first on the CPU.
> Samething without the deferral flag.
> 
> >In order for this to work, it seems like the chosen waiter would need to
> >inherit the highest priority of all waiters (which AFAICT isn't
> >happening).  
> 
> sorting the waiters by priority? This will be fun. This is only done for
> the rtmutex waiters.
> 

Hmm, perhaps we should use an rbtree to sort simple waiters by
priority :-)

Probably wont make them simple anymore.

-- Steve

Reply via email to