All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>,
	jmerkey@wolfmountaingroup.com, linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Nick Piggin <nickpiggin@yahoo.com.au>,
	David Howells <dhowells@redhat.com>
Subject: Re: [ANNOUNCE] mdb: Merkey's Linux Kernel Debugger 2.6.27-rc4 released
Date: Thu, 21 Aug 2008 07:53:33 -0700	[thread overview]
Message-ID: <20080821145333.GF6690@linux.vnet.ibm.com> (raw)
In-Reply-To: <1219320206.8651.116.camel@twins>

On Thu, Aug 21, 2008 at 02:03:26PM +0200, Peter Zijlstra wrote:
> On Thu, 2008-08-21 at 04:47 -0700, Paul E. McKenney wrote:
> > On Thu, Aug 21, 2008 at 01:02:48PM +0200, Peter Zijlstra wrote:
> > > On Thu, 2008-08-21 at 12:57 +0200, Stefan Richter wrote:
> > > > Peter Zijlstra wrote:
> > > > > On Wed, 2008-08-20 at 20:50 -0600, jmerkey@wolfmountaingroup.com wrote:
> > > > > 
> > > > >>  volatiles left in the code due to the previously stated
> > > > >>  (and still present) severe breakage of the GNU compiler with SMP 
> > > > >>  shared data.  most of the barrier() functions are just plain broken
> > > > >>  and do not result in proper compiler behavior in this tree. 
> > > > > 
> > > > > Can you provide explicit detail?
> > > > > 
> > > > > By using barrier() the compiler should clobber all its memory and
> > > > > registers therefore forcing a write/reload of the variable.
> > > > 
> > > > I hope Jeff didn't try mere barrier()s only.  smp_wmb() and smp_rmb()
> > > > are the more relevant barrier variants for mdb, from what I remember
> > > > when I last looked at it.
> > > 
> > > Sure, but volatile isn't a replacement for memory barriers.
> > 
> > Let's face it, the C standard does not support concurrency, so we are
> > all in a state of sin in any case, forced to rely on combinations of
> > gcc-specific non-standard language extensions and assembly language.
> 
> Hehe, still, a little birdie told me they are working on it and perhaps
> someone with clue could enlighten us on their direction.

Well, I guess you guys will be the judge of that.  Or one of the judges,
at least.  ;-)

One advantage of the current c++0x approach is that it allows extremely
weak memory barriers to be used in many cases that would require smp_rmb()
in current Linux kernel.  If you are crazy enough to want to see a
sneak preview in standardese, try all 10MB of:

	http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2691.pdf

Section 1.10 (physical page 25, logical page 11) describes the memory model.
Sections 29 and 30 describe the operations (physical page 1155, logical
page 1141).  The C and C++ guys got together ahead of time and agreed to
work together towards a compatible solution.

And rcu_dereference() would be implemented in terms of memory_order_consume,
for whatever that is worth.

> Still, I'd like Jeff to show his C, the resulting asm and the intent for
> the volatile and barrier versions of his code (well, little snippets of
> his code obviuosly).
> 
> Either he doesn't understand barriers (nothing to be ashamed about), or
> we might have more trouble lurking in the rest of the kernel.

Sounds fair to me!

							Thanx, Paul

  reply	other threads:[~2008-08-21 14:53 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-21  2:50 [ANNOUNCE] mdb: Merkey's Linux Kernel Debugger 2.6.27-rc4 released jmerkey
2008-08-21 10:07 ` Peter Zijlstra
2008-08-21 10:57   ` Stefan Richter
2008-08-21 11:02     ` Peter Zijlstra
2008-08-21 11:47       ` Paul E. McKenney
2008-08-21 12:03         ` Peter Zijlstra
2008-08-21 14:53           ` Paul E. McKenney [this message]
2008-08-21 14:58             ` jmerkey
2008-08-21 12:05         ` Stefan Richter
2008-08-21 12:26           ` jmerkey
     [not found]             ` <43593.166.70.238.46.1219321595.squirrel@webmail.wolfmountaingroup.com >
2008-08-21 12:35               ` jmerkey
2008-08-21 13:37             ` Nick Piggin
2008-08-21 14:09               ` Stefan Richter
2008-08-22  1:40                 ` Nick Piggin
2008-08-22  6:32                   ` Stefan Richter
2008-08-22 11:54                     ` jmerkey
2008-08-22 12:36                       ` Stefan Richter
2008-08-21 14:09               ` Peter Zijlstra
2008-08-21 14:30                 ` Paul E. McKenney
2008-08-21 14:14                   ` jmerkey
2008-08-21 14:48                   ` Peter Zijlstra
2008-08-21 16:21                 ` Avi Kivity
2008-08-21 21:06               ` Jeremy Fitzhardinge
2008-08-21 21:18                 ` Linus Torvalds
2008-08-21 21:21                   ` Jeremy Fitzhardinge
2008-08-24  4:25                   ` jmerkey
2008-08-26  8:26                     ` Andi Kleen
2008-08-27  1:49                       ` jmerkey
2008-08-22  1:37                 ` Nick Piggin
2008-08-21 14:02             ` Stefan Richter
2008-08-21 14:08               ` jmerkey
2008-08-21 15:22                 ` Stefan Richter
2008-08-21 15:02                   ` jmerkey
2008-08-21 15:57         ` Linus Torvalds
2008-08-21 16:18           ` Linus Torvalds
2008-08-21 16:48             ` Paul E. McKenney
2008-09-24  0:01               ` Paul E. McKenney
2008-08-21 16:43           ` Paul E. McKenney

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=20080821145333.GF6690@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=dhowells@redhat.com \
    --cc=jmerkey@wolfmountaingroup.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=peterz@infradead.org \
    --cc=stefanr@s5r6.in-berlin.de \
    --cc=torvalds@linux-foundation.org \
    /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.