Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1289509

Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release semantics) causing failures on arm64 (ThunderX)

From Peter Zijlstra <peterz@infradead.org>
Newsgroups linux.kernel
Subject Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release semantics) causing failures on arm64 (ThunderX)
Date 2015-12-11 13:20 +0100
Message-ID <qEuQ1-486-7@gated-at.bofh.it> (permalink)
References (1 earlier) <qEmz8-6ZR-29@gated-at.bofh.it> <qEmz8-6ZR-27@gated-at.bofh.it> <qEnYd-7LJ-3@gated-at.bofh.it> <qEryN-1NQ-1@gated-at.bofh.it> <qEuGl-43C-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Fri, Dec 11, 2015 at 12:04:19PM +0000, Will Deacon wrote:
> I think Andrew meant the atomic_xchg_acquire at the start of osq_lock,
> as opposed to "compare and swap". In which case, it does look like
> there's a bug here because there is nothing to order the initialisation
> of the node fields with publishing of the node, whether that's
> indirectly as a result of setting the tail to the current CPU or
> directly as a result of the WRITE_ONCE.

Agreed, this does indeed look like a bug. If confirmed please write a
shiny changelog and I'll queue asap.

> diff --git a/kernel/locking/osq_lock.c b/kernel/locking/osq_lock.c
> index d092a0c9c2d4..05a37857ab55 100644
> --- a/kernel/locking/osq_lock.c
> +++ b/kernel/locking/osq_lock.c
> @@ -93,10 +93,12 @@ bool osq_lock(struct optimistic_spin_queue *lock)
>  	node->cpu = curr;
>  
>  	/*
> -	 * ACQUIRE semantics, pairs with corresponding RELEASE
> -	 * in unlock() uncontended, or fastpath.
> +	 * We need both ACQUIRE (pairs with corresponding RELEASE in
> +	 * unlock() uncontended, or fastpath) and RELEASE (to publish
> +	 * the node fields we just initialised) semantics when updating
> +	 * the lock tail.
>  	 */
> -	old = atomic_xchg_acquire(&lock->tail, curr);
> +	old = atomic_xchg(&lock->tail, curr);
>  	if (old == OSQ_UNLOCKED_VAL)
>  		return true;
>  
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Commit 81a43adae3b9 (locking/mutex: Use acquire/release semantics)  causing failures on arm64 (ThunderX) David Daney <ddaney@caviumnetworks.com> - 2015-12-10 20:50 +0100
  Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Andrew Pinski <pinskia@gmail.com> - 2015-12-11 04:30 +0100
    Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Andrew Pinski <andrew.pinski@caviumnetworks.com> - 2015-12-11 06:00 +0100
      Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Peter Zijlstra <peterz@infradead.org> - 2015-12-11 09:50 +0100
        Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Will Deacon <will.deacon@arm.com> - 2015-12-11 13:10 +0100
          Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Peter Zijlstra <peterz@infradead.org> - 2015-12-11 13:20 +0100
            Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Will Deacon <will.deacon@arm.com> - 2015-12-11 13:20 +0100
              Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Peter Zijlstra <peterz@infradead.org> - 2015-12-11 13:30 +0100
                Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Will Deacon <will.deacon@arm.com> - 2015-12-11 14:40 +0100
                Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Peter Zijlstra <peterz@infradead.org> - 2015-12-11 14:50 +0100
                Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Will Deacon <will.deacon@arm.com> - 2015-12-11 15:10 +0100
                Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Peter Zijlstra <peterz@infradead.org> - 2015-12-11 18:20 +0100
                Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Will Deacon <will.deacon@arm.com> - 2015-12-11 18:30 +0100
                Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-11 23:40 +0100
                Re: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk> - 2015-12-14 20:00 +0100
                Re: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Peter Zijlstra <peterz@infradead.org> - 2015-12-14 21:40 +0100
                Re: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-15 07:20 +0100
                Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Peter Zijlstra <peterz@infradead.org> - 2015-12-14 21:30 +0100
                Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-15 05:40 +0100
          Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Davidlohr Bueso <dave@stgolabs.net> - 2015-12-11 15:20 +0100
    Re: FW: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Peter Zijlstra <peterz@infradead.org> - 2015-12-11 08:40 +0100
  Re: Commit 81a43adae3b9 (locking/mutex: Use acquire/release  semantics) causing failures on arm64 (ThunderX) Will Deacon <will.deacon@arm.com> - 2015-12-11 11:00 +0100

csiph-web