Re: [PATCH] s390/vfio-ap: fix sysfs status attribute for AP queue devices

From: Halil Pasic
Date: Mon Nov 06 2023 - 17:21:08 EST


On Fri, 20 Oct 2023 16:48:35 -0400
Tony Krowiak <akrowiak@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxx>
> Fixes: f139862b92cf ("s390/vfio-ap: add status attribute to AP queue device's sysfs dir")

Acked-by: Halil Pasic <pasic@xxxxxxxxxxxxx>

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@xxxxxxxxxxxxxxx