lkml.org 
[lkml]   [2018]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v6 13/21] s390: vfio-ap: sysfs interface to view matrix mdev matrix
    From
    Date


    On 07/13/2018 02:24 PM, Tony Krowiak wrote:
    > On 07/09/2018 04:38 PM, Pierre Morel wrote:
    >> 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@linux.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 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?
    >
    > I find it to have great value when configuring the mdev. It provides a view of
    > what has been configured thus far.
    >

    IMHO we need to keep this view for the reason stated by Tony.

    Halil

    \
     
     \ /
      Last update: 2018-07-15 22:07    [W:2.911 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site