Re: [PATCH v6 13/21] s390: vfio-ap: sysfs interface to view matrix mdev matrix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/07/2018 14:20, Pierre Morel wrote:
On 29/06/2018 23:11, Tony Krowiak wrote:
Provides a sysfs interface to view the AP matrix configured for the
mediated matrix device.

The relevant sysfs structures are:

/sys/devices/vfio_ap
... [matrix]
...... [mdev_supported_types]
......... [vfio_ap-passthrough]
............ [devices]
...............[$uuid]
.................. matrix

To view the matrix configured for the mediated matrix device,
print the matrix file:

    cat matrix

Signed-off-by: Tony Krowiak <akrowiak@xxxxxxxxxxxxx>
---
  drivers/s390/crypto/vfio_ap_ops.c |   31 +++++++++++++++++++++++++++++++
  1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
index c8f31f3..bc7398d 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -697,6 +697,36 @@ static ssize_t control_domains_show(struct device *dev,
  }
  DEVICE_ATTR_RO(control_domains);

+static ssize_t matrix_show(struct device *dev, struct device_attribute *attr,
+               char *buf)
+{
+    struct mdev_device *mdev = mdev_from_dev(dev);
+    struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);
+    char *bufpos = buf;
+    unsigned long apid;
+    unsigned long apqi;
+    unsigned long napm = matrix_mdev->matrix.apm_max + 1;
+    unsigned long naqm = matrix_mdev->matrix.aqm_max + 1;
+    int nchars = 0;
+    int n;
+
+    for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, napm) {
+        n = sprintf(bufpos, "%02lx\n", apid);
+        bufpos += n;
+        nchars += n;
+
+        for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, naqm) {
+            n = sprintf(bufpos, "%02lx.%04lx\n", apid, apqi);
+            bufpos += n;
+            nchars += n;
+        }
+    }
+
+    return nchars;
+}
+DEVICE_ATTR_RO(matrix);
+
+
  static struct attribute *vfio_ap_mdev_attrs[] = {
      &dev_attr_assign_adapter.attr,
      &dev_attr_unassign_adapter.attr,
@@ -705,6 +735,7 @@ static ssize_t control_domains_show(struct device *dev,
      &dev_attr_assign_control_domain.attr,
      &dev_attr_unassign_control_domain.attr,
      &dev_attr_control_domains.attr,
+    &dev_attr_matrix.attr,
      NULL,
  };


I have still the same remark: what you show here is not what is currently
used by the SIE.
It is not irrelevant but what the guest really use may be more interesting
for the admin.


OK, you implement the right view it in patch 16/21.

Still, what is the purpose of showing this view?


--
Pierre Morel
Linux/KVM/QEMU in Böblingen - Germany

--
To unsubscribe from this list: send the line "unsubscribe linux-s390" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux