RE: [PATCH v10 1/7] PCI: initialize and release SR-IOV capability

Duyck, Alexander H
2009-03-06T23:31:27Z

Randy Dunlap wrote:
> Matthew Wilcox wrote:
>> On Fri, Feb 20, 2009 at 02:54:42PM +0800, Yu Zhao wrote:
>> PCI MSI can also be disabled at runtime (and Fedora do by default).
>> Since SR-IOV really does require MSI, we need to put in a runtime
>> check to see if pci_msi_enabled() is false.
>>
>> We don't depend on PCIEPORTBUS (a horribly named symbol). Should we?
>> SR-IOV is only supported for PCI Express machines. I'm not sure of
>> the right answer here, but I thought I should raise the question.
>>
>>> + help
>>> + PCI-SIG I/O Virtualization (IOV) Specifications support.
>>> + Single Root IOV: allows the Physical Function driver to enable
>>> + the hardware capability, so the Virtual Function is accessible
>>> + via the PCI Configuration Space using its own Bus, Device and
>>> + Function Numbers. Each Virtual Function also has the PCI Memory
>>> + Space to map the device specific register set.
>
> Too spec. and implementation specific for users.
>
>> I'm not convinced this is the most helpful we could be to the user
>> who's configuring their own kernel. How about something like this?
>> (Randy, I particularly look to you to make my prose less turgid).
>>
>> help
>> IO Virtualisation is a PCI feature supported by some devices
>> z ;) which allows you to create virtual PCI devices and assign
>> them to guest OSes. This option needs to be selected in the host
>> or Dom0 kernel, but does not need to be selected in the guest
>> or DomU kernel. If you don't know whether your hardware supports
>> it, you can check by using lspci to look for the SR-IOV
>> capability.
>>
>> If you have no idea what any of that means, it is safe to
>> answer 'N' here.
>
> That's certainly more readable and user-friendly.
> I don't know what else it needs. Looks good to me.
>
> ~Randy

I'm not sure about this help text because SR-IOV and direct assignment are two very different features, and based on this text I would think that SR-IOV is all you need to direct assign VFs into guests when all it actually does is generate the devices that can then be assigned. We already have questions about if VFs can be used on the host OS and this help text doesn't resolve that and would likely lead to similar questions in the future.

I would recommend keeping things simple and just stating "IO Virtualization is a PCI feature, supported by some devices, which allows the creation of virtual PCI devices that contain a subset of the original device's resources. If you don't know if you hardware supports it, you can check by using lspci to check for the SR-IOV capability".

-Alex