Re: [PATCH 1/3] pci-iov: Add support for unmanaged SR-IOV

From: Alex Williamson
Date: Fri Mar 02 2018 - 18:59:32 EST


On Fri, 02 Mar 2018 15:44:25 -0800
Alexander Duyck <alexander.duyck@xxxxxxxxx> wrote:

> From: Alexander Duyck <alexander.h.duyck@xxxxxxxxx>
>
> This patch is meant to add some basic functionality to support for SR-IOV
> on devices when the VFs are not managed by the kernel. The functions
> provided here can be used by drivers such as vfio-pci and virtio to enable
> SR-IOV on devices that are either managed by userspace, or by some sort of
> firmware entity respectively.
>
> A new sysfs value called sriov_unmanaged_autoprobe has been added. This
> value is used as the drivers_autoprobe setting of the VFs when they are
> being managed by an external entity such as userspace or device firmware
> instead of being managed by the kernel.
>
> One side effect of this change is that the sriov_drivers_autoprobe and
> sriov_unmanaged_autoprobe will only apply their updates when SR-IOV is
> disabled. Attempts to update them when SR-IOV is in use will only update
> the local value and will not update sriov->autoprobe.
>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@xxxxxxxxx>
> ---
> Documentation/ABI/testing/sysfs-bus-pci | 17 ++++++++++++++
> drivers/pci/iov.c | 37 +++++++++++++++++++++++++++++++
> drivers/pci/pci-driver.c | 2 +-
> drivers/pci/pci-sysfs.c | 29 ++++++++++++++++++++++++
> drivers/pci/pci.h | 4 +++
> include/linux/pci.h | 1 +
> 6 files changed, 88 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-pci b/Documentation/ABI/testing/sysfs-bus-pci
> index 44d4b2be92fd..ff0b6c19cb1a 100644
> --- a/Documentation/ABI/testing/sysfs-bus-pci
> +++ b/Documentation/ABI/testing/sysfs-bus-pci
> @@ -323,3 +323,20 @@ Description:
>
> This is similar to /sys/bus/pci/drivers_autoprobe, but
> affects only the VFs associated with a specific PF.
> +
> +What: /sys/bus/pci/devices/.../sriov_unmanaged_autoprobe
> +Date: March 2018
> +Contact: Alexander Duyck <alexander.h.duyck@xxxxxxxxx>
> +Description:
> + This file is associated with the PF of a device that
> + supports SR-IOV. It determines whether newly-enabled VFs
> + are immediately bound to a driver when the PF driver does
> + not manage the VFs itself. It initially contains 0, which
> + means the kernel will not automatically bind VFs to a driver.
> + If an application writes 1 to the file before enabling VFs,
> + the kernel will bind VFs to a compatible driver immediately
> + after they are enabled.
> +
> + This overrides /sys/bus/pci/devices/.../sriov_drivers_autoprobe
> + when a PF driver is not present to manage a device, or the PF
> + driver does not provide functionality to support SR-IOV.


Given a pf, how does a user determine whether it is managed or unmanaged
and therefore which autoprobe attributes are in effect? Thanks,

Alex