[openib-general] [discuss] Re: 2.6.19-rc4: known unfixed regressions (v3)

ebiederm at xmission.com ebiederm at xmission.com
Tue Nov 7 09:49:36 PST 2006


Matthew Wilcox <matthew at wil.cx> writes:

> On Wed, Nov 08, 2006 at 12:57:03AM +0800, Jeff Chua wrote:
>> 2) this fails ...
>> 
>> e0000000-efffffff : 0000:00:02.0
>> f0000000-ffffffff : PCI MMCONFIG 0
>>    fed00000-fed003ff : HPET 0
>
> Heh, no kidding ...
>
>                 num_buses = pci_mmcfg_config[i].end_bus_number -
>                     pci_mmcfg_config[i].start_bus_number + 1;
>                 res->start = pci_mmcfg_config[i].base_address;
>                 res->end = res->start + (num_buses << 20) - 1;
>                 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
>                 insert_resource(&iomem_resource, res);
>
> So if we have 256 busses assigned, then we request 256MB and, well,
> there's no room for anyone else.  This code was added by Andi in commit
> de09bddb9d6f96785be470c832b881e6d72d589f
>
> Hopefully he'll have a good idea how to restrict it.  Given your "working"
> resource map, it seems like it should be limited to 16MB (and thus 16 busses).
> But how to figure that out?

Sounds like you need to find the current maximum bus number in use.
A little more sophisticated would look at where the next reserved region begins.

ACPI might have some of that information as well.  Although I'm not certain
where we you are coming from.  

If you don't have to worry about device hotplug getting the current maximum bus
number should be all you need.

Eric





More information about the general mailing list