From: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> Flushing the write buffer brings aroung 10% performace on the tight uncontended spinlock loops on Octeon. Refer to commit 500c2e1fdbcc ("MIPS: Optimize spinlocks."). Signed-off-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> --- arch/mips/include/asm/spinlock.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/mips/include/asm/spinlock.h b/arch/mips/include/asm/spinlock.h index 8a88eb2..0a707f3 100644 --- a/arch/mips/include/asm/spinlock.h +++ b/arch/mips/include/asm/spinlock.h @@ -24,6 +24,9 @@ static inline void queued_spin_unlock(struct qspinlock *lock) /* This could be optimised with ARCH_HAS_MMIOWB */ mmiowb(); smp_store_release(&lock->locked, 0); +#ifdef CONFIG_CPU_CAVIUM_OCTEON + nudge_writes(); +#endif } #include <asm/qspinlock.h> -- 2.10.2