On Fri, Jul 26, 2013 at 6:57 AM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > On Thu, Jul 25, 2013 at 1:35 PM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: >> On Thu, Jul 25, 2013 at 7:31 AM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: >>> BenH reported that there are assign unassigned resource problems >>> in powerpc. >>> >>> It turns out after >>> | commit 0c5be0cb0edfe3b5c4b62eac68aa2aa15ec681af >>> | Date: Thu Feb 23 19:23:29 2012 -0800 >>> | >>> | PCI: Retry on IORESOURCE_IO type allocations >>> >>> even for root bus that does not have io port range, it will keep retrying >>> to realloc with mmio after mmio allocation work in first try already. >>> >>> Current retry logic is : try with must+optional at first, and if >>> it fails with any ioport or mmio, it will try must then try to extend >>> must with optional. The reassign will put extended mmio or pref mmio >>> in the middle of parent resource range. >>> That will prevent other sibling resources from getting must-have resources >>> or get extended properly. >>> >>> We can check fail type to see if can we need fall back to must-have >>> for it only, that will keep others type to keep resource to have >>> must+optional allocations. >>> >>> Separate three resource type checking if we need to release >>> assigned resource after requested + add_size try. >>> 1. if there is io port assign fail, will release assigned io port. >>> 2. if there is pref mmio assign fail, release assigned pref mmio. >>> if assigned pref mmio's parent is non-pref mmio and there >>> is non-pref mmio assign fail, will release that assigned pref mmio. >>> 3. if there is non-pref mmio assign fail or pref mmio assigned fail, >>> will release assigned non-pref mmio. >>> >>> This will be become more often when we have x86 8 sockets or 32 sockets >>> system, and those systems will have one root bus per socket. >>> They will have some root buses that do not have ioport range or 32bit mmio. >>> >>> -v2: need to remove assigned entries from optional list too. >>> -v3: not just checking ioport related, requested by Bjorn. >>> >>> Reported-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> >> >> I forgot; is there a mailing list archive URL for this report? > > yes, should be > > http://marc.info/?l=linux-pci&m=136941328913610&w=1 > > title is: Resource assignment oddities > > >> >> And did you say this should go to stable for v3.10+? If that's the >> case, this should probably go in my for-linus branch for v3.11 instead >> of waiting for v3.12, right? > > Yes. You are right. > > BenH at last only hope it could backport to v3.10 for the distribution. OK, I applied this to for-linus and marked it for stable. Please take a look and see if it makes sense, especially the changelog: http://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/commit/?h=for-linus&id=aa914f5 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html