I'm glad to hear this. In fact, I'm developing for BIOS area. This feature is very useful when your system have one or more PCI/PCIe hotplug slot. Generally, BIOS reserve amount of resource for empty hotplug slot by default, but it is not always enough for all device. We have many kind of Express Modules which consume different amount of resouce, generally we reserve a small number of resouce for this, so, sometime, some Express Modules hotplug without card installed at boot time, it will not useable.
Then, Microsoft say they implement PCI Multi-level Resource Rebanlence in Vista and Server 2008, you can refer
http://www.microsoft.com/whdc/archive/multilevel-rebal.mspx
http://www.microsoft.com/whdc/connect/pci/PCI-rsc.mspx
They use a method of ACPI to tell OS that you can ignore the resource allocation of PCI devices below the bridge. I think this is more useful than specify the BUS number to ignore resouce allocation, because the BUS number often change due to some need by BIOS or new PCI/PCIe device added in system. Users generally do not know the system architecture and can not specify the BUS number of the root bridge, while if you specify the _DSM method like MS to the root bridge of hotplug slot, it is a much easier way to archive for BIOS writers.
PS:
Since my mail address was blocked by the maillist, this mail may not reach people who only in linux kernel maillist.
Thanks.
Jensen
On Sat, Nov 8, 2008 at 1:00 PM, Yu Zhao <yu.zhao@xxxxxxxxxxxx> wrote:
Greg KH wrote:The generic PCI core can do this but this feature is kind of disabled by low level PCI code in x86. The low level code tries to reserve resource according to configuration from BIOS. If the BIOS is wrong, the allocation would fail and the generic PCI core couldn't repair it because the bridge resources may have been allocated by the PCI low level and the PCI core can't expand them to find enough resource for the subordinates.
On Fri, Nov 07, 2008 at 04:35:47PM +0800, Zhao, Yu wrote:
Greg KH wrote:
On Fri, Nov 07, 2008 at 04:17:02PM +0800, Zhao, Yu wrote:I guess at least one thing would work if people don't want to boot twice: give the bus number 0 as rebalance starting point, then all system resources would be reshuffled :-)
As you have proposed it, the boot option will not work at all, so IWell, to do it "correctly" you are going to have to tell the driver toNo, it's not part of the PCI IOV spec.
shut itself down, and reinitialize itself.
Turns out, that doesn't really work for disk and network devices without
dropping the connection (well, network devices should be fine probably).
So you just can't do this, sorry. That's why the BIOS handles all of
these issues in a PCI hotplug system.
How does the hardware people think we are going to handle this in the
OS? It's not something that any operating system can do, is it part of
the IOV PCI spec somewhere?
I just want the IOV (and whole PCI subsystem) have more flexibility on various BIOSes. So can we reconsider about resource rebalance as boot option, or should we forget about this idea?
think we need to forget about it. Especially if it is not really
needed.
Hm, but don't we do that today with our basic resource reservation logic
at boot time? What would be different about this kind of proposal?
The proposal is to disable x86 PCI low level to allocation resources according to BIOS so PCI core can fully control the resource allocation. The PCI core takes all resources from BARs it knows into account and configure the resource windows on the bridges according to its own calculation.
Regards,
Yu
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
_______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization