PCI: SRIOV control and status via sysfs
authorDonald Dutile <ddutile@redhat.com>
Mon, 5 Nov 2012 20:20:36 +0000 (15:20 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Sat, 10 Nov 2012 03:10:39 +0000 (20:10 -0700)
commit1789382a72a537447d65ea4131d8bcc1ad85ce7b
treea22142cf3882ccf95e9be73642d3738fb5a72af1
parent625e1d59a89f50bace376f429d8cf50347af75f7
PCI: SRIOV control and status via sysfs

Provide files under sysfs to determine the maximum number of VFs
an SR-IOV-capable PCIe device supports, and methods to enable and
disable the VFs on a per-device basis.

Currently, VF enablement by SR-IOV-capable PCIe devices is done
via driver-specific module parameters.  If not setup in modprobe files,
it requires admin to unload & reload PF drivers with number of desired
VFs to enable.  Additionally, the enablement is system wide: all
devices controlled by the same driver have the same number of VFs
enabled.  Although the latter is probably desired, there are PCI
configurations setup by system BIOS that may not enable that to occur.

Two files are created for the PF of PCIe devices with SR-IOV support:

    sriov_totalvfs Contains the maximum number of VFs the device
could support as reported by the TotalVFs register
in the SR-IOV extended capability.

    sriov_numvfs Contains the number of VFs currently enabled on
this device as reported by the NumVFs register in
the SR-IOV extended capability.

Writing zero to this file disables all VFs.

Writing a positive number to this file enables that
number of VFs.

These files are readable for all SR-IOV PF devices.  Writes to the
sriov_numvfs file are effective only if a driver that supports the
sriov_configure() method is attached.

Signed-off-by: Donald Dutile <ddutile@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pci-sysfs.c
include/linux/pci.h