Re: [v3,11/41] mips: reuse asm-generic/barrier.h
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
- Subject: Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- From: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
- Date: Tue, 26 Jan 2016 11:44:10 -0800
- Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>, Will Deacon <will.deacon@xxxxxxx>, "Michael S. Tsirkin" <mst@xxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, Arnd Bergmann <arnd@xxxxxxxx>, linux-arch@xxxxxxxxxxxxxxx, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx>, virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, Joe Perches <joe@xxxxxxxxxxx>, David Miller <davem@xxxxxxxxxxxxx>, linux-ia64@xxxxxxxxxxxxxxx, linuxppc-dev@xxxxxxxxxxxxxxxx, linux-s390@xxxxxxxxxxxxxxx, sparclinux@xxxxxxxxxxxxxxx, linux-arm-kernel@xxxxxxxxxxxxxxxxxxx, linux-metag@xxxxxxxxxxxxxxx, linux-mips@xxxxxxxxxxxxxx, x86@xxxxxxxxxx, user-mode-linux-devel@xxxxxxxxxxxxxxxxxxxxx, adi-buildroot-devel@xxxxxxxxxxxxxxxxxxxxx, linux-sh@xxxxxxxxxxxxxxx, linux-xtensa@xxxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxxx, Ralf Baechle <ralf@xxxxxxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, ddaney.cavm@xxxxxxxxx, james.hogan@xxxxxxxxxx, Michael Ellerman <mpe@xxxxxxxxxxxxxx>
- In-reply-to: <20160126102402.GE6357@twins.programming.kicks-ass.net>
- List-id: <linux-ia64.vger.kernel.org>
- References: <20160113104516.GE25458@arm.com> <56969F4B.7070001@imgtec.com> <20160113204844.GV6357@twins.programming.kicks-ass.net> <5696BA6E.4070508@imgtec.com> <20160114120445.GB15828@arm.com> <56980145.5030901@imgtec.com> <20160114204827.GE3818@linux.vnet.ibm.com> <56981212.7050301@imgtec.com> <20160114222046.GH3818@linux.vnet.ibm.com> <20160126102402.GE6357@twins.programming.kicks-ass.net>
- Reply-to: paulmck@xxxxxxxxxxxxxxxxxx
- User-agent: Mutt/1.5.21 (2010-09-15)
On Tue, Jan 26, 2016 at 11:24:02AM +0100, Peter Zijlstra wrote:
> On Thu, Jan 14, 2016 at 02:20:46PM -0800, Paul E. McKenney wrote:
> > On Thu, Jan 14, 2016 at 01:24:34PM -0800, Leonid Yegoshin wrote:
> > > On 01/14/2016 12:48 PM, Paul E. McKenney wrote:
> > > >
> > > >So SYNC_RMB is intended to implement smp_rmb(), correct?
> > > Yes.
> > > >
> > > >You could use SYNC_ACQUIRE() to implement read_barrier_depends() and
> > > >smp_read_barrier_depends(), but SYNC_RMB probably does not suffice.
> > >
> > > If smp_read_barrier_depends() is used to separate not only two reads
> > > but read pointer and WRITE basing on that pointer (example below) -
> > > yes. I just doesn't see any example of this in famous
> > > Documentation/memory-barriers.txt and had no chance to know what you
> > > use it in this way too.
> >
> > Well, Documentation/memory-barriers.txt was intended as a guide for Linux
> > kernel hackers, and not for hardware architects.
>
> Yeah, this goes under the header: memory-barriers.txt is _NOT_ a
> specification (I seem to keep repeating this).
>
> > ------------------------------------------------------------------------
> >
> > commit 955720966e216b00613fcf60188d507c103f0e80
> > Author: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> > Date: Thu Jan 14 14:17:04 2016 -0800
> >
> > documentation: Subsequent writes ordered by rcu_dereference()
> >
> > The current memory-barriers.txt does not address the possibility of
> > a write to a dereferenced pointer. This should be rare,
>
> How are these rare? Isn't:
>
> rcu_read_lock()
> obj = rcu_dereference(ptr);
> if (!atomic_inc_not_zero(&obj->ref))
> obj = NULL;
> rcu_read_unlock();
>
> a _very_ common thing to do?
It is, but it provides its own barriers, so does not need to rely on
dependency ordering.
Thanx, Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
- References:
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
- Re: [v3,11/41] mips: reuse asm-generic/barrier.h
[Index of Archives]
[Linux Kernel]
[Sparc Linux]
[DCCP]
[Linux ARM]
[Yosemite News]
[Linux SCSI]
[Linux x86_64]
[Linux for Ham Radio]