Re: [PATCH] pci hotplug: rescan bridge after device hotplug

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

 



On Wed, May 23, 2012 at 12:08 PM, Michael S. Tsirkin <mst@xxxxxxxxxx> wrote:
> Fundamentally BARs are under guest control.
> So while you are handing out memory for the bridges you would have to
> tiptoe around guest assigned BARs.
>
> Also what happens after reboot? bios currently
> assigns memory to bridges that are present on boot.
> So this makes it even messier as who assigns memory
> depends on whether device is hotplugged.
>
> Cleaner to have guest do it.

assume here  "guest' mean: BIOS + kernel + (acpi dsl code from BIOS).

>
> I think Windows even can even rebalance BARs
> as needed. So this is just a linux bug that needs
> to be fixed.

Now pciehp in Linux will resize the bridge.
but not for acpiphp. reason: acpiphp could handle more complicated case.
does not mean new add card have to been under one bridge existing.

slot just on root bus, you could just add device or bridge in it.
and the bridge could have other hotlpug slots.

in that case, if one of children slot already have card
installed/driver loaded, later
after another card is put in another child slot, we can not simple
resize the bridge in parent slot.
because other child devices is operating...

solution will be
1. add quirks to set is_hotplug_bridge for apciphp....
2. or probe_resource in busn_alloc patchset, that maybe still need to
extend to support alignment.

BTW, I was thinking Linux is the ONLY one that will scratch bridge BAR
if that is big enough for children devices.
Do you have evidence that other os does that?

Yinghai
--
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