mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: Christoph Lameter <clameter@engr.sgi.com>
Cc: David Howells <dhowells@redhat.com>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Document Linux's memory barriers
Date: Wed, 08 Mar 2006 17:35:08 +0000	[thread overview]
Message-ID: <10414.1141839308@warthog.cambridge.redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0603080817500.5481@schroedinger.engr.sgi.com>

Christoph Lameter <clameter@engr.sgi.com> wrote:

> You need to explain the difference between the compiler reordering and the 
> control of the compilers arrangement of loads and stores and the cpu 
> reordering of stores and loads.

Hmmm... I would hope people looking at this doc would understand that, but
I'll see what I can come up with.

> Note that IA64 has a much more complete set of means to reorder stores and
> loads. i386 and x84_64 processors can only do limited reordering. So it may
> make sense to deal with general reordering and then explain i386 as a
> specific limited case.

Don't you need to use sacrifice_goat() for controlling the IA64? :-)

Besides, I'm not sure that I need to explain that any CPU is a limited case;
I'm primarily trying to define the basic minimal guarantees you can expect
from using a memory barrier, and what might happen if you don't. It shouldn't
matter which arch you're dealing with, especially if you're writing a driver.

I tried to create arch-specific sections for describing arch-specific implicit
barriers and the extent of the explicit memory barriers on each arch, but the
i386 section was generating lots of exceptions that it looked infeasible to
describe them; besides, you aren't allowed to rely on such features outside of
arch code (I count arch-specific drivers as "arch code" for this).

> See the "Intel Itanium Architecture Software Developer's Manual" 
> (available from intels website). Look at Volume 1 section 2.6 
> "Speculation" and 4.4 "Memory Access"

I've added that to the refs, thanks.

> Also the specific barrier functions of various locking elements varies to 
> some extend.

Please elaborate.

David

  parent reply	other threads:[~2006-03-08 17:35 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-07 17:40 David Howells
2006-03-07 10:34 ` Andi Kleen
2006-03-07 17:47 ` Stephen Hemminger
2006-03-07 18:30 ` David Howells
2006-03-07 11:13   ` Andi Kleen
2006-03-07 18:46   ` Jesse Barnes
2006-03-07 19:23   ` Bryan O'Sullivan
2006-03-07 11:57     ` Andi Kleen
2006-03-07 20:01       ` Jesse Barnes
2006-03-07 21:14       ` Bryan O'Sullivan
2006-03-07 21:24         ` Andi Kleen
2006-03-08  0:36           ` Alan Cox
2006-03-08  0:35       ` Alan Cox
2006-03-07 19:24   ` David Howells
2006-03-07 19:46     ` Stephen Hemminger
2006-03-07 18:40 ` Alan Cox
2006-03-07 18:54   ` linux-os (Dick Johnson)
2006-03-07 19:06     ` Matthew Wilcox
2006-03-07 19:15       ` linux-os (Dick Johnson)
2006-03-09 11:26         ` Sergei Organov
2006-03-07 19:33     ` Alan Cox
2006-03-07 20:09 ` David Howells
2006-03-08  0:32   ` Alan Cox
2006-03-08  8:25   ` Duncan Sands
2006-03-08 22:06     ` Paul Mackerras
2006-03-08 22:24       ` David S. Miller
2006-03-08 22:31         ` Linus Torvalds
2006-03-08 22:42       ` Alan Cox
2006-03-08  2:07 ` Nick Piggin
2006-03-08  3:10 ` Paul Mackerras
2006-03-08  3:30   ` Linus Torvalds
2006-03-08  7:41   ` Nick Piggin
2006-03-08 12:34   ` David Howells
2006-03-08 16:40     ` Bryan O'Sullivan
2006-03-08 13:19 ` David Howells
2006-03-08 21:49   ` Paul Mackerras
2006-03-08 22:05     ` Alan Cox
2006-03-10  0:49   ` H. Peter Anvin
2006-03-08 14:37 ` [PATCH] Document Linux's memory barriers [try #2] David Howells
2006-03-08 14:55   ` Alan Cox
2006-03-08 15:41     ` Matthew Wilcox
2006-03-08 17:19     ` David Howells
2006-03-08 22:10       ` Paul Mackerras
2006-03-08 23:08         ` Ivan Kokshaysky
2006-03-09  1:01           ` Paul Mackerras
2006-03-09 16:02             ` Ivan Kokshaysky
2006-03-08 22:01     ` Paul Mackerras
2006-03-08 22:23       ` David S. Miller
2006-03-08 17:04   ` David Howells
2006-03-08 17:36     ` Alan Cox
2006-03-08 18:35     ` David Howells
2006-03-08 18:45       ` Alan Cox
2006-03-08 18:59       ` David Howells
2006-03-08 11:38         ` Andi Kleen
2006-03-08 19:08       ` David Howells
2006-03-08 19:26         ` Linus Torvalds
2006-03-08 19:40           ` Matthew Wilcox
2006-03-09  0:37             ` Paul Mackerras
2006-03-09  0:59               ` Jesse Barnes
2006-03-09  1:36                 ` Paul Mackerras
2006-03-09  4:18                   ` Jesse Barnes
2006-03-08 19:54           ` Jesse Barnes
2006-03-08 20:02           ` Alan Cox
2006-03-08 19:31         ` David Howells
2006-03-09  0:35           ` Paul Mackerras
2006-03-09  0:54             ` Linus Torvalds
2006-03-09  1:08               ` Paul Mackerras
2006-03-09  1:27                 ` Linus Torvalds
2006-03-09  2:38                   ` Nick Piggin
2006-03-09  3:45                   ` Paul Mackerras
2006-03-09  4:36                     ` Jesse Barnes
2006-03-09  7:41                       ` Paul Mackerras
2006-03-09  5:38                     ` Linus Torvalds
2006-03-09 11:44                     ` Michael Buesch
2006-03-09 12:27                     ` David Howells
2006-03-09  4:34                   ` Jesse Barnes
2006-03-09  4:43                     ` Paul Mackerras
2006-03-09 10:05                       ` Jes Sorensen
2006-03-09  0:55             ` Jesse Barnes
2006-03-09  1:57               ` Paul Mackerras
2006-03-09  4:26                 ` Jesse Barnes
2006-03-09 12:02   ` Sergei Organov
2006-03-08 16:18 ` [PATCH] Document Linux's memory barriers Pavel Machek
2006-03-08 16:26 ` Christoph Lameter
2006-03-08 17:35 ` David Howells [this message]
2006-03-08 17:46   ` Christoph Lameter
2006-03-08 17:59     ` Alan Cox
2006-03-08 19:37 ` [PATCH] Document Linux's memory barriers [try #3] David Howells
2006-03-08 20:16 ` [PATCH] Document Linux's memory barriers David Howells
2006-03-08 22:01   ` Alan Cox
2006-03-09 11:41   ` David Howells
2006-03-09 12:28     ` Alan Cox
2006-03-09 13:02     ` David Howells
2006-03-09 16:32     ` Linus Torvalds
2006-03-09 17:39     ` David Howells
2006-03-09 17:54       ` Linus Torvalds
2006-03-09 17:56         ` Linus Torvalds
2006-03-09 14:01 ` [PATCH] Document Linux's memory barriers [try #3] David Howells
2006-03-07 23:17 [PATCH] Document Linux's memory barriers Chuck Ebbert
2006-03-08  0:15 ` David S. Miller
2006-03-08  0:24 ` Roberto Nibali
     [not found] <5NONi-2hp-3@gated-at.bofh.it>
     [not found] ` <5NOtZ-1FO-27@gated-at.bofh.it>
     [not found]   ` <5NPgs-2Rw-37@gated-at.bofh.it>
     [not found]     ` <5NPq4-34a-23@gated-at.bofh.it>
2006-03-08  0:22       ` Robert Hancock
     [not found] ` <5NQ2U-462-29@gated-at.bofh.it>
     [not found]   ` <5NRLg-6LJ-31@gated-at.bofh.it>
     [not found]     ` <5NRUR-6Yo-11@gated-at.bofh.it>
     [not found]       ` <5NUSF-30Z-5@gated-at.bofh.it>
2006-03-08  1:10         ` Robert Hancock
2006-03-08 11:35           ` Alan Cox
2006-03-08 14:55           ` Andi Kleen

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=10414.1141839308@warthog.cambridge.redhat.com \
    --to=dhowells@redhat.com \
    --cc=clameter@engr.sgi.com \
    --cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome