On Fri, Jan 07, 2011 at 02:32:08PM -0800, Jesse Barnes wrote: > On Fri, 22 Oct 2010 10:16:40 -0700 > Ram Pai <linuxram@xxxxxxxxxx> wrote: > > > PCI: ignore failure to preallocate minimal resources to > > hotplug bridges > > > > Linux tries to pre-allocate minimal resources to hotplug > > bridges. This works fine as long as there are enough > > resources to satisfy all other genuine resource > > requirements. However if enough resources are not > > available to satisfy the pre-allocation, the > > resource-allocator reports errors and returns failure. > > > > This patch distinguishes between must-need resources and > > nice-to-have resources. Any failure to allocate > > nice-to-have resources are ignored. > > > > This behavior can be particularly useful to trigger > > automatic reallocation, if the OS discovers genuine > > resource allocation conflicts or genuine unallocated > > BARs caused by not-so-smart allocation behavior of the > > native BIOS. > > > > The motivation for this patch is due a issue reported in > > https://bugzilla.kernel.org/show_bug.cgi?id=15960 > > > > Signed-off-by: Ram Pai <linuxram@xxxxxxxxxx> > > > > Seems like we want a fix like this; did you see Bjorn's comments? > Maybe we can adjust the order of allocation instead? > > What issues do you still have outstanding wrt resource allocation? Do > you still think you need the big "reallocate everything" option? Jesse, Yes I saw Bjorn's comment but then i got pulled into something else and made no progress. Just yesterday I started looking into this and co-incidently see your mail too. I am not sure how to order the allocation given the current organization of the code. The real problem is that the kernel wants to pre-allocate some minimum memory and ioport to hotplug bridges. On a system with just enough resources to satisfy the currently installed devices, the current code organization makes it hard to organize the allocation order such that atleast the must-have requests are satisfied. An ideal solution should first satisfy the must-have requests and if any additional resources are still available then pre-allocate nice-to-have requests. I am thinking of structuring the code the following way. a) note down the must-have requirement as well as the nice-to-way requirement for each pci-resource. b) run through each resource and satisfy the must-have requirement. c) if (b) succeeds, run through each resource and *try* to satisfy the nice-to-way requirement. The other solution is to simply ignore preallocation to hotplug bridges. Please suggest, RP > > Thanks, > -- > Jesse Barnes, Intel Open Source Technology Center -- Ram Pai System X Device-Driver Enablement Lead Linux Technology Center Beaverton OR-97006 503-5783752 t/l 7753752 linuxram@xxxxxxxxxx -- 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