Re: [PATCH] Align PCI memory regions to page size (4K) - Fix

Grant Grundler
2007-11-14T21:56:07Z

On Wed, Nov 14, 2007 at 07:16:18PM +1100, Benjamin Herrenschmidt wrote:
> > 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.
>
> No, that can't be done there because that would mean the guest OS has
> the ability to reassign resources of PCI devices which is really not
> something you want. You really want the host OS to do that -before- it
> makes the device visible to the guest imho.

Agreed. I didn't explain well enough. The assignment doesn't need
to happen until that point. My assumption was the host OS (or Hypervisor)
would already know what it's supposed to be before then and just
set it up at that point.

>
> > 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.
>
> I'm not talking about a dummy resource/driver in the guest OS, but
> rather, in the host. When a PCI device, that is visible to the host, is
> to be "reflected" into a guest, it makes sense to have a proxy driver
> take over in the host from a resource management point of view, thus
> making this device effectively "used" and thus preventing another
> process or partition from trying to bind to it. That proxy driver can
> then be responsible for doing the appropriate resource tweaking before
> making the device effectively visible to the guest. It might make sense
> to provide a helper in the PCI layer to make that easier tho.

Ah ok.. I was assuming there was only a "Hypervisor" and all the "guests"
were equal. If one OS instance is "Host" and can see the device before hand,
then yeah, it makes sense to "hide" the device from the normal device drivers.

grant
"Host OS
>
> Ben.
>