Re: [PATCH v9 06/19] qspinlock: prolong the stay in the pending bit path

From: Waiman Long
Date: Fri Apr 18 2014 - 14:07:38 EST


On 04/18/2014 04:33 AM, Peter Zijlstra wrote:
On Thu, Apr 17, 2014 at 09:46:04PM -0400, Waiman Long wrote:
BTW, I didn't test out your atomic_test_and_set() change. Did it provide a
noticeable performance benefit when compared with cmpxchg()?
I've not tested that I think. I had a hard time showing that cmpxchg
loops were slower, but once I did, I simply replaced all cmpxchg loops
with unconditional ops where possible.

The machine that was big enough to show it lived in a lab half way
around the world and using it was a right pain in the ass, so I didn't
use it more than I absolutely had to.

Thank for letting me know about it. The cmpxchg() slowdown that I observed happens when it is heavily contended. In other words, if many CPUs are trying to grab it at roughly the same time. If there is just a few contending CPUs, the difference shouldn't be too big.

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