From: Gary Hade <garyhade@us.ibm.com>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>,
Matthew Garrett <mjg59@srcf.ucam.org>,
Tony Luck <tony.luck@intel.com>,
linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org,
Peter Haight <peterh@sapros.com>, Gary Hade <garyhade@us.ibm.com>,
linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
linux-am33-list@redhat.com, Yinghai Lu <yinghai@kernel.org>,
Ingo Molnar <mingo@elte.hu>,
Linus Torvalds <torvalds@linux-foundation.org>,
Larry Finger <Larry.Finger@lwfinger.net>
Subject: Re: [PATCH v4 0/5] PCI: try "pci=use_crs" again
Date: Thu, 18 Feb 2010 16:58:36 -0800 [thread overview]
Message-ID: <20100219005836.GA26564@us.ibm.com> (raw)
In-Reply-To: <20100217201654.4013.70201.stgit@bob.kio>
On Wed, Feb 17, 2010 at 01:19:47PM -0700, Bjorn Helgaas wrote:
> Historically, Linux has assumed a single PCI host bridge, with that bridge
> claiming all the address space left after RAM and legacy devices are taken out.
>
> If the system contains multiple host bridges, we can no longer operate under
> that assumption. We have to know what parts of the address space are claimed
> by each bridge so that when we assign resources to a PCI device, we take them
> from a range claimed by the upstream host bridge.
>
> On x86 and ia64, we use ACPI to enumerate all the PCI host bridges in the
> system, and part of the host bridge description is the "_CRS" (current resource
> settings" property, which lists the address space used by the bridge. On x86,
> we currently ignore most of the _CRS information. This patch series changes
> this, so we will use _CRS to learn about the host bridge windows.
>
> Since most x86 machines with multiple host bridges are relatively new, this
> series only turns this on for machines with BIOS dates of 2008 or newer.
I just tried your changes on an IBM x3850 with a 12/01/2008 BIOS
date. After booting without pci=use_crs I observed the expected
PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
message. I then loaded 'acpiphp' and was able to successfully
hot-remove and hot-add PCI-X and PCIe cards. Without pci=use_crs
a hot-add operation would have previously caused a machine check.
Tested-by: Gary Hade <garyhade@us.ibm.com>
Gary
--
Gary Hade
System x Enablement
IBM Linux Technology Center
503-578-4503 IBM T/L: 775-4503
garyhade@us.ibm.com
http://www.ibm.com/linux/ltc
WARNING: multiple messages have this Message-ID (diff)
From: Gary Hade <garyhade@us.ibm.com>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
Tony Luck <tony.luck@intel.com>,
linuxppc-dev@ozlabs.org, linux-pci@vger.kernel.org,
Peter Haight <peterh@sapros.com>, Gary Hade <garyhade@us.ibm.com>,
linux-kernel@vger.kernel.org,
Jesse Barnes <jbarnes@virtuousgeek.org>,
linux-acpi@vger.kernel.org, linux-am33-list@redhat.com,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>, Yinghai Lu <yinghai@kernel.org>,
Larry Finger <Larry.Finger@lwfinger.net>
Subject: Re: [PATCH v4 0/5] PCI: try "pci=use_crs" again
Date: Thu, 18 Feb 2010 16:58:36 -0800 [thread overview]
Message-ID: <20100219005836.GA26564@us.ibm.com> (raw)
In-Reply-To: <20100217201654.4013.70201.stgit@bob.kio>
On Wed, Feb 17, 2010 at 01:19:47PM -0700, Bjorn Helgaas wrote:
> Historically, Linux has assumed a single PCI host bridge, with that bridge
> claiming all the address space left after RAM and legacy devices are taken out.
>
> If the system contains multiple host bridges, we can no longer operate under
> that assumption. We have to know what parts of the address space are claimed
> by each bridge so that when we assign resources to a PCI device, we take them
> from a range claimed by the upstream host bridge.
>
> On x86 and ia64, we use ACPI to enumerate all the PCI host bridges in the
> system, and part of the host bridge description is the "_CRS" (current resource
> settings" property, which lists the address space used by the bridge. On x86,
> we currently ignore most of the _CRS information. This patch series changes
> this, so we will use _CRS to learn about the host bridge windows.
>
> Since most x86 machines with multiple host bridges are relatively new, this
> series only turns this on for machines with BIOS dates of 2008 or newer.
I just tried your changes on an IBM x3850 with a 12/01/2008 BIOS
date. After booting without pci=use_crs I observed the expected
PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
message. I then loaded 'acpiphp' and was able to successfully
hot-remove and hot-add PCI-X and PCIe cards. Without pci=use_crs
a hot-add operation would have previously caused a machine check.
Tested-by: Gary Hade <garyhade@us.ibm.com>
Gary
--
Gary Hade
System x Enablement
IBM Linux Technology Center
503-578-4503 IBM T/L: 775-4503
garyhade@us.ibm.com
http://www.ibm.com/linux/ltc
next prev parent reply other threads:[~2010-02-19 0:58 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-17 20:19 [PATCH v4 0/5] PCI: try "pci=use_crs" again Bjorn Helgaas
2010-02-17 20:19 ` Bjorn Helgaas
2010-02-17 20:19 ` [PATCH v4 1/5] PCI: split up pci_read_bridge_bases() Bjorn Helgaas
2010-02-17 20:19 ` Bjorn Helgaas
2010-02-23 0:23 ` Jesse Barnes
2010-02-23 0:23 ` Jesse Barnes
2010-02-23 1:13 ` Jesse Barnes
2010-02-23 1:13 ` Jesse Barnes
2010-02-17 20:19 ` [PATCH v4 2/5] PCI: read bridge windows before filling in subtractive decode resources Bjorn Helgaas
2010-02-17 20:19 ` Bjorn Helgaas
2010-02-17 20:20 ` [PATCH v4 3/5] PCI: add pci_bus_for_each_resource(), remove direct bus->resource[] refs Bjorn Helgaas
2010-02-17 20:20 ` Bjorn Helgaas
2010-02-17 20:20 ` [PATCH v4 4/5] PCI: augment bus resource table with a list Bjorn Helgaas
2010-02-17 20:20 ` Bjorn Helgaas
2010-02-23 16:08 ` Bjorn Helgaas
2010-02-23 16:08 ` Bjorn Helgaas
2010-02-17 20:20 ` [PATCH v4 5/5] x86/PCI: use host bridge _CRS info by default on 2008 and newer machines Bjorn Helgaas
2010-02-17 20:20 ` Bjorn Helgaas
2010-02-19 0:58 ` Gary Hade [this message]
2010-02-19 0:58 ` [PATCH v4 0/5] PCI: try "pci=use_crs" again Gary Hade
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=20100219005836.GA26564@us.ibm.com \
--to=garyhade@us.ibm.com \
--cc=Larry.Finger@lwfinger.net \
--cc=bjorn.helgaas@hp.com \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-am33-list@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mingo@elte.hu \
--cc=mjg59@srcf.ucam.org \
--cc=peterh@sapros.com \
--cc=tony.luck@intel.com \
--cc=torvalds@linux-foundation.org \
--cc=yinghai@kernel.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.