Re: [RFC v0] Use swait in completion

From: Steven Rostedt
Date: Mon Mar 28 2016 - 14:57:18 EST


On Wed, 9 Mar 2016 13:24:23 +0100
Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> 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