Re: [v2] PCI: Add an option to control probing of VFs before enabling SR-IOV

From: Bodong Wang
Date: Wed Apr 12 2017 - 10:37:46 EST


On 4/11/2017 4:12 PM, Bjorn Helgaas wrote:
Hi Bodong,

On Wed, Mar 22, 2017 at 05:53:58PM +0200, bodong@xxxxxxxxxxxx wrote:
From: Bodong Wang <bodong@xxxxxxxxxxxx>

Sometimes it is not desirable to probe the virtual functions after
SRIOV is enabled. This can save host side resource usage by VF
instances which would be eventually probed to VMs.

Add a new PCI sysfs interface "sriov_probe_vfs" to control that
from the PF, all current callers still retain the same functionality.
To modify it, echo 0/n/N (disable probe) or 1/y/Y (enable probe) to

/sys/bus/pci/devices/<DOMAIN:BUS:DEVICE.FUNCTION>/sriov_probe_vfs
Is this basically the same functionality as /sys/bus/pci/drivers_autoprobe,
but limited to a specific PF? I.e., could we accomplish the same thing
with the following?

# echo 0 > /sys/bus/pci/devices/DDDD:BB:dd.f/sriov_numvfs
# echo 0 > /sys/bus/pci/drivers_autoprobe
# echo 2 > /sys/bus/pci/devices/DDDD:BB:dd.f/sriov_numvfs
# echo 1 > /sys/bus/pci/drivers_autoprobe

If not, can you contrast the above with drivers_autoprobe? If we need
both, should they be named more similarly?
Hi Bjorn,

I agree with Alex about not using driver_autoprobe to achieve this. It will affect all pci related device once it's disabled(probably in a bad way). On the other hand, current pci driver doesn't work for this use case at all. VFs drivers(if any) will be probed once sriov is enabled no matter what. The code path is pci_enable_sriov-> pci_bus_add_device->device_attach, and drivers will be probed at the end. Drivers_autoprobe only prevents probing pci_device_add is called. This patch bounded the change to the device itself and requires no device driver update.

For the name convention, it's aligned with other sriov related sysfs entries. Let me know if you have better options.

Thanks,

Bodong