From: Bjorn Helgaas <bjorn.helgaas@hp.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Yinghai Lu <yinghai.lu@oracle.com>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
Graham Ramsey <ramsey.graham@ntlworld.com>,
linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
Robert Richter <robert.richter@amd.com>,
Harald Welte <HaraldWelte@viatech.com>,
Joseph Chan <JosephChan@via.com.tw>, Jiri Slaby <jslaby@suse.cz>,
Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>,
Andrew Morton <akpm@linux-foundation.org>,
Dominik Brodowski <linux@dominikbrodowski.net>,
Myron Stowe <myron.stowe@hp.com>
Subject: Re: [PATCH -v2] x86, pci: Handle fallout pci devices with peer root bus
Date: Mon, 14 Jun 2010 19:49:50 -0600 [thread overview]
Message-ID: <201006141949.51674.bjorn.helgaas@hp.com> (raw)
In-Reply-To: <4C169ABC.1090406@zytor.com>
On Monday, June 14, 2010 03:10:20 pm H. Peter Anvin wrote:
> On 06/14/2010 01:20 PM, Bjorn Helgaas wrote:
> >
> > OK, but Graham's system doesn't have anything resembling a PCI-to-PCI
> > bridge leading to bus 80. So while I agree that in an ideal world,
> > HT/PCI host bridges might always look like PCI-to-PCI bridges, it
> > seems this is not the case in practice.
>
> Invisible PCI bridges have been known to occur in pure PCI space, too.
Are you talking about PCI host bridges that don't appear in PCI config
space? I suppose those could be described as "invisible," but since
host bridges aren't architected and their primary interface isn't PCI,
it seems only natural that we'd discover them by a non-PCI mechanism.
They're invisible in PCI terms, but obviously perfectly discoverable
and configurable via ACPI.
If you ask me, it's weird that most x86 chipsets put PCI host bridge
configuration in PCI config space -- it may be convenient in some ways,
but still architecturally strange.
> > Yes, absolutely. My point is that what the HT spec means by "host bridge"
> > is not the same as what the PCI spec and Linux mean by "PCI host bridge".
>
> Actually, they're *exactly* the same thing.
If HT is identical to PCI, I agree "HT host bridge" means the same
as "PCI host bridge" (that's almost too trivial to say :-)).
I guess I'm still dubious that HT is identical to PCI. Since Graham's
box has a single HT change, we know that all his devices are on HT
chain A. If HT is identical to PCI, that chain must be bus 00. Here
are the relevant parts of the box:
00:00.0 Host bridge: VIA K8T890CF Host Bridge
00:00.1 Host bridge: VIA VT3351 Host Bridge
00:00.2 Host bridge: VIA VT3351 Host Bridge
00:00.3 Host bridge: VIA VT3351 Host Bridge
00:00.4 Host bridge: VIA VT3351 Host Bridge
00:00.7 Host bridge: VIA VT3351 Host Bridge
00:02.0 PCI bridge: VIA K8T890 PCI to PCI Bridge [to bus 06]
00:03.0 PCI bridge: VIA K8T890 PCI to PCI Bridge [to bus 05]
00:03.1 PCI bridge: VIA K8T890 PCI to PCI Bridge [to bus 04]
00:03.2 PCI bridge: VIA K8T890 PCI to PCI Bridge [to bus 03]
00:03.3 PCI bridge: VIA K8T890 PCI to PCI Bridge [to bus 02]
00:11.7 Host bridge: VIA VT8251 Ultra VLINK Controller
00:13.0 Host bridge: VIA VT8237A Host Bridge
00:18.0 Host bridge: AMD HyperTransport Technology Configuration
80:01.0 Audio device: VIA VT1708/A High Definition Audio Controller
The question is "how do we get to bus 80?" If everything behind the
AMD HT host bridge is PCI and can be understood solely in terms of
PCI specs, there must be a P2P bridge from bus 00 to bus 80. We
clearly don't have that.
I suppose one could argue that there's a non-standard P2P bridge
from bus 00 to bus 80, but I can't imagine anybody doing that.
An OS would have to have vendor-specific code just to do PCI
resource management, and that really misses the point of PCI.
It seems more likely to me that one of the VIA host bridges leads
to bus 80. PCI host bridges are not architected, so if this bridge
lives on HT chain 00, and we can think of HT as "not quite PCI,"
then it seems natural that the host bridge would be VIA-specific,
just like it was in pre-HT days.
The underlying question for all of this is "what's the future of
amd_bus.c?" or stated another way, "does AMD HT config and standard
PCI P2P bridge config tell us everything we need to know about
address space routing?"
On this machine, I claim the answer is "no," and therefore we must
use ACPI to discover and configure the host bridges, i.e., we have
to turn on "pci=use_crs". We currently turn it on automatically for
machines from 2008 and newer. I think we need to do it for older
machines, too, perhaps even whenever we use ACPI at all.
Bjorn
next prev parent reply other threads:[~2010-06-15 1:49 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-19 15:13 x86/pci Oops with CONFIG_SND_HDA_INTEL Graham Ramsey
2010-05-19 16:44 ` Bjorn Helgaas
2010-05-19 17:16 ` Graham Ramsey
2010-05-19 18:01 ` Yinghai
2010-05-19 22:47 ` Graham Ramsey
2010-05-20 0:03 ` Yinghai
2010-05-20 0:22 ` Jesse Barnes
2010-05-20 0:36 ` Yinghai
2010-05-20 17:08 ` [Bug 16007] " Bjorn Helgaas
2010-06-02 16:58 ` Bjorn Helgaas
2010-06-11 21:49 ` Bjorn Helgaas
2010-06-11 22:08 ` Yinghai Lu
2010-06-11 23:06 ` Yinghai Lu
2010-06-14 14:18 ` Bjorn Helgaas
2010-06-14 17:47 ` [PATCH -v2] x86, pci: Handle fallout pci devices with peer root bus Yinghai Lu
2010-06-14 18:14 ` Jesse Barnes
2010-06-14 18:22 ` Yinghai Lu
2010-06-14 18:34 ` Bjorn Helgaas
2010-06-14 18:39 ` H. Peter Anvin
2010-06-14 18:55 ` Yinghai Lu
2010-06-14 20:00 ` Bjorn Helgaas
2010-06-14 20:08 ` H. Peter Anvin
2010-06-14 20:20 ` Bjorn Helgaas
2010-06-14 21:10 ` H. Peter Anvin
2010-06-15 1:49 ` Bjorn Helgaas [this message]
2010-06-15 1:56 ` H. Peter Anvin
2010-06-15 15:30 ` Bjorn Helgaas
2010-06-14 19:43 ` Bjorn Helgaas
2010-06-21 17:28 ` [Bug 16007] x86/pci Oops with CONFIG_SND_HDA_INTEL Bjorn Helgaas
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=201006141949.51674.bjorn.helgaas@hp.com \
--to=bjorn.helgaas@hp.com \
--cc=HaraldWelte@viatech.com \
--cc=JosephChan@via.com.tw \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=jbarnes@virtuousgeek.org \
--cc=jslaby@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@dominikbrodowski.net \
--cc=mingo@elte.hu \
--cc=myron.stowe@hp.com \
--cc=ramsey.graham@ntlworld.com \
--cc=robert.richter@amd.com \
--cc=seto.hidetoshi@jp.fujitsu.com \
--cc=tglx@linutronix.de \
--cc=yinghai.lu@oracle.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
all inboxes | Powered by JetHome®