Messages in this thread | | | Date | Mon, 28 Mar 2016 14:57:02 -0400 | From | Steven Rostedt <> | Subject | Re: [RFC v0] Use swait in completion |
| |
On Wed, 9 Mar 2016 13:24:23 +0100 Sebastian Andrzej Siewior <bigeasy@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
| |