On Fri, 20 Oct 2023 16:48:35 -0400 Tony Krowiak akrowiak@linux.ibm.com wrote:
The 'status' attribute for AP queue devices bound to the vfio_ap device driver displays incorrect status when the mediated device is attached to a guest, but the queue device is not passed through. In the current implementation, the status displayed is 'in_use' which is not correct; it should be 'assigned'. This can happen if one of the queue devices associated with a given adapter is not bound to the vfio_ap device driver. For example:
Queues listed in /sys/bus/ap/drivers/vfio_ap: 14.0005 14.0006 14.000d 16.0006 16.000d
Queues listed in /sys/devices/vfio_ap/matrix/$UUID/matrix 14.0005 14.0006 14.000d 16.0005 16.0006 16.000d
Queues listed in /sys/devices/vfio_ap/matrix/$UUID/guest_matrix 14.0005 14.0006 14.000d
The reason no queues for adapter 0x16 are listed in the guest_matrix is because queue 16.0005 is not bound to the vfio_ap device driver, so no queue associated with the adapter is passed through to the guest; therefore, each queue device for adapter 0x16 should display 'assigned' instead of 'in_use', because those queues are not in use by a guest, but only assigned to the mediated device.
Let's check the AP configuration for the guest to determine whether a queue device is passed through before displaying a status of 'in_use'.
Signed-off-by: Tony Krowiak akrowiak@linux.ibm.com Fixes: f139862b92cf ("s390/vfio-ap: add status attribute to AP queue device's sysfs dir")
Acked-by: Halil Pasic pasic@linux.ibm.com
I'm not sure if there is documentation. I assume there is no additional documentation except for the code and the commit messages on what those actually mean. So there is no way to cross-check and no need to update it.
I personally don't feel like having clarity on these states. In use does not actually mean that the guest is actually using it: the guest can happily ignore the queue. The unassigned is pretty clear. What "assigned" vs "in use" is supposed to express, not so much to me.
I don't think this fix qualifies for the stable process, but it has been a while since I've looked at the corresponding process documentation.
Cc: stable@vger.kernel.org