From: Jesse Barnes <jbarnes@sgi.com>
To: Anton Blanchard <anton@samba.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
Dave Engebretsen <engebret@vnet.ibm.com>,
linux-kernel@vger.kernel.org
Subject: Re: Memory Barrier Definitions
Date: Mon, 13 May 2002 11:16:52 -0700 [thread overview]
Message-ID: <20020513181652.GC1236450@sgi.com> (raw)
In-Reply-To: <3CD830BE.CAB7FA96@vnet.ibm.com> <E175BY8-0008S4-00@the-village.bc.nu> <20020507225752.GA21321@krispykreme>
On Wed, May 08, 2002 at 08:57:52AM +1000, Anton Blanchard wrote:
>
> > You have
> >
> > Compiler ordering
> > CPU v CPU memory ordering
> > CPU v I/O memory ordering
> > I/O v I/O memory ordering
>
> Yep. Maybe we could have:
>
> CPU v CPU smp_*mb or cpu_*mb
> CPU v I/O *mb
> I/O v I/O io_*mb
>
> Then again before Linus hits me on the head for hoarding vowels,
>
> http://hypermail.spyroid.com/linux-kernel/archived/2001/week41/1270.html
>
> I should suggest we make these a little less cryptic:
>
> CPU v CPU cpu_{read,write,memory}_barrier
> CPU v I/O {read,write,memory}_barrier
> I/O v I/O io_{read,write,memory}_barrier
>
> > and our current heirarchy is a little bit more squashed than that. I'd
> > agree. We actually hit a corner case of this on the IDT winchip x86 where
> > we run relaxed store ordering and have to define wmb() as a locked add of
> > zero to the top of stack - which does have a penalty that isnt needed
> > for CPU ordering.
> >
> > How much of this impacts Mips64 ?
>
> I remember some ia64 implementations have issues. Jesse, could you
> fill us in again? I think you have problems with out of order
> loads/stores to noncacheable space, right?
Both MIPS64 and our NUMA IA64 implementation have weakly ordered I/O.
The primitives outlined above should be sufficient to order I/O and
memory references on both platforms without unnecessary penalties.
Thanks for adding me to the Cc: list, sorry it took me so long to
respond.
It might also be good to summarize the ordering issues in a document
in the Documentation directory. I've got a little something started
(see the ia64 patch for 2.5) for I/O ordering, and I have another
document that covers CPU memory ordering too that I could probably
contribute.
Thanks,
Jesse
next prev parent reply other threads:[~2002-05-13 18:17 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-07 19:07 Memory Barrier Definitions Dave Engebretsen
2002-05-07 19:49 ` Alan Cox
2002-05-07 19:53 ` Dave Engebretsen
2002-05-07 20:27 ` Alan Cox
2002-05-07 21:23 ` Dave Engebretsen
2002-05-07 22:15 ` justincarlson
2002-05-08 2:49 ` Dave Engebretsen
2002-05-08 13:54 ` Justin Carlson
2002-05-08 15:27 ` Dave Engebretsen
2002-05-08 15:49 ` Andi Kleen
2002-05-08 17:07 ` David Mosberger
2002-05-09 7:36 ` Rusty Russell
2002-05-09 8:01 ` Keith Owens
2002-05-09 15:00 ` David Mosberger
2002-05-13 3:26 ` Rusty Russell
2002-05-13 16:36 ` David Mosberger
2002-05-13 16:50 ` Linus Torvalds
2002-05-13 17:53 ` David Mosberger
2002-05-13 23:28 ` Rusty Russell
2002-05-07 22:57 ` Anton Blanchard
2002-05-13 18:16 ` Jesse Barnes [this message]
-- strict thread matches above, loose matches on Subject: below --
2002-05-09 11:33 Manfred Spraul
2002-05-09 19:38 ` Dave Engebretsen
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=20020513181652.GC1236450@sgi.com \
--to=jbarnes@sgi.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=anton@samba.org \
--cc=engebret@vnet.ibm.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