From: Tony Camuso <tcamuso@redhat.com>
To: Arjan van de Ven <arjan@infradead.org>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
Greg KH <greg@kroah.com>, Matthew Wilcox <matthew@wil.cx>,
Linus Torvalds <torvalds@linux-foundation.org>,
Greg KH <gregkh@suse.de>,
linux-kernel@vger.kernel.org, Jeff Garzik <jeff@garzik.org>,
linux-pci@atrey.karlin.mff.cuni.cz,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Martin Mares <mj@ucw.cz>, Loic Prylli <loic@myri.com>,
Prarit Bhargava <prarit@redhat.com>,
"Chumbalkar, Nagananda" <Nagananda.Chumbalkar@hp.com>,
"Schoeller, Patrick (Linux - Houston,
TX)" <Patrick.Schoeller@hp.com>,
Bhavana Nagendra <bnagendr@redhat.com>
Subject: Re: [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in
Date: Sat, 12 Jan 2008 20:36:59 -0500 [thread overview]
Message-ID: <47896B3B.2000108@redhat.com> (raw)
In-Reply-To: <20080112164006.6f6f7bc2@laptopd505.fenrus.org>
Thanks, Arjan.
The problem we have been experiencing has to do with Northbridges,
not with devices.
As far as the device is concerned, after the Northbridge translates
the config access into PCI bus cycles, the device has no idea what
mechanism drove the Northbridge to the translation.
That is to say, the device does not know whether the config cycle
on the bus was caused by an MMCONFIG cycle or a legacy Port IO
cycle delivered to the Northbridge.
In systems that had Northbridges that did not respond correctly to
MMCONFIG cycles, like the AMD 8132, we (HP & RH) were blacklisting
whole platforms to limit them to Port IO PCI config.
However, when platforms emerged using both legacy PCI and PCI express,
the platforms that were limited to Port IO config cycles were not
express compliant, since the express spec requires the platform to
be able to address the full 4096 byte region of config space to
be considered express-compliant.
The patch I devised concerned itself with Northbridges and separated
MMCONFIG-compliant buses from those that could not handle MMCONFIG.
Therefore, the express bus in the platform could happily employ
MMCONFIG to access the entire 4K region, while the legacy bus
with the non-compliant Northbridge could be restricted to Port IO
config.
However, even with my patch, the problem remained where devices
requiring large displacements could overlap the BIOS-mapped
MMCONFIG region. In such a situation, where the bus has passed
the MMCONFIG test, the MMCONFIG region can get doubly mapped by
bus-sizing code, causing the system to hang.
The remedy proposed by Loic and implemented by Ivan is actually
quite elegant, in that it addresses all these problems quite
effectively while eliminating a ration of specialized and somewhat
obscure code.
In my humble opinion, Port IO config access is here to stay, having
been defined as an architected mechanism in the PCI 2.1 spec.
This is most especially true for x86.
In other words, for x86, I don't think we need to worry about Port
IO config access ever going away at all.
next prev parent reply other threads:[~2008-01-13 1:37 UTC|newest]
Thread overview: 156+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-25 11:26 [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in Arjan van de Ven
2007-12-27 11:52 ` Jeff Garzik
2007-12-27 14:09 ` Arjan van de Ven
2007-12-27 17:52 ` Linus Torvalds
2008-01-11 19:02 ` Greg KH
2008-01-11 19:09 ` Arjan van de Ven
2008-01-11 19:14 ` Greg KH
2008-01-11 19:28 ` Matthew Wilcox
2008-01-11 19:40 ` Arjan van de Ven
2008-01-11 19:45 ` Greg KH
2008-01-11 19:49 ` Matthew Wilcox
2008-01-11 19:58 ` Linus Torvalds
2008-01-11 20:17 ` Matthew Wilcox
2008-01-11 20:27 ` Linus Torvalds
2008-01-11 20:42 ` Matthew Wilcox
2008-01-11 21:12 ` Linus Torvalds
2008-01-11 21:17 ` Matthew Wilcox
2008-01-11 21:28 ` Linus Torvalds
2008-01-11 21:38 ` Matthew Wilcox
2008-01-11 23:58 ` Ivan Kokshaysky
2008-01-12 0:17 ` Jesse Barnes
2008-01-12 0:26 ` Greg KH
2008-01-12 14:40 ` Ivan Kokshaysky
2008-01-12 15:46 ` Arjan van de Ven
2008-01-12 16:23 ` Ivan Kokshaysky
2008-01-12 17:45 ` Arjan van de Ven
2008-01-12 18:17 ` Matthew Wilcox
2008-01-12 21:49 ` Ivan Kokshaysky
2008-01-12 23:01 ` Arjan van de Ven
2008-01-13 0:12 ` Tony Camuso
2008-01-13 0:40 ` Arjan van de Ven
2008-01-13 1:36 ` Tony Camuso [this message]
2008-01-13 4:42 ` Arjan van de Ven
2008-01-13 4:47 ` Matthew Wilcox
2008-01-13 6:43 ` Jeff Garzik
2008-01-13 12:43 ` Tony Camuso
2008-01-13 17:03 ` Arjan van de Ven
2008-01-13 21:28 ` Tony Camuso
2008-01-14 0:54 ` Alan Cox
2008-01-14 1:33 ` Arjan van de Ven
2008-01-14 3:29 ` Tony Camuso
2008-01-14 5:05 ` Arjan van de Ven
2008-01-14 13:01 ` Tony Camuso
2008-01-14 14:46 ` Arjan van de Ven
2008-01-14 15:23 ` Tony Camuso
2008-01-14 16:01 ` Arjan van de Ven
2008-01-14 16:08 ` Tony Camuso
2008-01-14 9:11 ` Alan Cox
2008-01-14 5:20 ` Linus Torvalds
2008-01-13 18:23 ` Loic Prylli
2008-01-13 18:41 ` Arjan van de Ven
2008-01-13 20:43 ` Matthew Wilcox
2008-01-13 21:18 ` Loic Prylli
2008-01-13 20:51 ` Loic Prylli
2008-01-13 7:08 ` Benjamin Herrenschmidt
2008-01-13 7:24 ` Matthew Wilcox
2008-01-13 7:58 ` Matthew Wilcox
2008-01-13 17:01 ` Arjan van de Ven
2008-01-14 22:52 ` Matthew Wilcox
2008-01-14 23:04 ` Adrian Bunk
2008-01-15 16:00 ` Loic Prylli
2008-01-15 17:46 ` Greg KH
2008-01-15 17:56 ` Matthew Wilcox
2008-01-15 19:27 ` Tony Camuso
2008-01-15 19:38 ` Linus Torvalds
2008-01-15 19:40 ` Matthew Wilcox
2008-01-15 22:12 ` Loic Prylli
2008-01-19 16:58 ` Grant Grundler
2008-01-28 18:32 ` Tony Camuso
2008-01-28 20:44 ` Greg KH
2008-01-28 22:31 ` Matthew Wilcox
2008-01-28 22:53 ` Greg KH
2008-01-29 2:56 ` Matthew Wilcox
2008-01-29 2:57 ` PCI x86: always use conf1 to access config space below 256 bytes Matthew Wilcox
2008-01-29 13:21 ` Greg KH
2008-01-29 23:43 ` Matthew Wilcox
2008-01-30 0:04 ` Linus Torvalds
2008-01-29 3:03 ` [PATCH] Change pci_raw_ops to pci_raw_read/write Matthew Wilcox
2008-02-03 7:30 ` Yinghai Lu
2008-02-07 15:54 ` Tony Camuso
2008-02-07 16:28 ` Arjan van de Ven
2008-02-07 16:36 ` Tony Camuso
2008-02-08 2:28 ` Grant Grundler
2008-02-09 12:41 ` Matthew Wilcox
2008-02-10 6:25 ` Yinghai Lu
2008-02-10 7:21 ` Greg KH
2008-02-10 14:51 ` Matthew Wilcox
2008-02-10 19:13 ` Grant Grundler
2008-02-10 19:37 ` Matthew Wilcox
2008-02-10 20:16 ` Yinghai Lu
2008-02-10 20:19 ` Matthew Wilcox
2008-02-10 20:25 ` Yinghai Lu
2008-02-10 20:32 ` Matthew Wilcox
2008-02-10 20:47 ` Yinghai Lu
2008-02-10 20:24 ` Linus Torvalds
2008-02-10 20:45 ` Matthew Wilcox
2008-02-10 23:02 ` raw_pci_read in quirk_intel_irqbalance Matthew Wilcox
2008-02-11 5:04 ` Matthew Wilcox
2008-02-11 7:49 ` Grant Grundler
2008-02-11 16:15 ` Matthew Wilcox
2008-02-11 17:18 ` Linus Torvalds
2008-02-11 19:38 ` Grant Grundler
2008-02-11 1:49 ` [PATCH] Change pci_raw_ops to pci_raw_read/write Yinghai Lu
2008-02-11 2:53 ` Robert Hancock
2008-02-11 5:59 ` Yinghai Lu
2008-02-11 22:10 ` Andrew Morton
2008-02-11 22:38 ` Ingo Molnar
2008-01-29 3:05 ` [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in Arjan van de Ven
2008-01-29 3:18 ` Matthew Wilcox
2008-01-29 13:19 ` Greg KH
2008-01-29 14:15 ` Tony Camuso
2008-01-29 14:47 ` Arjan van de Ven
2008-01-29 15:15 ` Tony Camuso
2008-01-29 15:29 ` Arjan van de Ven
2008-01-29 16:26 ` Tony Camuso
2008-01-29 23:57 ` Matthew Wilcox
2008-01-30 2:30 ` Tony Camuso
2008-01-30 3:45 ` Matthew Wilcox
2008-01-30 15:15 ` Ivan Kokshaysky
2008-01-30 15:42 ` Arjan van de Ven
2008-01-30 20:14 ` Ivan Kokshaysky
2008-01-31 5:51 ` Jesse Barnes
2008-01-11 19:54 ` Arjan van de Ven
2008-01-11 20:55 ` Greg KH
2008-01-15 12:58 ` Øyvind Vågen Jægtnes
[not found] <fa.m7tRTz/ymu3iMyLTO2aF1Tvaw24@ifi.uio.no>
[not found] ` <fa.XrRLIuL4juNAXXaMPF3iY8FyWW8@ifi.uio.no>
[not found] ` <fa.gv3MUHxQvd7EaG/0hhC9IzBvIlA@ifi.uio.no>
2007-12-27 17:59 ` Robert Hancock
2007-12-27 19:47 ` Arjan van de Ven
[not found] ` <fa.H0fcNl3b6xVBwzWUgT72M4K6KOU@ifi.uio.no>
2007-12-27 18:15 ` Robert Hancock
2007-12-27 18:30 ` Kai Ruhnau
2007-12-27 18:58 ` Linus Torvalds
2007-12-27 21:10 ` Loic Prylli
2007-12-27 21:21 ` Matthew Wilcox
2007-12-27 21:37 ` Linus Torvalds
2007-12-27 21:46 ` Linus Torvalds
2007-12-27 22:18 ` Kai Ruhnau
2007-12-28 4:27 ` Daniel Barkalow
2007-12-28 5:32 ` Linus Torvalds
2007-12-28 6:07 ` Daniel Barkalow
2007-12-28 10:34 ` Ivan Kokshaysky
2007-12-28 16:14 ` Arjan van de Ven
2007-12-28 16:38 ` Ivan Kokshaysky
2007-12-28 17:40 ` Loic Prylli
2007-12-28 21:12 ` Ivan Kokshaysky
2008-01-13 6:01 ` Matthew Wilcox
2008-01-13 7:19 ` Loic Prylli
2007-12-28 5:31 ` Benjamin Herrenschmidt
2007-12-27 21:59 ` Kai Ruhnau
2007-12-28 5:27 ` Benjamin Herrenschmidt
2007-12-28 5:29 ` Benjamin Herrenschmidt
2007-12-28 5:37 ` Linus Torvalds
2007-12-28 6:06 ` Benjamin Herrenschmidt
2007-12-28 19:14 ` Loic Prylli
2007-12-28 20:42 ` Benjamin Herrenschmidt
2007-12-28 0:18 ` Robert Hancock
[not found] <fa.2KorSXroIUtdRjFJWJwy49QuIYk@ifi.uio.no>
[not found] ` <fa.KgDY4hzBogAL+o607R+LHzW+HTc@ifi.uio.no>
[not found] ` <fa.xzH/eH5b6vCHpOD31Cq2nyq6z/k@ifi.uio.no>
[not found] ` <fa.EPUIDYIoxtDNcRrL9p3fAkr80Lo@ifi.uio.no>
[not found] ` <fa.uPoC9dcdekzy7g8QYFyuwelukiQ@ifi.uio.no>
[not found] ` <fa.O9WUKjAu+MfGg712w8Y4HkQ7GIo@ifi.uio.no>
2008-01-13 1:56 ` Robert Hancock
[not found] ` <fa.y9bLGEm23C6rL/wz7kMpKYF67oM@ifi.uio.no>
[not found] ` <fa.S+otiE5kNySVMlhUagdf/n9GRIc@ifi.uio.no>
[not found] ` <fa.OH5C/OjPYJXn8kSOHV/09piVz0E@ifi.uio.no>
[not found] ` <fa.jj0GkdAagaR3CLapBSdT1psD3Ps@ifi.uio.no>
[not found] ` <fa.EgRiN/duILxBcenHk7dQyC+rldw@ifi.uio.no>
2008-01-14 23:59 ` Robert Hancock
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=47896B3B.2000108@redhat.com \
--to=tcamuso@redhat.com \
--cc=Nagananda.Chumbalkar@hp.com \
--cc=Patrick.Schoeller@hp.com \
--cc=arjan@infradead.org \
--cc=benh@kernel.crashing.org \
--cc=bnagendr@redhat.com \
--cc=greg@kroah.com \
--cc=gregkh@suse.de \
--cc=ink@jurassic.park.msu.ru \
--cc=jeff@garzik.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=loic@myri.com \
--cc=matthew@wil.cx \
--cc=mj@ucw.cz \
--cc=prarit@redhat.com \
--cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.