Re: [PATCH v6 1/4] vdpa: Add suspend operation
From: Jason Wang <jasowang@redhat.com>
Date: 2022-07-12 08:04:43
Also in:
kvm, lkml, virtualization
On Fri, Jul 8, 2022 at 7:31 PM Eugenio Perez Martin [off-list ref] wrote:
On Wed, Jun 29, 2022 at 6:10 AM Jason Wang [off-list ref] wrote:quoted
On Fri, Jun 24, 2022 at 12:07 AM Eugenio Pérez [off-list ref] wrote:quoted
This operation is optional: It it's not implemented, backend feature bit will not be exposed.A question, do we allow suspending a device without DRIVER_OK?That should be invalid. In particular, vdpa_sim will resume in that case, but I guess it would depend on the device.
Yes, and that will match our virtio spec patch (STOP bit).
Do you think it should be controlled in the vdpa frontend code?
The vdpa bus should validate this at least. Thanks
Thanks!quoted
Thanksquoted
Signed-off-by: Eugenio Pérez <eperezma@redhat.com> --- include/linux/vdpa.h | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h index 7b4a13d3bd91..d282f464d2f1 100644 --- a/include/linux/vdpa.h +++ b/include/linux/vdpa.h@@ -218,6 +218,9 @@ struct vdpa_map_file { * @reset: Reset device * @vdev: vdpa device * Returns integer: success (0) or error (< 0) + * @suspend: Suspend or resume the device (optional) + * @vdev: vdpa device + * Returns integer: success (0) or error (< 0) * @get_config_size: Get the size of the configuration space includes * fields that are conditional on feature bits. * @vdev: vdpa device@@ -319,6 +322,7 @@ struct vdpa_config_ops { u8 (*get_status)(struct vdpa_device *vdev); void (*set_status)(struct vdpa_device *vdev, u8 status); int (*reset)(struct vdpa_device *vdev); + int (*suspend)(struct vdpa_device *vdev); size_t (*get_config_size)(struct vdpa_device *vdev); void (*get_config)(struct vdpa_device *vdev, unsigned int offset, void *buf, unsigned int len); --2.31.1