From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>, Mel Gorman <mel@csn.ul.ie>,
Rik van Riel <riel@redhat.com>, Jason Low <jason.low2@hp.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Oleg Nesterov <oleg@redhat.com>,
Mike Galbraith <umgwanakikbuti@gmail.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Mel Gorman <mgorman@suse.de>,
Preeti U Murthy <preeti@linux.vnet.ibm.com>,
hideaki.kimura@hp.com, Aswin Chandramouleeswaran <aswin@hp.com>,
Scott J Norton <scott.norton@hp.com>
Subject: Re: [PATCH 1/3] sched, timer: Remove usages of ACCESS_ONCE in the scheduler
Date: Thu, 16 Apr 2015 12:41:11 -0700 [thread overview]
Message-ID: <20150416194111.GF23685@linux.vnet.ibm.com> (raw)
In-Reply-To: <20150416190208.GD23123@twins.programming.kicks-ass.net>
On Thu, Apr 16, 2015 at 09:02:08PM +0200, Peter Zijlstra wrote:
> On Thu, Apr 16, 2015 at 08:24:27PM +0200, Ingo Molnar wrote:
> > Yes ... but that still leaves this weird feeling that it's really
> > still a bit wrong because it's not proper parallel code, we just
> > reduced the probability of the remaining races radically. And it's not
> > like GCC (or any compiler) does load tearing or even store tearing
> > under normal -O2 for such code patterns, right?
>
> I think Paul once caught GCC doing something silly, but typically no.
> The re-loads however have been frequently observed.
Too true!
Some architectures do split stores of constants. For example, given
an architecture with a store-immediate instruction with (say) a four-bit
immediate field, gcc can compile this:
x = 0x00020008;
to something like:
st $2, (x+2)
st $8, (x)
And gcc was doing this even though the store to x had volatile semantics,
a bug which has thankfully since been fixed.
But then again, I am paranoid. So I would not put it past gcc to think
to itself "Hmmm... I just loaded x a few instructions back, and only
clobbered the low-order byte. So I will just reload that byte into
low-order byte of the register containing the remnants of the previous
load."
No, I have never seen gcc do that, but a C compiler could do that and
still claim to be complying with the standard. :-/
Thanx, Paul
> > > And its not like they really cost anything.
> >
> > That's true.
> >
> > Would it make sense to add a few comments to the seq field definition
> > site(s), about how it's supposed to be accessed - or to the
> > READ_ONCE()/WRITE_ONCE() sites, to keep people from wondering?
>
> For sure, can do a comment no problem.
>
next prev parent reply other threads:[~2015-04-16 19:41 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-14 23:09 [PATCH 0/3] sched, timer: Improve scalability of itimers Jason Low
2015-04-14 23:09 ` [PATCH 1/3] sched, timer: Remove usages of ACCESS_ONCE in the scheduler Jason Low
2015-04-14 23:59 ` Steven Rostedt
2015-04-15 2:12 ` Jason Low
2015-04-15 2:40 ` Steven Rostedt
2015-04-15 7:46 ` Ingo Molnar
2015-04-15 18:49 ` Jason Low
2015-04-15 19:16 ` Steven Rostedt
2015-04-16 2:46 ` Jason Low
2015-04-16 16:52 ` Peter Zijlstra
2015-04-16 18:02 ` Ingo Molnar
2015-04-16 18:15 ` Peter Zijlstra
2015-04-16 18:24 ` Ingo Molnar
2015-04-16 19:02 ` Peter Zijlstra
2015-04-16 19:41 ` Paul E. McKenney [this message]
2015-04-17 3:25 ` Jason Low
2015-04-17 8:19 ` Ingo Molnar
2015-04-16 21:00 ` Jason Low
2015-04-16 2:29 ` Jason Low
2015-04-16 2:37 ` Steven Rostedt
2015-04-14 23:09 ` [PATCH 2/3] sched, timer: Use atomics for thread_group_cputimer to improve scalability Jason Low
2015-04-15 7:33 ` Ingo Molnar
2015-04-15 7:35 ` Ingo Molnar
2015-04-15 17:14 ` Jason Low
2015-04-15 10:37 ` Preeti U Murthy
2015-04-15 19:09 ` Jason Low
2015-04-15 13:25 ` Frederic Weisbecker
2015-04-15 13:32 ` Peter Zijlstra
2015-04-15 20:04 ` Jason Low
2015-04-15 14:23 ` Davidlohr Bueso
2015-04-15 21:15 ` Jason Low
2015-04-14 23:09 ` [PATCH 3/3] sched, timer: Use cmpxchg to do updates in update_gt_cputime() Jason Low
2015-04-14 23:53 ` [PATCH 0/3] sched, timer: Improve scalability of itimers Linus Torvalds
2015-04-15 7:24 ` Ingo Molnar
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=20150416194111.GF23685@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=aswin@hp.com \
--cc=fweisbec@gmail.com \
--cc=hideaki.kimura@hp.com \
--cc=jason.low2@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mel@csn.ul.ie \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=preeti@linux.vnet.ibm.com \
--cc=riel@redhat.com \
--cc=rostedt@goodmis.org \
--cc=scott.norton@hp.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=umgwanakikbuti@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.