[patch] powerpc: hash lock use lock bitops
From: Nick Piggin <hidden>
Date: 2007-11-20 05:09:55
This isn't a bugfix, but may help performance slightly... -- powerpc 64-bit hash pte lock bit is an actual lock, so it can take advantage of lock bitops for slightly more optimal memory barriers (can avoid an lwsync in the trylock). Signed-off-by: Nick Piggin <redacted> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> --- Index: linux-2.6/arch/powerpc/mm/hash_native_64.c ===================================================================
--- linux-2.6.orig/arch/powerpc/mm/hash_native_64.c
+++ linux-2.6/arch/powerpc/mm/hash_native_64.c@@ -113,7 +113,7 @@ static inline void native_lock_hpte(stru unsigned long *word = &hptep->v; while (1) { - if (!test_and_set_bit(HPTE_LOCK_BIT, word)) + if (!test_and_set_bit_lock(HPTE_LOCK_BIT, word)) break; while(test_bit(HPTE_LOCK_BIT, word)) cpu_relax();
@@ -124,8 +124,7 @@ static inline void native_unlock_hpte(st { unsigned long *word = &hptep->v; - asm volatile("lwsync":::"memory"); - clear_bit(HPTE_LOCK_BIT, word); + clear_bit_unlock(HPTE_LOCK_BIT, word); } static long native_hpte_insert(unsigned long hpte_group, unsigned long va,