public inbox for linux-arch@vger.kernel.org
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@engr.sgi.com>
To: Anton Blanchard <anton@samba.org>
Cc: Matthew Wilcox <matthew@wil.cx>,
	David Howells <dhowells@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	linux-arch@vger.kernel.org
Subject: Re: [PATCH] ?mb() -> smp_?mb() conversion
Date: Tue, 22 Mar 2005 10:24:50 -0800	[thread overview]
Message-ID: <200503221024.50311.jbarnes@engr.sgi.com> (raw)
In-Reply-To: <200503221015.57732.jbarnes@engr.sgi.com>

On Tuesday, March 22, 2005 10:15 am, Jesse Barnes wrote:
> > 2. drivers/net/typhoon.c
> >
> >                 INIT_COMMAND_NO_RESPONSE(cmd, TYPHOON_CMD_HELLO_RESP);
> >                 smp_wmb();
> >                 writel(ring->lastWrite, tp->ioaddr +
> > TYPHOON_REG_CMD_READY);
>
> I think this is the same as (3) below, since the first line is writing
> memory. So I'd agree that we need an I/O vs. memory barrier of some sort
> for platforms like ppc64 where they can be reordered independently.

I should clarify this: if both of the stores above are to I/O space and the 
CPU reorders them even coming from the same CPU (since I assume the above is 
in a critical section), you've got a broken CPU, don't you?  I mean, stores 
to I/O space are usually done with 'volatile' semantics, which on ia64 at 
least means that they're ordered wrt one another, so the memory barrier above 
wouldn't be necessary (again, assuming they're both writing to I/O space).

If your platform doesn't do this, I'd expect lots more problems since it seems 
that the majority of driver code assumes strong memory ordering to I/O space.

Jesse

  reply	other threads:[~2005-03-22 18:24 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-21 22:59 [PATCH] ?mb() -> smp_?mb() conversion Anton Blanchard
2005-03-21 23:06 ` David S. Miller
2005-03-22 10:43   ` David Howells
2005-03-22 13:13     ` Matthew Wilcox
2005-03-22 14:27       ` David Howells
2005-03-22 16:03       ` Anton Blanchard
2005-03-22 16:34         ` Matthew Wilcox
2005-03-22 16:48           ` David Howells
2005-03-22 17:13             ` David S. Miller
2005-03-22 17:44               ` James Bottomley
2005-03-22 18:09                 ` Jesse Barnes
2005-03-22 18:00               ` David Howells
2005-03-22 21:59               ` Paul Mackerras
2005-03-22 18:15         ` Jesse Barnes
2005-03-22 18:24           ` Jesse Barnes [this message]
2005-03-23  6:23         ` Paul Mackerras

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=200503221024.50311.jbarnes@engr.sgi.com \
    --to=jbarnes@engr.sgi.com \
    --cc=anton@samba.org \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=matthew@wil.cx \
    /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