Re: [PATCH] tty: Only wakeup the line discipline idle queue when queue is active

Oleg Nesterov
2013-01-18T15:46:42Z

On 01/17, Preeti U Murthy wrote:
>
> On 01/16/2013 05:32 PM, Ivo Sieben wrote:
> >
> > I don't have a problem that there is a context switch to the high
> > priority process: it has a higher priority, so it probably is more
> > important.
> > My problem is that even when the waitqueue is empty, the high priority
> > thread has a risk to block on the spinlock needlessly (causing context
> > switches to low priority task and back to the high priority task)
> >
> Fair enough Ivo.I think you should go ahead with merging the
> waitqueue_active()
> wake_up()
> logic into the wake_up() variants.

This is not easy. We can't simply change wake_up*() helpers or modify
__wake_up().

I can't understand why do you dislike Ivo's simple patch. There are
a lot of "if (waitqueue_active) wake_up" examples. Even if we add the
new helpers (personally I don't think this makes sense) , we can do
this later. Why should we delay this fix?

Oleg.