public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@SteelEye.com>
To: Matthew Wilcox <matthew@wil.cx>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Jeremy Higdon <jeremy@sgi.com>,
	Grant Grundler <grundler@parisc-linux.org>,
	Jesse Barnes <jbarnes@engr.sgi.com>,
	Matthew Wilcox <willy@debian.org>,
	Andrew Vasquez <andrew.vasquez@qlogic.com>,
	pj@sgi.com, SCSI Mailing List <linux-scsi@vger.kernel.org>,
	mdr@cthulhu.engr.sgi.com, jeremy@cthulhu.engr.sgi.com,
	djh@cthulhu.engr.sgi.com, Andrew Morton <akpm@osdl.org>,
	Richard Henderson <rth@twiddle.net>,
	Paul Mackerras <paulus@samba.org>
Subject: Re: I/O write ordering
Date: 22 Sep 2004 23:01:10 -0400	[thread overview]
Message-ID: <1095908479.2295.53.camel@mulgrave> (raw)
In-Reply-To: <20040923015819.GU16153@parcelfarce.linux.theplanet.co.uk>

On Wed, 2004-09-22 at 21:58, Matthew Wilcox wrote:
> On Thu, Sep 23, 2004 at 10:19:57AM +1000, Benjamin Herrenschmidt wrote:
> > And that wouldn't help vs. spinlocks which are in real RAM
> > (we have a similar issue with IO leaking potentially out of locks, 
> > if we don't use some heavy barriers there too).
> 
> Yep, that was the problem that SGI wanted to solve.

Yes, but the ppc introduces an additional issue with the consistent
memory problem.

The io memory barrier is used to prevent writes to PCI space leaking
around synchronisation primitives.  However, there's also the ordering
of writes to consistent memory vs writes to PCI space.

The ownership model for consistent memory solves this.

Think of it this way: writes to consistent memory are normal memory
writes (they don't trigger actions in the device), it's the writes to
the device space that trigger actions.  All you want to ensure is that
all the consistent memory writes are issued before the device is
triggered into action.

So, in the ownership model you transfer the ownership of the consistent
memory area to the device (which would be the heavyweight barrier on
ppc) then write to the device space to trigger it.

synchronisation of consistent memory accesses can be done via normal
spin locks; synchronisation of device space needs the the iomb() to
prevent reordering leaks around the spinlock.

James



  reply	other threads:[~2004-09-23  3:01 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <B179AE41C1147041AA1121F44614F0B060EF48@AVEXCH02.qlogic.org>
     [not found] ` <20040916121235.5e4f9c32.pj@sgi.com>
     [not found]   ` <1095362263.16326.12.camel@praka>
2004-09-16 19:56     ` SCSI QLA not working on latest *-mm SN2 Paul Jackson
2004-09-16 20:05       ` Jesse Barnes
2004-09-16 20:56         ` Andrew Vasquez
2004-09-16 21:09           ` Jesse Barnes
2004-09-16 21:40             ` Andrew Vasquez
2004-09-16 22:25               ` Andrew Morton
2004-09-16 22:29                 ` Jesse Barnes
2004-09-17 17:21                   ` Jesse Barnes
2004-09-18  6:10                     ` Grant Grundler
2004-09-18 17:57                       ` Documentation/io_ordering.txt is wrong Matthew Wilcox
2004-09-20 23:39                         ` Jesse Barnes
2004-09-21  0:38                         ` Jesse Barnes
2004-09-20 22:40                       ` SCSI QLA not working on latest *-mm SN2 Jesse Barnes
2004-09-20 23:27                         ` Grant Grundler
2004-09-21  0:09                           ` Jesse Barnes
2004-09-21  5:46                             ` Grant Grundler
2004-09-21  6:45                               ` Jeremy Higdon
2004-09-21 13:29                                 ` Jesse Barnes
2004-09-21 13:25                               ` Jesse Barnes
2004-09-21 15:13                               ` Jesse Barnes
2004-09-21 15:41                                 ` James Bottomley
2004-09-21 15:58                                   ` Jesse Barnes
2004-09-21 16:01                                     ` Matthew Wilcox
2004-09-21 16:05                                       ` Jesse Barnes
2004-09-21 16:11                                         ` James Bottomley
2004-09-21 16:18                                           ` Jesse Barnes
2004-09-21 16:24                                             ` James Bottomley
2004-09-21 17:03                                           ` Jesse Barnes
2004-09-21 17:15                                             ` Matthew Wilcox
2004-09-21 17:24                                               ` Jesse Barnes
2004-09-21 17:20                                             ` James Bottomley
2004-09-21 17:46                                               ` Jesse Barnes
2004-09-21 17:56                                                 ` James Bottomley
2004-09-21 18:09                                                   ` Jesse Barnes
2004-09-21 19:06                                                     ` Grant Grundler
2004-09-21 19:40                                                       ` Jesse Barnes
2004-09-21 22:44                                                         ` Grant Grundler
2004-09-21 21:03                                                       ` Jeremy Higdon
2004-09-21 21:11                                                         ` Matthew Wilcox
2004-09-21 21:43                                                           ` Jeremy Higdon
2004-09-21 22:33                                                             ` Jesse Barnes
2004-09-22  0:02                                                             ` Matthew Wilcox
2004-09-22  1:16                                                               ` Jeremy Higdon
2004-09-22  1:44                                                                 ` Grant Grundler
2004-09-22  2:58                                                                   ` Jeremy Higdon
2004-09-22 14:32                                                                     ` I/O write ordering Matthew Wilcox
2004-09-22 14:40                                                                       ` Benjamin Herrenschmidt
2004-09-22 14:50                                                                         ` Jesse Barnes
2004-09-22 14:47                                                                       ` James Bottomley
2004-09-22 14:51                                                                         ` Benjamin Herrenschmidt
2004-09-22 15:11                                                                           ` James Bottomley
2004-09-22 15:11                                                                             ` Benjamin Herrenschmidt
2004-09-22 15:22                                                                               ` James Bottomley
2004-09-22 15:28                                                                                 ` Benjamin Herrenschmidt
2004-09-22 15:43                                                                                   ` James Bottomley
2004-09-23  0:19                                                                                     ` Benjamin Herrenschmidt
2004-09-23  1:58                                                                                       ` Matthew Wilcox
2004-09-23  3:01                                                                                         ` James Bottomley [this message]
2004-09-23  3:40                                                                                           ` Benjamin Herrenschmidt
2004-09-23  4:26                                                                                             ` Grant Grundler
2004-09-21 23:03                             ` SCSI QLA not working on latest *-mm SN2 Guennadi Liakhovetski
2004-09-16 23:14           ` Jeremy Higdon
2004-09-16 20:11       ` Andrew Morton

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=1095908479.2295.53.camel@mulgrave \
    --to=james.bottomley@steeleye.com \
    --cc=akpm@osdl.org \
    --cc=andrew.vasquez@qlogic.com \
    --cc=benh@kernel.crashing.org \
    --cc=djh@cthulhu.engr.sgi.com \
    --cc=grundler@parisc-linux.org \
    --cc=jbarnes@engr.sgi.com \
    --cc=jeremy@cthulhu.engr.sgi.com \
    --cc=jeremy@sgi.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=matthew@wil.cx \
    --cc=mdr@cthulhu.engr.sgi.com \
    --cc=paulus@samba.org \
    --cc=pj@sgi.com \
    --cc=rth@twiddle.net \
    --cc=willy@debian.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