On Tue, 2019-06-25 at 13:05 +0300, Mika Westerberg wrote: > > We only every distribute resources when using > > pci_assign_unassigned_bridge_resources which we only use some cases, > > and it's completely non obvious why we would use it there and not in > > other places. > > We added it only for native PCIe hotplug path with the assumption that > the boot firmware takes care of the initial resource allocation. I don't > see any particular reason why it could not be called for other paths as > well, though. Ok, we need to look into this for all the platforms who just reassign everything in Linux (ie, ignore whatever the boot firmware did, if it did anything). I feel like all these platforms today will have a hard time getting anything useful out of hotplug with our default "2M" add to the hotplug bridges :) > > We also don't distribute during the initial root survey meaning afaik > > that we get toast for any hotplug bridge that has stuff already there > > at boot. > > The boot firmware obviously needs to follow the same logic. AFAICT > recent PCs and Macs using native PCIe hotplug handle it. What's your experience in that area ? How (well) do they handle it in the boot firmware ? at least on arm64, boot firmwares are rather catastrophic when it comes to PCI, and on other embedded devices they are basically non-existent. > > Also, distributing the "available" space means we leave nothing for > > potential SR-IOV siblings... have we ended up bloting the very PCIe- > > centric assumption that it's "unlikely" that a hotplug bridge has an > > SR-IOV sibling ? > > Looking at the code, I'm not sure we reserved any additional resource > space for the SR-IOV even before pci_bus_distribute_available_resources() > was introduced. We do reserve extra bus numbers for SR-IOV in > pci_scan_child_bus_extend() so maybe we can add something similar to > resource allocation path. Ok. I'll look more. I think we do somewhat cater for SR-IOV in in the bridge sizing code actually. It's a bit obscure... I also need to look a bit more closely at what happens with Thunderbolt. Thanks ! Cheers Ben.