From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Matt Fleming <matt@console-pimps.org>,
David Miller <davem@davemloft.net>,
rostedt@goodmis.org, peterz@infradead.org, will.newton@gmail.com,
jbaron@redhat.com, hpa@zytor.com, mingo@elte.hu,
tglx@linutronix.de, andi@firstfloor.org, roland@redhat.com,
rth@redhat.com, masami.hiramatsu.pt@hitachi.com,
fweisbec@gmail.com, avi@redhat.com, sam@ravnborg.org,
ddaney@caviumnetworks.com, michael@ellerman.id.au,
linux-kernel@vger.kernel.org, vapier@gentoo.org,
cmetcalf@tilera.com, dhowells@redhat.com, schwidefsky@de.ibm.com,
heiko.carstens@de.ibm.com, benh@kernel.crashing.org,
Segher Boessenkool <segher@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH 0/2] jump label: 2.6.38 updates
Date: Mon, 14 Feb 2011 16:42:59 -0800 [thread overview]
Message-ID: <20110215004259.GP2256@linux.vnet.ibm.com> (raw)
In-Reply-To: <BLU0-SMTP984E876DBDFBC13F4C86F896D00@phx.gbl>
On Mon, Feb 14, 2011 at 06:29:47PM -0500, Mathieu Desnoyers wrote:
> [ added Segher Boessenkool and Paul Mackerras to CC list ]
>
> * Paul E. McKenney (paulmck@linux.vnet.ibm.com) wrote:
> > On Mon, Feb 14, 2011 at 06:03:01PM -0500, Mathieu Desnoyers wrote:
> > > * Matt Fleming (matt@console-pimps.org) wrote:
> > > > On Mon, 14 Feb 2011 13:46:00 -0800 (PST)
> > > > David Miller <davem@davemloft.net> wrote:
> > > >
> > > > > From: Steven Rostedt <rostedt@goodmis.org>
> > > > > Date: Mon, 14 Feb 2011 16:39:36 -0500
> > > > >
> > > > > > Thus it is not about global, as global is updated by normal means
> > > > > > and will update the caches. atomic_t is updated via the ll/sc that
> > > > > > ignores the cache and causes all this to break down. IOW... broken
> > > > > > hardware ;)
> > > > >
> > > > > I don't see how cache coherency can possibly work if the hardware
> > > > > behaves this way.
> > > >
> > > > Cache coherency is still maintained provided writes/reads both go
> > > > through the cache ;-)
> > > >
> > > > The problem is that for read-modify-write operations the arbitration
> > > > logic that decides who "wins" and is allowed to actually perform the
> > > > write, assuming two or more CPUs are competing for a single memory
> > > > address, is not implemented in the cache controller, I think. I'm not a
> > > > hardware engineer and I never understood how the arbitration logic
> > > > worked but I'm guessing that's the reason that the ll/sc instructions
> > > > bypass the cache.
> > > >
> > > > Which is why the atomic_t functions worked out really well for that
> > > > arch, such that any accesses to an atomic_t * had to go through the
> > > > wrapper functions.
> >
> > ???
> >
> > What CPU family are we talking about here? For cache coherent CPUs,
> > cache coherence really is supposed to work, even for mixed atomic and
> > non-atomic instructions to the same variable.
> >
>
> I'm really curious to know which CPU families too. I've used git blame
> to see where these lwz/stw instructions were added to powerpc, and it
> points to:
But lwz and stw instructions are normal non-atomic PowerPC loads and
stores. No LL/SC -- those would instead be lwarx and stwcx.
Thanx, Paul
> commit 9f0cbea0d8cc47801b853d3c61d0e17475b0cc89
> Author: Segher Boessenkool <segher@kernel.crashing.org>
> Date: Sat Aug 11 10:15:30 2007 +1000
>
> [POWERPC] Implement atomic{, 64}_{read, write}() without volatile
>
> Instead, use asm() like all other atomic operations already do.
>
> Also use inline functions instead of macros; this actually
> improves code generation (some code becomes a little smaller,
> probably because of improved alias information -- just a few
> hundred bytes total on a default kernel build, nothing shocking).
>
> Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
> Signed-off-by: Paul Mackerras <paulus@samba.org>
>
> So let's ping the relevant people to see if there was any reason for
> making these atomic read/set operations different from other
> architectures in the first place.
>
> Thanks,
>
> Mathieu
>
> --
> Mathieu Desnoyers
> Operating System Efficiency R&D Consultant
> EfficiOS Inc.
> http://www.efficios.com
next prev parent reply other threads:[~2011-02-15 0:43 UTC|newest]
Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-05 15:43 [PATCH 0/2] jump label: 2.6.38 updates Jason Baron
2011-01-05 15:43 ` [PATCH 1/2] jump label: make enable/disable o(1) Jason Baron
2011-01-05 17:31 ` Steven Rostedt
2011-01-05 21:19 ` Jason Baron
2011-01-05 15:43 ` [PATCH 2/2] jump label: introduce static_branch() Jason Baron
2011-01-05 17:15 ` Frederic Weisbecker
2011-01-05 17:46 ` Steven Rostedt
2011-01-05 18:52 ` H. Peter Anvin
2011-01-05 21:19 ` Jason Baron
2011-01-05 21:14 ` Jason Baron
2011-01-05 17:32 ` David Daney
2011-01-05 17:43 ` Steven Rostedt
2011-01-05 18:44 ` David Miller
2011-01-05 20:04 ` Steven Rostedt
2011-01-05 18:56 ` H. Peter Anvin
2011-01-05 19:14 ` Ingo Molnar
2011-01-05 19:32 ` David Daney
2011-01-05 19:50 ` Ingo Molnar
2011-01-05 20:07 ` David Daney
2011-01-05 20:08 ` H. Peter Anvin
2011-01-05 20:18 ` Ingo Molnar
2011-01-05 21:16 ` Jason Baron
2011-01-05 17:41 ` Steven Rostedt
2011-01-09 18:48 ` Mathieu Desnoyers
2011-02-11 19:25 ` [PATCH 0/2] jump label: 2.6.38 updates Peter Zijlstra
2011-02-11 21:13 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP101B686C32E10BA346B15F896EF0@phx.gbl>
2011-02-11 21:38 ` Peter Zijlstra
2011-02-11 22:15 ` Jason Baron
2011-02-11 22:19 ` H. Peter Anvin
2011-02-11 22:30 ` Mathieu Desnoyers
2011-02-11 22:20 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP8562BA758CF8AAE5323AE296EF0@phx.gbl>
2011-02-11 22:27 ` Jason Baron
2011-02-11 22:32 ` Mathieu Desnoyers
2011-02-12 18:47 ` Peter Zijlstra
2011-02-14 12:27 ` Ingo Molnar
2011-02-14 15:51 ` Jason Baron
2011-02-14 15:57 ` Peter Zijlstra
2011-02-14 16:04 ` Jason Baron
2011-02-14 16:14 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP4069A1A89F06CDFF9B28F896D00@phx.gbl>
2011-02-14 16:25 ` Peter Zijlstra
2011-02-14 16:29 ` Jason Baron
2011-02-14 16:37 ` Peter Zijlstra
2011-02-14 16:43 ` Mathieu Desnoyers
2011-02-14 16:46 ` Steven Rostedt
2011-02-14 16:53 ` Peter Zijlstra
2011-02-14 17:18 ` Steven Rostedt
2011-02-14 17:23 ` Mike Frysinger
2011-02-14 17:27 ` Peter Zijlstra
2011-02-14 17:29 ` Mike Frysinger
2011-02-14 17:38 ` Peter Zijlstra
2011-02-14 17:45 ` Mike Frysinger
2011-02-14 17:38 ` Will Newton
2011-02-14 17:43 ` Peter Zijlstra
2011-02-14 17:50 ` Will Newton
2011-02-14 18:04 ` Peter Zijlstra
2011-02-14 18:24 ` Peter Zijlstra
2011-02-14 18:53 ` Mathieu Desnoyers
2011-02-14 21:29 ` Steven Rostedt
2011-02-14 21:39 ` Steven Rostedt
2011-02-14 21:46 ` David Miller
2011-02-14 22:20 ` Steven Rostedt
2011-02-14 22:21 ` Steven Rostedt
2011-02-14 22:21 ` H. Peter Anvin
2011-02-14 22:29 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP98BFCC52FD41661DD9CC1E96D00@phx.gbl>
2011-02-14 22:33 ` David Miller
2011-02-14 22:33 ` David Miller
2011-02-14 22:37 ` Matt Fleming
2011-02-14 23:03 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP166A8555C791786059B0FF96D00@phx.gbl>
2011-02-14 23:09 ` Paul E. McKenney
2011-02-14 23:29 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP4599FAAD7330498472B87396D00@phx.gbl>
2011-02-15 0:19 ` Segher Boessenkool
2011-02-15 0:48 ` Mathieu Desnoyers
2011-02-15 1:29 ` Steven Rostedt
[not found] ` <BLU0-SMTP984E876DBDFBC13F4C86F896D00@phx.gbl>
2011-02-15 0:42 ` Paul E. McKenney [this message]
2011-02-15 0:51 ` Mathieu Desnoyers
2011-02-15 11:53 ` Will Newton
2011-02-18 19:03 ` Paul E. McKenney
2011-02-14 23:19 ` H. Peter Anvin
2011-02-15 11:01 ` Will Newton
2011-02-15 13:31 ` H. Peter Anvin
2011-02-15 13:49 ` Steven Rostedt
2011-02-15 14:04 ` Will Newton
2011-02-15 21:11 ` Will Simoneau
2011-02-15 21:27 ` David Miller
2011-02-15 21:56 ` Will Simoneau
2011-02-16 10:15 ` Will Newton
2011-02-16 12:18 ` Steven Rostedt
2011-02-16 12:41 ` Will Newton
2011-02-16 13:24 ` Mathieu Desnoyers
2011-02-16 22:51 ` Will Simoneau
2011-02-17 0:53 ` Please watch your cc lists Andi Kleen
2011-02-17 0:56 ` David Miller
2011-02-17 1:04 ` Michael Witten
2011-02-17 10:55 ` [PATCH 0/2] jump label: 2.6.38 updates Will Newton
[not found] ` <BLU0-SMTP80F56386E7E060A3B2020B96D20@phx.gbl>
2011-02-17 1:55 ` Masami Hiramatsu
2011-02-17 3:19 ` H. Peter Anvin
2011-02-17 16:03 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP71BCB155CBAE79997EE08D96D20@phx.gbl>
2011-02-17 3:36 ` Steven Rostedt
2011-02-17 16:13 ` Mathieu Desnoyers
[not found] ` <BLU0-SMTP51D40A5B1DACA8883D6AB596D50@phx.gbl>
2011-02-17 20:09 ` Steven Rostedt
2011-02-15 22:20 ` Benjamin Herrenschmidt
2011-02-16 8:35 ` Ingo Molnar
2011-02-17 1:04 ` H. Peter Anvin
2011-02-17 12:51 ` Ingo Molnar
[not found] ` <BLU0-SMTP637B2E9372CFBF3A0B5B0996D00@phx.gbl>
2011-02-14 23:25 ` David Miller
2011-02-14 23:34 ` Mathieu Desnoyers
[not found] ` <20110214233405.GC17432@Krystal>
2011-02-14 23:52 ` Mathieu Desnoyers
2011-02-14 22:15 ` Matt Fleming
2011-02-15 15:20 ` Heiko Carstens
[not found] ` <BLU0-SMTP64371A838030ED92A7CCB696D00@phx.gbl>
2011-02-14 18:54 ` Jason Baron
2011-02-14 19:20 ` Peter Zijlstra
2011-02-14 19:48 ` Mathieu Desnoyers
2011-02-14 16:11 ` Mathieu Desnoyers
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=20110215004259.GP2256@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=andi@firstfloor.org \
--cc=avi@redhat.com \
--cc=benh@kernel.crashing.org \
--cc=cmetcalf@tilera.com \
--cc=davem@davemloft.net \
--cc=ddaney@caviumnetworks.com \
--cc=dhowells@redhat.com \
--cc=fweisbec@gmail.com \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=jbaron@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=matt@console-pimps.org \
--cc=michael@ellerman.id.au \
--cc=mingo@elte.hu \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=roland@redhat.com \
--cc=rostedt@goodmis.org \
--cc=rth@redhat.com \
--cc=sam@ravnborg.org \
--cc=schwidefsky@de.ibm.com \
--cc=segher@kernel.crashing.org \
--cc=tglx@linutronix.de \
--cc=vapier@gentoo.org \
--cc=will.newton@gmail.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 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.