lkml.org 
[lkml]   [2018]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v5 10/13] s390: vfio-ap: sysfs interface to view matrix mdev matrix
    From
    Date
    On 23/05/2018 16:38, Tony Krowiak wrote:
    > On 05/16/2018 03:55 AM, Pierre Morel wrote:
    >> On 07/05/2018 17: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:
    >>
    >> This is the configured matrix, not the one used by the guest.
    >> Nothing in the patches protect against binding a queue and assigning
    >> a new AP when the guest runs.
    >> The card and queue will be showed by this entry.
    >
    > Of course, as stated above, this is the matrix configured for the
    > mediated matrix device. Are you suggesting here that the driver
    > should prevent assigning a new adapter or domain while a guest is
    > running? Couldn't this be a step in the process for hot (un)plugging
    > AP queues?

    No, I mean what is the point to show this?
    It is not what the guest sees.
    Has it any use case?

    >
    >>
    >>
    >>
    >>>
    >>>     cat matrix
    >>>
    >>> Signed-off-by: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
    >>> ---
    >>>   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 755be1d..81e03b8 100644
    >>> --- a/drivers/s390/crypto/vfio_ap_ops.c
    >>> +++ b/drivers/s390/crypto/vfio_ap_ops.c
    >>> @@ -716,6 +716,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,
    >>> @@ -724,6 +754,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,
    >>>   };
    >>>
    >>
    >

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

    \
     
     \ /
      Last update: 2018-05-24 11:12    [W:3.313 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site