Re: [PATCH 10/11] pciehp: add support for bridge resource reallocation

Yinghai Lu
2010-01-17T22:37:16Z

On 01/17/2010 09:34 AM, Jesse Barnes wrote:
> On Sat, 16 Jan 2010 16:14:31 -0700
> Bjorn Helgaas <bjorn.helgaas@hp.com> wrote:
>
>> On Sat, 2010-01-16 at 01:34 -0800, Yinghai Lu wrote:
>>> On 01/15/2010 08:59 PM, Alex Chiang wrote:
>>>> * Yinghai Lu <yinghai@kernel.org>:
>>>>> From: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
>>>>>
>>>>> With this patch, pciehp driver try to clear PCI bridge resources
>>>>> to parent bridge (root port or switch downstream port) of the
>>>>> slot
>>>>>
>>>>> so we can shrink pci bridge resource for those port
>>>>>
>>>>> This feature is enabled when 'pciehp_realloc' option is
>>>>> specified.
>>>>>
>>>>> -v2: make it could be appiled after Yinghai patchset that touch
>>>>> pci bridge resource also remove poweron check, because
>>>>> pci_bridge_release_res will check child at first
>>>>
>>>> Same comment as my earlier patch. Why not just make this the
>>>> default behavior, instead of introducing yet another command line
>>>> parameter for users to guess at?
>>>
>>> it will break Eric's setup/
>>
>> I think this is a clue that we don't understand the problem well
>> enough yet.
>>
>> I'm opposed to adding kernel parameters for this sort of thing. It is
>> unreasonable to expect users to figure out whether they need to use
>> this parameter or not.
>>
>> Special-case switches like this make it much harder to maintain the
>> code in the future.
>
> Agreed. Yinghai, what's wrong in the new reassignment code that
> causes Eric's setup to break? Can we just fix that instead and enable
> reallocation by default?

no.

Eric's setup is:
hot plug one addon card into one hotplug slots and new addon cards have more hot plug slots.

SLOTA will have SLOT B, SLOT C, and SLOT D as children. and not devices in SLOTB/C/D at first.

with the pciehp_realloc is specified, the SLOTA will not get any device assigned, and later
if put devices in SLOTB/SLOTC/SLOTD, will not get resource for those devices.
and we can not go above to update SLOT A, because: some devices on SLOTB could already have driver loaded.

if you don't like pciehp_realloc at this point, please only apply 1-8 and 11.

Thanks

Yinghai Lu