Re: [PATCH 3/3] powerpc/qspinlock: Use generic smp_cond_load_relaxed
flat view
From: Michal Suchánek <hidden>
Date: 2021-03-09 17:31:23
Also in:
lkml
On Tue, Mar 09, 2021 at 07:46:11AM -0800, Davidlohr Bueso wrote:
On Tue, 09 Mar 2021, Michal Such�nek wrote:quoted
On Mon, Mar 08, 2021 at 05:59:50PM -0800, Davidlohr Bueso wrote:quoted
49a7d46a06c3 (powerpc: Implement smp_cond_load_relaxed()) added busy-waiting pausing with a preferred SMT priority pattern, lowering the priority (reducing decode cycles) during the whole loop slowpath. However, data shows that while this pattern works well with simple^^^^^^^^^^^^^^^^^^^^^^quoted
spinlocks, queued spinlocks benefit more being kept in medium priority, with a cpu_relax() instead, being a low+medium combo on powerpc....quoted
diff --git a/arch/powerpc/include/asm/barrier.h b/arch/powerpc/include/asm/barrier.h index aecfde829d5d..7ae29cfb06c0 100644 --- a/arch/powerpc/include/asm/barrier.h +++ b/arch/powerpc/include/asm/barrier.h@@ -80,22 +80,6 @@ do { \___p1; \ }) -#ifdef CONFIG_PPC64Maybe it should be kept for the simple spinlock case then?It is kept, note that simple spinlocks don't use smp_cond_load_relaxed, but instead deal with the priorities in arch_spin_lock(), so it will spin in low priority until it sees a chance to take the lock, where it switches back to medium.
Indeed, thanks for the clarification. Michal