Thread (22 messages) 22 messages, 3 authors, 2022-07-12

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
Thanks
quoted
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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help