On Wed, Nov 14, 2007 at 08:17:33AM +1100, Benjamin Herrenschmidt wrote: ... > Though he's trying to fix a real issue, his patch is not the right > approach imho. > > A better approach would be to have a mechanism to be triggered by the > hypervisor administration tools that will attempt to reassign -that- > specific device if it happens to share pages with another. > > The remapping would thus only happen for that single device, after it's > been put in control of the hypervisor (no host driver is bound, maybe > just an HV specific "bridging" driver is), and only when the action of > assigning it to the partition is performed, so that if the machine > crashes as a result, at least you know why :-) > > So something like your hypervisor binds a special driver to a device > that is to be reflected to a partition, at which point we are sure no > other driver is using it, then that driver can call something in the pci > layer that attempts to re-assign the device resources to keep it in a > separate page.
We already have that "something": pci_enable_device(). The guest OS "Arch" code can then do the reassignment. See "3.1 Enable the PCI device" in Documentation/pci.txt. > A patch implementing such a helper, and maybe reserving the rest of the > MMIO page via some dummy resource to make sure nobody else gets in, that > would make more sense. The Hypervisor could be responsible for making the right devices visible to the appropriate partitions/guests by intercepting the PCI bus walk and/or hotplug support. I don't think you should need any dummy resource/drivers in the guest OS. hth, grant - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/