From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> To: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org, parri.andrea@gmail.com, dave@stgolabs.net, manfred@colorfullife.com, arnd@arndb.de, peterz@infradead.org, netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, will.deacon@arm.com, oleg@redhat.com, mingo@redhat.com, netfilter-devel@vger.kernel.org, tj@kernel.org, stern@rowland.harvard.edu, akpm@linux-foundation.org, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>, torvalds@linux-foundation.org, Paul Mackerras <paulus@samba.org> Subject: [PATCH RFC 21/26] powerpc: Remove spin_unlock_wait() arch-specific definitions Date: Thu, 29 Jun 2017 17:01:29 -0700 [thread overview] Message-ID: <1498780894-8253-21-git-send-email-paulmck@linux.vnet.ibm.com> (raw) In-Reply-To: <20170629235918.GA6445@linux.vnet.ibm.com> There is no agreed-upon definition of spin_unlock_wait()'s semantics, and it appears that all callers could do just as well with a lock/unlock pair. This commit therefore removes the underlying arch-specific arch_spin_unlock_wait(). Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: <linuxppc-dev@lists.ozlabs.org> Cc: Will Deacon <will.deacon@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Andrea Parri <parri.andrea@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> --- arch/powerpc/include/asm/spinlock.h | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/arch/powerpc/include/asm/spinlock.h b/arch/powerpc/include/asm/spinlock.h index 8c1b913de6d7..d256e448ea49 100644 --- a/arch/powerpc/include/asm/spinlock.h +++ b/arch/powerpc/include/asm/spinlock.h @@ -170,39 +170,6 @@ static inline void arch_spin_unlock(arch_spinlock_t *lock) lock->slock = 0; } -static inline void arch_spin_unlock_wait(arch_spinlock_t *lock) -{ - arch_spinlock_t lock_val; - - smp_mb(); - - /* - * Atomically load and store back the lock value (unchanged). This - * ensures that our observation of the lock value is ordered with - * respect to other lock operations. - */ - __asm__ __volatile__( -"1: " PPC_LWARX(%0, 0, %2, 0) "\n" -" stwcx. %0, 0, %2\n" -" bne- 1b\n" - : "=&r" (lock_val), "+m" (*lock) - : "r" (lock) - : "cr0", "xer"); - - if (arch_spin_value_unlocked(lock_val)) - goto out; - - while (lock->slock) { - HMT_low(); - if (SHARED_PROCESSOR) - __spin_yield(lock); - } - HMT_medium(); - -out: - smp_mb(); -} - /* * Read-write spinlocks, allowing multiple readers * but only one writer. -- 2.5.2
WARNING: multiple messages have this Message-ID (diff)
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> To: linux-kernel@vger.kernel.org Cc: netfilter-devel@vger.kernel.org, netdev@vger.kernel.org, oleg@redhat.com, akpm@linux-foundation.org, mingo@redhat.com, dave@stgolabs.net, manfred@colorfullife.com, tj@kernel.org, arnd@arndb.de, linux-arch@vger.kernel.org, will.deacon@arm.com, peterz@infradead.org, stern@rowland.harvard.edu, parri.andrea@gmail.com, torvalds@linux-foundation.org, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, Michael Ellerman <mpe@ellerman.id.au>, linuxppc-dev@lists.ozlabs.org Subject: [PATCH RFC 21/26] powerpc: Remove spin_unlock_wait() arch-specific definitions Date: Thu, 29 Jun 2017 17:01:29 -0700 [thread overview] Message-ID: <1498780894-8253-21-git-send-email-paulmck@linux.vnet.ibm.com> (raw) Message-ID: <20170630000129.zxs7QVY9N0pUm5r5_B4xUa8oeRLcAnau0xzmSnMLbmw@z> (raw) In-Reply-To: <20170629235918.GA6445@linux.vnet.ibm.com> There is no agreed-upon definition of spin_unlock_wait()'s semantics, and it appears that all callers could do just as well with a lock/unlock pair. This commit therefore removes the underlying arch-specific arch_spin_unlock_wait(). Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: <linuxppc-dev@lists.ozlabs.org> Cc: Will Deacon <will.deacon@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Andrea Parri <parri.andrea@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> --- arch/powerpc/include/asm/spinlock.h | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/arch/powerpc/include/asm/spinlock.h b/arch/powerpc/include/asm/spinlock.h index 8c1b913de6d7..d256e448ea49 100644 --- a/arch/powerpc/include/asm/spinlock.h +++ b/arch/powerpc/include/asm/spinlock.h @@ -170,39 +170,6 @@ static inline void arch_spin_unlock(arch_spinlock_t *lock) lock->slock = 0; } -static inline void arch_spin_unlock_wait(arch_spinlock_t *lock) -{ - arch_spinlock_t lock_val; - - smp_mb(); - - /* - * Atomically load and store back the lock value (unchanged). This - * ensures that our observation of the lock value is ordered with - * respect to other lock operations. - */ - __asm__ __volatile__( -"1: " PPC_LWARX(%0, 0, %2, 0) "\n" -" stwcx. %0, 0, %2\n" -" bne- 1b\n" - : "=&r" (lock_val), "+m" (*lock) - : "r" (lock) - : "cr0", "xer"); - - if (arch_spin_value_unlocked(lock_val)) - goto out; - - while (lock->slock) { - HMT_low(); - if (SHARED_PROCESSOR) - __spin_yield(lock); - } - HMT_medium(); - -out: - smp_mb(); -} - /* * Read-write spinlocks, allowing multiple readers * but only one writer. -- 2.5.2
next prev parent reply other threads:[~2017-06-30 0:01 UTC|newest] Thread overview: 221+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-06-29 23:59 [PATCH RFC 0/26] Remove spin_unlock_wait() Paul E. McKenney 2017-06-29 23:59 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 01/26] netfilter: Replace spin_unlock_wait() with lock/unlock pair Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney [not found] ` <a6642feb-2f3a-980f-5ed6-2deb79563e6b@colorfullife.com> 2017-07-02 2:00 ` Paul E. McKenney 2017-07-02 2:00 ` Paul E. McKenney 2017-07-03 14:39 ` Alan Stern 2017-07-03 14:39 ` Alan Stern 2017-07-03 17:14 ` Paul E. McKenney 2017-07-03 17:14 ` Paul E. McKenney 2017-07-03 19:01 ` Manfred Spraul 2017-07-03 19:01 ` Manfred Spraul 2017-07-03 19:57 ` Alan Stern 2017-07-06 18:43 ` Manfred Spraul 2017-07-06 18:43 ` Manfred Spraul 2017-07-03 20:04 ` Alan Stern 2017-07-03 20:53 ` Paul E. McKenney 2017-07-03 20:53 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 02/26] task_work: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 11:04 ` Oleg Nesterov 2017-06-30 11:04 ` Oleg Nesterov 2017-06-30 12:50 ` Paul E. McKenney 2017-06-30 12:50 ` Paul E. McKenney 2017-06-30 15:20 ` Oleg Nesterov 2017-06-30 16:16 ` Paul E. McKenney 2017-06-30 16:16 ` Paul E. McKenney 2017-06-30 17:21 ` Paul E. McKenney 2017-06-30 17:21 ` Paul E. McKenney 2017-06-30 19:21 ` Oleg Nesterov 2017-06-30 19:21 ` Oleg Nesterov 2017-06-30 19:50 ` Alan Stern 2017-06-30 19:50 ` Alan Stern 2017-06-30 20:04 ` Paul E. McKenney 2017-06-30 20:02 ` Paul E. McKenney 2017-06-30 20:02 ` Paul E. McKenney 2017-06-30 20:19 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 03/26] sched: " Paul E. McKenney 2017-06-30 10:31 ` Arnd Bergmann 2017-06-30 10:31 ` Arnd Bergmann 2017-06-30 12:35 ` Paul E. McKenney 2017-06-30 12:35 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 04/26] completion: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 05/26] exit: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 06/26] ipc: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-07-01 19:23 ` Manfred Spraul 2017-07-02 3:16 ` Paul E. McKenney 2017-07-02 3:16 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 07/26] drivers/ata: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 08/26] locking: Remove spin_unlock_wait() generic definitions Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 9:19 ` Will Deacon 2017-06-30 9:19 ` Will Deacon 2017-06-30 12:38 ` Paul E. McKenney 2017-06-30 12:38 ` Paul E. McKenney 2017-06-30 13:13 ` Will Deacon 2017-06-30 13:13 ` Will Deacon 2017-06-30 22:18 ` Paul E. McKenney 2017-06-30 22:18 ` Paul E. McKenney 2017-07-03 13:15 ` Will Deacon 2017-07-03 13:15 ` Will Deacon 2017-07-03 16:18 ` Paul E. McKenney 2017-07-03 16:18 ` Paul E. McKenney 2017-07-03 16:40 ` Linus Torvalds 2017-07-03 17:13 ` Will Deacon 2017-07-03 22:30 ` Paul E. McKenney 2017-07-03 22:49 ` Linus Torvalds 2017-07-03 22:49 ` Linus Torvalds 2017-07-04 0:39 ` Paul E. McKenney 2017-07-04 0:39 ` Paul E. McKenney 2017-07-04 0:54 ` Paul E. McKenney 2017-07-03 21:10 ` Paul E. McKenney 2017-07-03 21:10 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 09/26] alpha: Remove spin_unlock_wait() arch-specific definitions Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 10/26] arc: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 11/26] arm: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 12/26] arm64: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 9:20 ` Will Deacon 2017-06-30 17:29 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 13/26] blackfin: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 14/26] hexagon: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 15/26] ia64: " Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 16/26] m32r: " Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 17/26] metag: " Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 18/26] mips: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 19/26] mn10300: " Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 20/26] parisc: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney [this message] 2017-06-30 0:01 ` [PATCH RFC 21/26] powerpc: " Paul E. McKenney 2017-07-02 3:58 ` Boqun Feng 2017-07-05 23:57 ` Paul E. McKenney 2017-07-05 23:57 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 22/26] s390: " Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 23/26] sh: " Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 24/26] sparc: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 25/26] tile: " Paul E. McKenney 2017-06-30 0:06 ` Linus Torvalds 2017-06-30 0:06 ` Linus Torvalds 2017-06-30 0:09 ` Paul E. McKenney 2017-06-30 0:09 ` Paul E. McKenney 2017-06-30 0:14 ` Paul E. McKenney 2017-06-30 0:10 ` Linus Torvalds 2017-06-30 0:10 ` Linus Torvalds 2017-06-30 0:24 ` Paul E. McKenney 2017-06-30 0:24 ` Paul E. McKenney 2017-06-30 0:01 ` [PATCH RFC 26/26] xtensa: " Paul E. McKenney 2017-06-30 0:01 ` Paul E. McKenney 2017-07-05 23:29 ` [PATCH v2 0/9] Remove spin_unlock_wait() Paul E. McKenney 2017-07-05 23:29 ` Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 1/9] net/netfilter/nf_conntrack_core: Fix net_conntrack_lock() Paul E. McKenney 2017-07-05 23:31 ` Paul E. McKenney 2017-07-06 18:45 ` Manfred Spraul 2017-07-06 18:45 ` Manfred Spraul 2017-07-06 20:26 ` Paul E. McKenney 2017-07-06 20:26 ` Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 2/9] task_work: Replace spin_unlock_wait() with lock/unlock pair Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 3/9] sched: " Paul E. McKenney 2017-07-05 23:31 ` Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 4/9] completion: " Paul E. McKenney 2017-07-05 23:31 ` Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 5/9] exit: " Paul E. McKenney 2017-07-05 23:31 ` Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 6/9] ipc: " Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 7/9] drivers/ata: " Paul E. McKenney 2017-07-05 23:31 ` Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 8/9] locking: Remove spin_unlock_wait() generic definitions Paul E. McKenney 2017-07-05 23:31 ` Paul E. McKenney 2017-07-05 23:31 ` [PATCH v2 9/9] arch: Remove spin_unlock_wait() arch-specific definitions Paul E. McKenney 2017-07-05 23:31 ` Paul E. McKenney 2017-07-06 14:12 ` [PATCH v2 0/9] Remove spin_unlock_wait() David Laight 2017-07-06 14:12 ` David Laight 2017-07-06 15:21 ` Paul E. McKenney 2017-07-06 15:21 ` Paul E. McKenney 2017-07-06 16:10 ` Peter Zijlstra 2017-07-06 16:10 ` Peter Zijlstra 2017-07-06 16:24 ` Paul E. McKenney 2017-07-06 16:24 ` Paul E. McKenney 2017-07-06 16:41 ` Peter Zijlstra 2017-07-06 16:41 ` Peter Zijlstra 2017-07-06 17:03 ` Paul E. McKenney 2017-07-06 17:03 ` Paul E. McKenney 2017-07-06 16:49 ` Alan Stern 2017-07-06 16:49 ` Alan Stern 2017-07-06 16:54 ` Peter Zijlstra 2017-07-06 16:54 ` Peter Zijlstra 2017-07-06 19:37 ` Alan Stern 2017-07-06 16:05 ` Peter Zijlstra 2017-07-06 16:05 ` Peter Zijlstra 2017-07-06 16:20 ` Paul E. McKenney 2017-07-06 16:20 ` Paul E. McKenney 2017-07-06 16:50 ` Peter Zijlstra 2017-07-06 16:50 ` Peter Zijlstra 2017-07-06 17:08 ` Will Deacon 2017-07-06 17:08 ` Will Deacon 2017-07-06 17:29 ` Paul E. McKenney 2017-07-06 17:29 ` Paul E. McKenney 2017-07-06 17:18 ` Paul E. McKenney 2017-07-06 17:18 ` Paul E. McKenney 2017-07-07 8:31 ` Ingo Molnar 2017-07-07 8:31 ` Ingo Molnar 2017-07-07 8:44 ` Peter Zijlstra 2017-07-07 8:44 ` Peter Zijlstra 2017-07-07 10:33 ` Ingo Molnar 2017-07-07 10:33 ` Ingo Molnar 2017-07-07 11:23 ` Peter Zijlstra 2017-07-07 11:23 ` Peter Zijlstra 2017-07-07 14:41 ` Paul E. McKenney 2017-07-07 14:41 ` Paul E. McKenney 2017-07-08 8:43 ` Ingo Molnar 2017-07-08 8:43 ` Ingo Molnar 2017-07-08 11:41 ` Paul E. McKenney 2017-07-08 11:41 ` Paul E. McKenney 2017-07-07 17:47 ` Manfred Spraul 2017-07-07 17:47 ` Manfred Spraul 2017-07-08 8:35 ` Ingo Molnar 2017-07-08 8:35 ` Ingo Molnar 2017-07-08 11:39 ` Paul E. McKenney 2017-07-08 11:39 ` Paul E. McKenney 2017-07-08 12:30 ` Ingo Molnar 2017-07-08 12:30 ` Ingo Molnar 2017-07-08 14:45 ` Paul E. McKenney 2017-07-08 14:45 ` Paul E. McKenney 2017-07-08 16:21 ` Alan Stern 2017-07-08 16:21 ` Alan Stern 2017-07-10 17:22 ` Manfred Spraul 2017-07-10 17:22 ` Manfred Spraul 2017-07-07 8:06 ` Ingo Molnar 2017-07-07 8:06 ` Ingo Molnar 2017-07-07 9:32 ` Ingo Molnar 2017-07-07 9:32 ` Ingo Molnar 2017-07-07 19:27 ` [PATCH v3 " Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 1/9] net/netfilter/nf_conntrack_core: Fix net_conntrack_lock() Paul E. McKenney 2017-07-07 19:28 ` Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 2/9] task_work: Replace spin_unlock_wait() with lock/unlock pair Paul E. McKenney 2017-07-07 19:28 ` Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 3/9] sched: " Paul E. McKenney 2017-07-07 19:28 ` Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 4/9] completion: " Paul E. McKenney 2017-07-07 19:28 ` Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 5/9] exit: " Paul E. McKenney 2017-07-07 19:28 ` Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 6/9] ipc: " Paul E. McKenney 2017-07-07 19:28 ` Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 7/9] drivers/ata: " Paul E. McKenney 2017-07-07 19:28 ` Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 8/9] locking: Remove spin_unlock_wait() generic definitions Paul E. McKenney 2017-07-07 19:28 ` Paul E. McKenney 2017-07-07 19:28 ` [PATCH v3 9/9] arch: Remove spin_unlock_wait() arch-specific definitions Paul E. McKenney
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1498780894-8253-21-git-send-email-paulmck@linux.vnet.ibm.com \ --to=paulmck@linux.vnet.ibm.com \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=dave@stgolabs.net \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=manfred@colorfullife.com \ --cc=mingo@redhat.com \ --cc=netdev@vger.kernel.org \ --cc=netfilter-devel@vger.kernel.org \ --cc=oleg@redhat.com \ --cc=parri.andrea@gmail.com \ --cc=paulus@samba.org \ --cc=peterz@infradead.org \ --cc=stern@rowland.harvard.edu \ --cc=tj@kernel.org \ --cc=torvalds@linux-foundation.org \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).