Re: [patch 00/15] Generic Mutex Subsystem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Mon, 19 Dec 2005, Andi Kleen wrote:
> 
> Do you have an idea where this big difference comes from? It doesn't look
> it's from the fast path which is essentially the same.  Do the mutexes have
> that much better scheduling behaviour than semaphores? It is a bit hard to 
> believe.

Are ingo's mutex'es perhaps not trying to be fair?

The normal mutexes try to make sure that if a process comes in and gets 
stuck on a mutex, and then another CPU releases the mutex and immediately 
tries to grab it again, the other CPU will _not_ get it.

That's a huge performance disadvantage, but it's done on purpose, because 
otherwise you end up in a situation where the semaphore release code did 
wake up the waiter, but before the waiter actually had time to grab it (it 
has to go through the IPI and scheduling logic), the same CPU just grabbed 
it again.

The original semaphores were unfair, and it works really well most of the 
time. But then it really sucks in some nasty cases.

The numbers make me suspect that Ingo's mutexes are unfair too, but I've 
not looked at the code yet.

NOTE! I'm not a huge fan of fairness per se. I think unfair is often ok, 
and the performance advantages are certainly real. It may well be that the 
cases that caused problems before are now done differently (eg we switched 
the VM semaphore over to an rwsem), and that we can have an unfair and 
fast mutex for those cases where we don't care.

I just suspect the comparison isn't fair.

		Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux