From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Ram Pai <linuxram@us.ibm.com>,
Dominik Brodowski <linux@dominikbrodowski.net>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 9/9] PCI: only enable pci realloc when SRIOV bar is not assigned
Date: Fri, 10 Feb 2012 13:00:29 -0800 [thread overview]
Message-ID: <20120210130029.44d2a823@jbarnes-desktop> (raw)
In-Reply-To: <1328424908-6385-10-git-send-email-yinghai@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 2520 bytes --]
On Sat, 4 Feb 2012 22:55:08 -0800
Yinghai Lu <yinghai@kernel.org> wrote:
> If bios does not assign those BAR or wrong address, then kernel will
> try to do pci realloc.
>
> in that case, user still can use pci=realloc=off to override it.
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> ---
> drivers/pci/setup-bus.c | 28 ++++++++++++++++++++++++++++
> 1 files changed, 28 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
> index 9526038..520f256 100644
> --- a/drivers/pci/setup-bus.c
> +++ b/drivers/pci/setup-bus.c
> @@ -1293,6 +1293,31 @@ static bool __init pci_realloc_enabled(void)
> return pci_realloc_enable >= enable_yes_user;
> }
>
> +static void __init pci_realloc_detect(void)
> +{
> + struct pci_dev *dev = NULL;
> +
> + if (pci_realloc_enable != enable_not_set)
> + return;
> +
> +#ifdef CONFIG_PCI_IOV
> + for_each_pci_dev(dev) {
> + int i;
> +
> + for (i = PCI_IOV_RESOURCES; i <= PCI_IOV_RESOURCE_END; i++) {
> + struct resource *r = &dev->resource[i];
> +
> + /* Not assigned, or rejected by kernel */
> + if (r->flags && !r->start) {
> + pci_realloc_enable = enable_yes_detected;
> +
> + return;
> + }
> + }
> + }
> +#endif
> +}
> +
> /*
> * first try will not touch pci bridge res
> * second and later try will clear small leaf bridge res
> @@ -1314,6 +1339,7 @@ pci_assign_unassigned_resources(void)
> int pci_try_num = 1;
>
> /* don't realloc if asked to do so */
> + pci_realloc_detect();
> if (pci_realloc_enabled()) {
> int max_depth = pci_get_max_depth();
>
> @@ -1348,6 +1374,8 @@ again:
> if (tried_times >= pci_try_num) {
> if (pci_realloc_enable == enable_not_set)
> printk(KERN_INFO "Some pci devices resources are not assigned, please try to boot with pci=realloc\n");
> + else if (pci_realloc_enable == enable_yes_detected)
> + printk(KERN_INFO "Automatically enabled pci realloc, if you have problem, please try to boot with pci=realloc=off\n");
>
> free_list(&fail_head);
> goto enable_and_dump;
Not sure I like this one either. Distros will want to enable IOV by
default, but in most configs users still won't use it, and many BIOSes
won't bother to allocate IOV space. So defaulting to trying to do so
will likely cause a lot of unnecessary re-allocation.
So distro guidance would be appreciated here for the default behavior.
--
Jesse Barnes, Intel Open Source Technology Center
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2012-02-10 21:01 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-05 6:54 [PATCH -v2 0/9] PCI : bridge resource reallocation patchset -- followup Yinghai Lu
2012-02-05 6:55 ` [PATCH 1/9] pci: Fix pci cardbus removal Yinghai Lu
2012-02-10 20:20 ` Jesse Barnes
2012-02-05 6:55 ` [PATCH 2/9] PCI: Fix /sys warning when sriov enabled card is hot removed Yinghai Lu
2012-02-10 20:39 ` Jesse Barnes
2012-02-05 6:55 ` [PATCH 3/9] PCI: Disable cardbus bridge MEM1 pref CTL Yinghai Lu
2012-02-10 20:46 ` Jesse Barnes
2012-02-10 20:54 ` Yinghai Lu
2012-02-10 22:11 ` Bjorn Helgaas
2012-02-05 6:55 ` [PATCH 4/9] PCI: Fix cardbus bridge resources as optional size handling Yinghai Lu
2012-02-08 4:35 ` Ram Pai
2012-02-08 4:48 ` Yinghai Lu
2012-02-08 5:01 ` Ram Pai
2012-02-08 6:11 ` Yinghai Lu
2012-02-10 20:52 ` Jesse Barnes
2012-02-10 20:56 ` Yinghai Lu
2012-02-05 6:55 ` [PATCH 5/9] PCI: Skip reset cardbus assigned resource during pci bus rescan Yinghai Lu
2012-02-05 6:55 ` [PATCH 6/9] PCI: Retry on type IORESOURCE_IO allocation Yinghai Lu
2012-02-05 6:55 ` [PATCH 7/9] PCI: Make pci bridge reallocating enabled/disabled Yinghai Lu
2012-02-10 20:56 ` Jesse Barnes
2012-02-05 6:55 ` [PATCH 8/9] PCI: print out suggestion about using pci=realloc Yinghai Lu
2012-02-10 20:59 ` Jesse Barnes
2012-02-05 6:55 ` [PATCH 9/9] PCI: only enable pci realloc when SRIOV bar is not assigned Yinghai Lu
2012-02-10 21:00 ` Jesse Barnes [this message]
2012-02-10 21:23 ` Yinghai Lu
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=20120210130029.44d2a823@jbarnes-desktop \
--to=jbarnes@virtuousgeek.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@dominikbrodowski.net \
--cc=linuxram@us.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).