From patchwork Fri Nov 9 16:56:56 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: SR-IOV problem with Intel 82599EB (not enough MMIO resources for SR-IOV) Date: Fri, 09 Nov 2012 06:56:56 -0000 From: Yinghai Lu X-Patchwork-Id: 198134 Message-Id: To: Bjorn Helgaas Cc: Jason Gao , "Rose, Gregory V" , "Kirsher, Jeffrey T" , linux-kernel , netdev , kvm , "e1000-devel@lists.sourceforge.net" , linux-pci@vger.kernel.org On Fri, Nov 9, 2012 at 7:26 AM, Bjorn Helgaas wrote: > [+ linux-pci, Yinghai] > > On Thu, Nov 8, 2012 at 8:59 PM, Jason Gao wrote: >>> The BIOS in your machine doesn't support SR-IOV. You'll need to ask the manufacturer for a BIOS upgrade, if in fact one is available. Sometimes they're not. >> >> very thanks Greg,my server Dell R710 with latest BIOS version and >> option for SR-IOV(SR-IOV Global Enable->Enabled) opened,I'm confused >> that Does R710 provide full support for SR-IOV, kernel or ixgbe >> driver's bug? but I'm not sure where the problem lies,anyone has any >> experience about this? . > > Linux normally uses the resource assignments done by the BIOS, but it > is possible for the kernel to reassign those. We don't have good > automatic support for that yet, but on a recent upstream kernel, you > can try "pci=realloc". I doubt this option is in CentOS 6.3, though. > > If an upstream kernel with "pci=realloc" still doesn't work, please > post the entire dmesg log. Even better, upstream kernel will enable realloc automatically if it finds some SRIOV BAR is not assigned. related logic is in pci_realloc_detect(). BTW, we may need another patch about realloc. http://git.kernel.org/?p=linux/kernel/git/yinghai/linux-yinghai.git;a=patch;h=afb9975bddd92b17c2f9859676ce521e2e014997 >From afb9975bddd92b17c2f9859676ce521e2e014997 Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Wed, 3 Oct 2012 19:15:57 -0700 Subject: [PATCH] PCI: Add root bus children dev's res to fail list We can stop trying according to try number now and do not need to use root_bus checking as stop sign anymore. In extreme case we could need to reallocate resource for device just under root bus. Signed-off-by: Yinghai Lu --- drivers/pci/setup-bus.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) * be enabled later, don't add it to the list diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index 1e808ca..9e625d84 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -283,7 +283,7 @@ static void assign_requested_resources_sorted(struct list_head *head, idx = res - &dev_res->dev->resource[0]; if (resource_size(res) && pci_assign_resource(dev_res->dev, idx)) { - if (fail_head && !pci_is_root_bus(dev_res->dev->bus)) { + if (fail_head) { /* * if the failed res is for ROM BAR, and it will