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
Subject: Re: [PATCH 0/2] jump label: 2.6.38 updates
Date: Mon, 14 Feb 2011 15:09:02 -0800 [thread overview]
Message-ID: <20110214230902.GM2256@linux.vnet.ibm.com> (raw)
In-Reply-To: <BLU0-SMTP166A8555C791786059B0FF96D00@phx.gbl>
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.
Thanx, Paul
> If this is true, then we have bugs in lots of xchg/cmpxchg users (which
> do not reside in atomic.h), e.g.:
>
> fs/fs_struct.c:
> int current_umask(void)
> {
> return current->fs->umask;
> }
> EXPORT_SYMBOL(current_umask);
>
> kernel/sys.c:
> SYSCALL_DEFINE1(umask, int, mask)
> {
> mask = xchg(¤t->fs->umask, mask & S_IRWXUGO);
> return mask;
> }
>
> The solution to this would be to force all xchg/cmpxchg users to swap to
> atomic.h variables, which would force the ll semantic on read. But I'd
> really like to see where this is documented first -- or which PowerPC
> engineer we should talk to.
>
> Thanks,
>
> Mathieu
>
> --
> Mathieu Desnoyers
> Operating System Efficiency R&D Consultant
> EfficiOS Inc.
> http://www.efficios.com
next prev parent reply other threads:[~2011-02-14 23:09 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 [this message]
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
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=20110214230902.GM2256@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=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=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.