linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: David Howells <dhowells@redhat.com>,
	rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
	mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com,
	akpm@linux-foundation.org, mathieu.desnoyers@efficios.com,
	josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org,
	edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com,
	joel@joelfernandes.org, Bart Van Assche <bart.vanassche@wdc.com>,
	Christoph Hellwig <hch@lst.de>, Hannes Reinecke <hare@suse.de>,
	Johannes Thumshirn <jthumshirn@suse.de>,
	Shane M Seymour <shane.seymour@hpe.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>
Subject: Re: [PATCH tip/core/rcu 1/9] rcu: Upgrade rcu_swap_protected() to rcu_replace()
Date: Thu, 3 Oct 2019 06:33:15 -0700	[thread overview]
Message-ID: <20191003133315.GN2689@paulmck-ThinkPad-P72> (raw)
In-Reply-To: <20191003090850.1e2561b3@gandalf.local.home>

On Thu, Oct 03, 2019 at 09:08:50AM -0400, Steven Rostedt wrote:
> On Thu, 03 Oct 2019 09:39:17 +0100
> David Howells <dhowells@redhat.com> wrote:
> 
> > paulmck@kernel.org wrote:
> > 
> > > +#define rcu_replace(rcu_ptr, ptr, c)					\
> > > +({									\
> > > +	typeof(ptr) __tmp = rcu_dereference_protected((rcu_ptr), (c));	\
> > > +	rcu_assign_pointer((rcu_ptr), (ptr));				\
> > > +	__tmp;								\
> > > +})  
> > 
> > Does it make sense to actually use xchg() if that's supported by the arch?

Historically, xchg() has been quite a bit slower than a pair of assignment
statements, in part due to the strong memory ordering guaranteed by
xchg().  Has that changed?  If so, then, agreed, it might make sense to
use xchg().

> Hmm, is there really any arch that doesn't support xchg()? It would be
> very hard to do any kind of atomic operations without it.
> 
> cmpxchg() is the one that I understand is optional by the arch.

To your point, even the old Sequent Symmetry platforms supported xchg()
back in the late 1980s and early 1990s, but only the later versions
(with 80486 and later) supported cmpxchg().

							Thanx, Paul

  reply	other threads:[~2019-10-03 13:33 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-03  1:41 [PATCH tip/core/rcu 0/9] Replace rcu_swap_protected() for v5.5 Paul E. McKenney
2019-10-03  1:43 ` [PATCH tip/core/rcu 1/9] rcu: Upgrade rcu_swap_protected() to rcu_replace() paulmck
2019-10-03 16:35   ` Mathieu Desnoyers
2019-10-03 16:52     ` Paul E. McKenney
2019-10-03 17:21       ` Mathieu Desnoyers
2019-10-03 19:09         ` Paul E. McKenney
2019-10-03 19:14           ` Mathieu Desnoyers
2019-10-03  1:43 ` [PATCH tip/core/rcu 2/9] x86/kvm/pmu: Replace rcu_swap_protected() with rcu_replace() paulmck
2019-10-03 10:14   ` Paolo Bonzini
2019-10-05 16:11     ` Paul E. McKenney
2019-10-03  1:43 ` [PATCH tip/core/rcu 3/9] drivers/gpu: " paulmck
2019-10-03  1:43 ` [PATCH tip/core/rcu 4/9] drivers/scsi: " paulmck
2019-10-04  2:09   ` Martin K. Petersen
2019-10-05 16:06     ` Paul E. McKenney
2019-10-10  2:36       ` Martin K. Petersen
2019-10-03  1:43 ` [PATCH tip/core/rcu 5/9] fs/afs: " paulmck
2019-10-03  1:43 ` [PATCH tip/core/rcu 6/9] bpf/cgroup: " paulmck
2019-10-03 17:21   ` Andrii Nakryiko
2019-10-03 20:58     ` Song Liu
2019-10-05 16:11       ` Paul E. McKenney
2019-10-03  1:43 ` [PATCH tip/core/rcu 7/9] net/core: " paulmck
2019-10-03  1:43 ` [PATCH tip/core/rcu 8/9] net/netfilter: " paulmck
2019-10-08 14:16   ` Pablo Neira Ayuso
2019-10-09 15:36     ` Paul E. McKenney
2019-10-03  1:43 ` [PATCH tip/core/rcu 9/9] net/sched: " paulmck
2019-10-03  8:38 ` [PATCH tip/core/rcu 5/9] fs/afs: " David Howells
2019-10-05 16:10   ` Paul E. McKenney
2019-10-03  8:39 ` [PATCH tip/core/rcu 1/9] rcu: Upgrade rcu_swap_protected() to rcu_replace() David Howells
2019-10-03 13:08   ` Steven Rostedt
2019-10-03 13:33     ` Paul E. McKenney [this message]
2019-10-03 13:41       ` Peter Zijlstra
2019-10-03 13:58         ` Paul E. McKenney
2019-10-03 14:01       ` Joel Fernandes
2019-10-03 16:31     ` Mathieu Desnoyers
2019-10-03 18:05       ` Peter Zijlstra
2019-10-22 19:11 ` [PATCH v2 tip/core/rcu 0/10] Replace rcu_swap_protected() for v5.5 Paul E. McKenney
2019-10-22 19:12   ` [PATCH tip/core/rcu 01/10] rcu: Upgrade rcu_swap_protected() to rcu_replace() paulmck
2019-10-22 19:12   ` [PATCH tip/core/rcu 02/10] x86/kvm/pmu: Replace rcu_swap_protected() with rcu_replace() paulmck
2019-10-22 19:12   ` [PATCH tip/core/rcu 03/10] drivers/gpu: " paulmck
2019-10-28 12:57     ` Joonas Lahtinen
2019-10-28 13:40       ` Paul E. McKenney
2019-10-22 19:12   ` [PATCH tip/core/rcu 04/10] drivers/scsi: " paulmck
2019-10-22 19:12   ` [PATCH tip/core/rcu 05/10] fs/afs: " paulmck
2019-10-22 19:12   ` [PATCH tip/core/rcu 06/10] bpf/cgroup: " paulmck
2019-10-22 19:12   ` [PATCH tip/core/rcu 07/10] net/core: " paulmck
2019-10-22 19:12   ` [PATCH tip/core/rcu 08/10] net/netfilter: " paulmck
2019-10-22 19:12   ` [PATCH tip/core/rcu 09/10] net/sched: " paulmck
2019-10-22 19:12   ` [PATCH tip/core/rcu 10/10] security/safesetid: " paulmck

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=20191003133315.GN2689@paulmck-ThinkPad-P72 \
    --to=paulmck@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=bart.vanassche@wdc.com \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=jiangshanlai@gmail.com \
    --cc=joel@joelfernandes.org \
    --cc=josh@joshtriplett.org \
    --cc=jthumshirn@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=shane.seymour@hpe.com \
    --cc=tglx@linutronix.de \
    /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).