qemu-e2k/hw/vfio
Tony Krowiak 2fe2942cd6 s390x/vfio: ap: Introduce VFIO AP device
Introduces a VFIO based AP device. The device is defined via
the QEMU command line by specifying:

    -device vfio-ap,sysfsdev=<path-to-mediated-matrix-device>

There may be only one vfio-ap device configured for a guest.

The mediated matrix device is created by the VFIO AP device
driver by writing a UUID to a sysfs attribute file (see
docs/vfio-ap.txt). The mediated matrix device will be named
after the UUID. Symbolic links to the $uuid are created in
many places, so the path to the mediated matrix device $uuid
can be specified in any of the following ways:

/sys/devices/vfio_ap/matrix/$uuid
/sys/devices/vfio_ap/matrix/mdev_supported_types/vfio_ap-passthrough/devices/$uuid
/sys/bus/mdev/devices/$uuid
/sys/bus/mdev/drivers/vfio_mdev/$uuid

When the vfio-ap device is realized, it acquires and opens the
VFIO iommu group to which the mediated matrix device is
bound. This causes a VFIO group notification event to be
signaled. The vfio_ap device driver's group notification
handler will get called at which time the device driver
will configure the the AP devices to which the guest will
be granted access.

Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
Tested-by: Pierre Morel <pmorel@linux.ibm.com>
Acked-by: Halil Pasic <pasic@linux.ibm.com>
Tested-by: Pierre Morel <pmorel@linux.ibm.com>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Message-Id: <20181010170309.12045-6-akrowiak@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
[CH: added missing g_free and device category]
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-10-12 11:32:18 +02:00
..
Makefile.objs s390x/vfio: ap: Introduce VFIO AP device 2018-10-12 11:32:18 +02:00
amd-xgbe.c qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
ap.c s390x/vfio: ap: Introduce VFIO AP device 2018-10-12 11:32:18 +02:00
calxeda-xgmac.c qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
ccw.c qemu-error: add {error, warn}_report_once_cond 2018-09-24 17:13:07 +02:00
common.c vfio/pci: Fix failure to close file descriptor on error 2018-08-23 10:45:58 -06:00
display.c ui: introduce vfio_display_reset 2018-04-27 11:36:34 +02:00
pci-quirks.c hw/vfio: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
pci.c vfio/pci: Handle subsystem realpath() returning NULL 2018-08-23 10:45:57 -06:00
pci.h vfio/quirks: Enable ioeventfd quirks to be handled by vfio directly 2018-06-05 08:28:09 -06:00
platform.c vfio: Include "exec/address-spaces.h" directly in the source file 2018-05-31 19:12:13 +02:00
spapr.c vfio/spapr: Allow backing bigger guest IOMMU pages with smaller physical pages 2018-08-21 14:28:45 +10:00
trace-events vfio/ccw/pci: Allow devices to opt-in for ballooning 2018-08-17 09:27:16 -06:00