Re: [PATCH 1/1] PCI: ignore failure to preallocate minimal resources to hotplug bridges

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux