From: Linus Torvalds <torvalds@linux-foundation.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Manfred Spraul <manfred@colorfullife.com>,
Davidlohr Bueso <dave@stgolabs.net>,
Paul McKenney <paulmck@linux.vnet.ibm.com>,
Will Deacon <will.deacon@arm.com>,
Boqun Feng <boqun.feng@gmail.com>,
Waiman Long <Waiman.Long@hpe.com>, Tejun Heo <tj@kernel.org>,
Pablo Neira Ayuso <pablo@netfilter.org>,
Patrick McHardy <kaber@trash.net>,
David Miller <davem@davemloft.net>,
Oleg Nesterov <oleg@redhat.com>,
netfilter-devel@vger.kernel.org,
Sasha Levin <sasha.levin@oracle.com>,
hofrat@osadl.org
Subject: Re: [RFC][PATCH 2/3] locking: Annotate spin_unlock_wait() users
Date: Tue, 24 May 2016 09:17:13 -0700 [thread overview]
Message-ID: <CA+55aFyyHbPVMx8cZbKONy5cevxsYA0qbwapboA0dD8hPSwPWg@mail.gmail.com> (raw)
In-Reply-To: <20160524143649.608476390@infradead.org>
On Tue, May 24, 2016 at 7:27 AM, Peter Zijlstra <peterz@infradead.org> wrote:
> spin_unlock_wait() has an unintuitive 'feature' in that it doesn't
> fully serialize against the spin_unlock() we've waited on.
NAK.
We don't start adding more of this "after_ctrl_dep" crap.
It's completely impossible to understand, and even people who have
been locking experts have gotten it wrong.
So it is *completely* unacceptable to have it in drivers.
This needs to be either hidden inside the basic spinlock functions,
_or_ it needs to be a clear and unambiguous interface. Anything that
starts talking about control dependencies is not it.
Note that this really is about naming and use, not about
implementation. So something like "spin_sync_after_unlock_wait()" is
acceptable, even if the actual _implementation_ were to be exactly the
same as the "after_ctrl_dep()" crap.
The difference is that one talks about incomprehensible implementation
details that nobody outside of the person who *implemented* the
spinlock code is supposed to understand (and seriously, I have my
doubts even the spinlock implementer understands it, judging by the
last time this happened), and the other is a much simpler semantic
guarantee.
So don't talk about "acquire". And most certainly don't talk about
"control dependencies". Not if we end up having things like *drivers*
using this like in this example libata.
Linus
next prev parent reply other threads:[~2016-05-24 16:17 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-24 14:27 [RFC][PATCH 0/3] spin_unlock_wait and assorted borkage Peter Zijlstra
2016-05-24 14:27 ` [RFC][PATCH 1/3] locking: Introduce smp_acquire__after_ctrl_dep Peter Zijlstra
[not found] ` <57451581.6000700@hpe.com>
2016-05-25 4:53 ` Paul E. McKenney
2016-05-25 5:39 ` Boqun Feng
2016-05-25 14:29 ` Paul E. McKenney
2016-05-25 15:20 ` Waiman Long
2016-05-25 15:57 ` Paul E. McKenney
2016-05-25 16:28 ` Peter Zijlstra
2016-05-25 16:54 ` Linus Torvalds
2016-05-25 18:59 ` Paul E. McKenney
2016-06-03 9:18 ` Vineet Gupta
2016-06-03 9:38 ` Peter Zijlstra
2016-06-03 12:08 ` Paul E. McKenney
2016-06-03 12:23 ` Peter Zijlstra
2016-06-03 12:27 ` Peter Zijlstra
2016-06-03 13:33 ` Paul E. McKenney
2016-06-03 13:32 ` Paul E. McKenney
2016-06-03 13:45 ` Will Deacon
2016-06-04 15:29 ` Paul E. McKenney
2016-06-06 17:28 ` Paul E. McKenney
2016-06-07 7:15 ` Peter Zijlstra
2016-06-07 12:41 ` Hannes Frederic Sowa
2016-06-07 13:06 ` Paul E. McKenney
2016-06-07 14:59 ` Hannes Frederic Sowa
2016-06-07 15:23 ` Paul E. McKenney
2016-06-07 17:48 ` Peter Zijlstra
2016-06-07 18:44 ` Paul E. McKenney
2016-06-07 18:01 ` Will Deacon
2016-06-07 18:44 ` Paul E. McKenney
2016-06-07 18:54 ` Paul E. McKenney
2016-06-07 18:37 ` Hannes Frederic Sowa
2016-05-24 14:27 ` [RFC][PATCH 2/3] locking: Annotate spin_unlock_wait() users Peter Zijlstra
2016-05-24 16:17 ` Linus Torvalds [this message]
2016-05-24 16:22 ` Tejun Heo
2016-05-24 16:58 ` Peter Zijlstra
2016-05-25 19:28 ` Tejun Heo
2016-05-24 16:57 ` Peter Zijlstra
2016-05-24 14:27 ` [RFC][PATCH 3/3] locking,netfilter: Fix nf_conntrack_lock() Peter Zijlstra
2016-05-24 14:42 ` Peter Zijlstra
[not found] ` <3e1671fc-be0f-bc95-4fbb-6bfc56e6c15b@colorfullife.com>
2016-05-26 13:54 ` Peter Zijlstra
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=CA+55aFyyHbPVMx8cZbKONy5cevxsYA0qbwapboA0dD8hPSwPWg@mail.gmail.com \
--to=torvalds@linux-foundation.org \
--cc=Waiman.Long@hpe.com \
--cc=boqun.feng@gmail.com \
--cc=dave@stgolabs.net \
--cc=davem@davemloft.net \
--cc=hofrat@osadl.org \
--cc=kaber@trash.net \
--cc=linux-kernel@vger.kernel.org \
--cc=manfred@colorfullife.com \
--cc=netfilter-devel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=pablo@netfilter.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=sasha.levin@oracle.com \
--cc=tj@kernel.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: link
Be 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).