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

From: Alex Williamson
Date: Tue Apr 11 2017 - 17:52:01 EST


On Tue, 11 Apr 2017 16:12:11 -0500
Bjorn Helgaas <helgaas@xxxxxxxxxx> 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?

Logically it's similar, but the above is racy, not only would userspace
need to serialize such operations but a device hot added during that
blackout period wouldn't be probed. So this is like a per PF
drivers_autoprobe for the VFs hosted by that device. Thanks,

Alex

> > Note that, the choice must be made before enabling VFs. The change
> > will not take effect if VFs are already enabled. Simply, one can set
> > sriov_numvfs to 0, choose whether to probe or not, and then resume
> > sriov_numvfs.
> >
> > Signed-off-by: Bodong Wang <bodong@xxxxxxxxxxxx>
> > Signed-off-by: Eli Cohen <eli@xxxxxxxxxxxx>
> > Reviewed-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>