• Alex Williamson's avatar
    vfio-pci: PCI hot reset interface · 8b27ee60
    Alex Williamson authored
    The current VFIO_DEVICE_RESET interface only maps to PCI use cases
    where we can isolate the reset to the individual PCI function.  This
    means the device must support FLR (PCIe or AF), PM reset on D3hot->D0
    transition, device specific reset, or be a singleton device on a bus
    for a secondary bus reset.  FLR does not have widespread support,
    PM reset is not very reliable, and bus topology is dictated by the
    system and device design.  We need to provide a means for a user to
    induce a bus reset in cases where the existing mechanisms are not
    available or not reliable.
    
    This device specific extension to VFIO provides the user with this
    ability.  Two new ioctls are introduced:
     - VFIO_DEVICE_PCI_GET_HOT_RESET_INFO
     - VFIO_DEVICE_PCI_HOT_RESET
    
    The first provides the user with information about the extent of
    devices affected by a hot reset.  This is essentially a list of
    devices and the IOMMU groups they belong to.  The user may then
    initiate a hot reset by calling the second ioctl.  We must be
    careful that the user has ownership of all the affected devices
    found via the first ioctl, so the second ioctl takes a list of file
    descriptors for the VFIO groups affected by the reset.  Each group
    must have IOMMU protection established for the ioctl to succeed.
    Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    8b27ee60
vfio.h 15.8 KB