From: Matthew Wilcox <matthew@wil.cx>
To: John Partridge <johnip@sgi.com>
Cc: Roland Dreier <rdreier@cisco.com>,
"Richard B. Johnson" <jmodem@AbominableFirebug.com>,
"Michael S. Tsirkin" <mst@mellanox.co.il>,
linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org,
jeff@garzik.org, openib-general@openib.org,
linux-pci@atrey.karlin.mff.cuni.cz,
David Miller <davem@davemloft.net>
Subject: Re: Ordering between PCI config space writes and MMIO reads?
Date: Wed, 1 Nov 2006 09:46:44 -0700 [thread overview]
Message-ID: <20061101164643.GH11399@parisc-linux.org> (raw)
In-Reply-To: <4548CAE7.8010300@sgi.com>
On Wed, Nov 01, 2006 at 10:27:19AM -0600, John Partridge wrote:
> Sorry, but I find this change a bit puzzling. The problem is particular to
> the PPB on the HCA and not Altix.
That's not true; it's more likely on Altix, but it's not unique. *any*
PCI-PCI bridge can reorder pci config reads and writes. Apparently the
normal PCI host bridge implementation avoids this problem by blocking
until the completion comes back. If you put a quad-port tulip card into
an Altix, you could experience the same problem (but it would be
massively unlikely. You'd probably have to bring up three interfaces,
saturate them with traffic, then bring up the fourth to see it. And
even then it would be rare).
> I can't see anywhere that a PCI Config
> Write
> is required to block until completion, it is the driver and the HCA ,not the
> Altix hardware that requires the Config Write to have completed before we
> leave mthca_reset()
There's several places in the PCI midlayer that require the config write
to have completed before we do a config read. The MWI code relies on
this to see if the device supports MWI. If it gets out of order, we'll
think that the device doesn't support MWI when it thinks it's been told
to use MWI. Data corruption could result.
> Changing pci_write_config_xxx() will change the behavior
> for ALL drivers and the possibility of breaking something else. The fix was
> very low risk in mthca_reset(), changing the PCI code to fix this is much
> more onerous.
I really don't think so. At worst you'll be changing the timing.
next prev parent reply other threads:[~2006-11-01 16:46 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-24 19:13 Ordering between PCI config space writes and MMIO reads? Roland Dreier
2006-10-24 19:22 ` Jeff Garzik
2006-10-24 21:47 ` Matthew Wilcox
2006-10-24 21:51 ` Roland Dreier
2006-10-24 22:12 ` John Partridge
2006-10-24 22:36 ` Matthew Wilcox
2006-10-24 22:43 ` David Miller
2006-10-25 14:15 ` Roland Dreier
2006-10-31 19:02 ` Roland Dreier
2006-10-31 19:53 ` Michael S. Tsirkin
2006-10-31 19:53 ` Roland Dreier
2006-10-31 19:58 ` Matthew Wilcox
2006-10-31 20:28 ` Michael S. Tsirkin
2006-10-31 20:34 ` Richard B. Johnson
2006-10-31 20:47 ` Matthew Wilcox
2006-10-31 22:30 ` Roland Dreier
2006-11-01 16:27 ` John Partridge
2006-11-01 16:46 ` Matthew Wilcox [this message]
2006-11-01 17:08 ` John Partridge
2006-11-01 17:14 ` Matthew Wilcox
2006-11-01 23:04 ` David Miller
2006-11-02 1:08 ` John Partridge
2006-10-31 20:50 ` Michael S. Tsirkin
2006-10-24 22:59 ` [openib-general] " Jason Gunthorpe
2006-10-25 14:04 ` Roland Dreier
2006-10-24 23:09 ` Michael S. Tsirkin
2006-10-24 23:27 ` Jack Steiner
2006-10-25 14:05 ` Roland Dreier
2006-11-02 3:05 ` Jeremy Higdon
2006-10-24 21:01 ` [openib-general] " JWM
2006-10-24 21:24 ` Alan Cox
2006-10-24 21:29 ` Roland Dreier
2006-10-24 21:37 ` Jeff Garzik
2006-10-25 6:30 ` Grant Grundler
2006-10-25 14:11 ` Roland Dreier
2006-10-25 14:18 ` Matthew Wilcox
2006-10-25 17:15 ` [openib-general] " Jason Gunthorpe
2006-10-25 18:22 ` Michael S. Tsirkin
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=20061101164643.GH11399@parisc-linux.org \
--to=matthew@wil.cx \
--cc=davem@davemloft.net \
--cc=jeff@garzik.org \
--cc=jmodem@AbominableFirebug.com \
--cc=johnip@sgi.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=mst@mellanox.co.il \
--cc=openib-general@openib.org \
--cc=rdreier@cisco.com \
/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