Re: [PATCH v6 2/7] s390: ap: new vfio_ap_queue structure

From: Pierre Morel
Date: Thu Mar 28 2019 - 12:06:19 EST


On 28/03/2019 16:32, Tony Krowiak wrote:
On 3/28/19 9:06 AM, Pierre Morel wrote:
On 26/03/2019 21:45, Tony Krowiak wrote:
On 3/22/19 10:43 AM, Pierre Morel wrote:
The AP interruptions are assigned on a queue basis and

...
+static void vfio_ap_free_queue(int apqn, struct ap_matrix_mdev *matrix_mdev)
+{
+ÂÂÂ struct vfio_ap_queue *q;
+
+ÂÂÂ q = vfio_ap_get_queue(apqn, &matrix_mdev->qlist);
+ÂÂÂ if (!q)
+ÂÂÂÂÂÂÂ return;
+ÂÂÂ q->matrix_mdev = NULL;
+ÂÂÂ vfio_ap_mdev_reset_queue(q);

I'm wondering if it's necessary to reset the queue here. The only time
a queue is used is when a guest using the mdev device is started. When
that guest is terminated, the fd for the mdev device is /* Bits 41-47 must all be zeros */closed and the
mdev device's release callback is invoked. The release callback resets
the queues assigned to the mdev device. Is it really necessary to
reset the queue again when it is unassigned even if there would have
been no subsequent activity?

Yes, it is necessary, the queue can be re-assigned to another guest later.
Release will only be called when unbinding the queue from the driver.

That is true, but if the queue is never used, there is nothing to reset.

:) OK


Regards,
Pierre

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