> *If* however the cpu_relax() makes sense on other platforms maybe we could
> add something like we have already with "arch_mutex_cpu_relax()":

I'll do some more measurements on ia64.  During my first tests cpu_relax() 
seemed
to be a big win - but I only ran "./t" a couple of times.  Later (with the 
cpu_relax() in
place) I ran a bunch more iterations, and found that the variation from run to 
run
is much larger with lockref.  The mean score is 60% higher, but the standard 
deviation
is an order of magnitude bigger (enough that one run out of 20 with lockref 
scored
lower than the pre-lockref kernel).

I think this is expected ... cmpxchg is a free-for-all - and sometimes poor 
placement
across the four socket system might cause short term starvation to a thread 
while
threads on another socket monopolize the cache line.

-Tony
--
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/

Reply via email to