Commit 2d872136 authored by Jason J. Herne's avatar Jason J. Herne Committed by Vasily Gorbik
Browse files

s390/vfio-ap: Driver feature advertisement



Advertise features of the driver for the benefit of automated tooling
like Libvirt and mdevctl.

Signed-off-by: default avatarJason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: default avatarAnthony Krowiak <akrowiak@linux.ibm.com>
Reviewed-by: default avatarBoris Fiuczynski <fiuczy@linux.ibm.com>
Link: https://lore.kernel.org/r/20240916120123.11484-1-jjherne@linux.ibm.com


Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent d714abee
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -999,6 +999,36 @@ the vfio_ap mediated device to which it is assigned as long as each new APQN
resulting from plugging it in references a queue device bound to the vfio_ap
device driver.

Driver Features
===============
The vfio_ap driver exposes a sysfs file containing supported features.
This exists so third party tools (like Libvirt and mdevctl) can query the
availability of specific features.

The features list can be found here: /sys/bus/matrix/devices/matrix/features

Entries are space delimited. Each entry consists of a combination of
alphanumeric and underscore characters.

Example:
cat /sys/bus/matrix/devices/matrix/features
guest_matrix dyn ap_config

the following features are advertised:

---------------+---------------------------------------------------------------+
| Flag         | Description                                                   |
+==============+===============================================================+
| guest_matrix | guest_matrix attribute exists. It reports the matrix of       |
|              | adapters and domains that are or will be passed through to a  |
|              | guest when the mdev is attached to it.                        |
+--------------+---------------------------------------------------------------+
| dyn          | Indicates hot plug/unplug of AP adapters, domains and control |
|              | domains for a guest to which the mdev is attached.            |
+------------+-----------------------------------------------------------------+
| ap_config    | ap_config interface for one-shot modifications to mdev config |
+--------------+---------------------------------------------------------------+

Limitations
===========
Live guest migration is not supported for guests using AP devices without
+13 −0
Original line number Diff line number Diff line
@@ -26,6 +26,18 @@ MODULE_LICENSE("GPL v2");
struct ap_matrix_dev *matrix_dev;
debug_info_t *vfio_ap_dbf_info;

static ssize_t features_show(struct device *dev, struct device_attribute *attr, char *buf)
{
	return sysfs_emit(buf, "guest_matrix hotplug ap_config\n");
}
static DEVICE_ATTR_RO(features);

static struct attribute *matrix_dev_attrs[] = {
	&dev_attr_features.attr,
	NULL,
};
ATTRIBUTE_GROUPS(matrix_dev);

/* Only type 10 adapters (CEX4 and later) are supported
 * by the AP matrix device driver
 */
@@ -68,6 +80,7 @@ static struct device_driver matrix_driver = {
	.name = "vfio_ap",
	.bus = &matrix_bus,
	.suppress_bind_attrs = true,
	.dev_groups = matrix_dev_groups,
};

static int vfio_ap_matrix_dev_create(void)