On 10/28/20 4:17 AM, Halil Pasic wrote:
On Thu, 22 Oct 2020 13:12:02 -0400
Tony Krowiak <akrow...@linux.ibm.com> wrote:

+static ssize_t guest_matrix_show(struct device *dev,
+                                struct device_attribute *attr, char *buf)
+{
+       ssize_t nchars;
+       struct mdev_device *mdev = mdev_from_dev(dev);
+       struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev);
+
+       if (!vfio_ap_mdev_has_crycb(matrix_mdev))
+               return -ENODEV;
I'm wondering, would it make sense to have guest_matrix display the would
be guest matrix when we don't have a KVM? With the filtering in
place, the question in what guest_matrix would my (assign) matrix result
right now if I were to hook up my vfio_ap_mdev to a guest seems a
legitimate one.

A couple of thoughts here:
* The ENODEV informs the user that there is no guest running
   which makes sense to me given this interface displays the
   guest matrix. The alternative, which I considered, was to
   display an empty matrix (i.e., nothing).
* This would be a pretty drastic change to the design because
   the shadow_apcb - which is what is displayed via this interface - is
   only updated when the guest is started and while it is running (i.e.,
   hot plug of new adapters/domains). Making this change would
   require changing that entire design concept which I am reluctant
   to do at this point in the game.




+
+       mutex_lock(&matrix_dev->lock);
+       nchars = vfio_ap_mdev_matrix_show(&matrix_mdev->shadow_apcb, buf);
+       mutex_unlock(&matrix_dev->lock);
+
+       return nchars;
+}
+static DEVICE_ATTR_RO(guest_matrix);

Reply via email to