Re: [patch 00/15] Generic Mutex Subsystem

From: Andi Kleen
Date: Sun Dec 18 2005 - 23:22:33 EST


> $ ./test-mutex V 16 10 $ ./test-mutex V 16 10
> 8 CPUs, running 16 tasks. 8 CPUs, running 16 tasks.
> checking VFS performance. checking VFS performance.
> avg loops/sec: 34713 avg loops/sec: 84153
> CPU utilization: 63% CPU utilization: 22%
>
> i.e. in this workload, the mutex based kernel was 2.4 times faster
> than the semaphore based kernel, _and_ it also had 2.8 times less CPU
> utilization. (In terms of 'ops per CPU cycle', the semaphore kernel
> performed 551 ops/sec per 1% of CPU time used, while the mutex kernel
> performed 3825 ops/sec per 1% of CPU time used - it was 6.9 times
> more efficient.)

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.

I would perhaps understand your numbers if you used adaptive mutexes
or similar that spin for a bit, but just for pure sleeping locks it seems
weird. After all the scheduler should work in the same way for both.

-Andi

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