Re: [RFC v0] Use swait in completion

From: Sebastian Andrzej Siewior
Date: Wed Mar 09 2016 - 07:24:37 EST


* 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.

> Josh

Sebastian