All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: rostedt <rostedt@goodmis.org>
Cc: David Howells <dhowells@redhat.com>,
	paulmck@kernel.org, rcu <rcu@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	dipankar <dipankar@in.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Eric Dumazet <edumazet@google.com>, fweisbec <fweisbec@gmail.com>,
	Oleg Nesterov <oleg@redhat.com>,
	"Joel Fernandes, Google" <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 12:31:38 -0400 (EDT)	[thread overview]
Message-ID: <561448323.948.1570120298211.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <20191003090850.1e2561b3@gandalf.local.home>

----- On Oct 3, 2019, at 9:08 AM, rostedt rostedt@goodmis.org 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?
>> 
> 
> 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.

I remember going through all kernel arch headers myself and introduce
irq-off-based xchg and cmpxchg generic implementations for all UP
architectures lacking cmpxchg/xchg instructions.

We might want to consider simply using xchg() here.

FWIW, the API exposed by the Userspace RCU project (liburcu) for this
is:

  rcu_xchg_pointer()

Thanks,

Mathieu


-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

  parent reply	other threads:[~2019-10-03 17:11 UTC|newest]

Thread overview: 54+ 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  8:39   ` David Howells
2019-10-03 13:08     ` Steven Rostedt
2019-10-03 13:33       ` Paul E. McKenney
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 [this message]
2019-10-03 18:05         ` Peter Zijlstra
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  8:38   ` David Howells
2019-10-05 16:10     ` Paul E. McKenney
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-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-22 19:12     ` paulmck
2019-10-28 12:57     ` Joonas Lahtinen
2019-10-28 12:57       ` [Intel-gfx] " Joonas Lahtinen
2019-10-28 12:57       ` Joonas Lahtinen
2019-10-28 12:57       ` Joonas Lahtinen
2019-10-28 13:40       ` Paul E. McKenney
2019-10-28 13:40         ` [Intel-gfx] " Paul E. McKenney
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=561448323.948.1570120298211.JavaMail.zimbra@efficios.com \
    --to=mathieu.desnoyers@efficios.com \
    --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=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=paulmck@kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.