Re: [git pull] scheduler fixes

Matthew Wilcox
2008-05-13T14:22:06Z

On Tue, May 13, 2008 at 04:11:29PM +0200, Ingo Molnar wrote:
>
> * Matthew Wilcox <matthew@wil.cx> wrote:
>
> > > So why not transform it to real completions instead? And if our
> > > current 'struct completion' abstraction is insufficient for whatever
> > > reason, why not extend that instead?
> >
> > My point is that for the only user of counting semaphores and/or
> > semaphores-abused-as-completions that has so far hit this race, the
> > serialised wake-up performs better. You have not pointed at a
> > scenario that _shows_ a parallel wake-up to perform better. [...]
>
> a 50% AIM7 slowdown maybe? With the BKL being a spinlock again it doesnt
> matter much in practice though.

You're not understanding me. This is completely inapplicable to the BKL
because only one task can be in wakeup at a time (due to it having a
maximum value of 1). There's no way to hit this race with the BKL.
The only kind of semaphore that can hit this race is the kind that can
have more than one wakeup in progress at a time -- ie one which can have
a value >1. Like completions and real counting semaphores.

So the only thing worth talking about (and indeed, it's now entirely
moot) is what's the best way to solve this problem /for this kind of
semaphore/.

--
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."