This operation is optional: It it's not implemented, backend feature bit
will not be exposed.
Signed-off-by: Eugenio Pérez <[email protected]>
---
include/linux/vdpa.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
index 15af802d41c4..ddfebc4e1e01 100644
--- a/include/linux/vdpa.h
+++ b/include/linux/vdpa.h
@@ -215,6 +215,11 @@ struct vdpa_map_file {
* @reset: Reset device
* @vdev: vdpa device
* Returns integer: success (0) or error (< 0)
+ * @stop: Stop or resume the device (optional, but it must
+ * be implemented if require device stop)
+ * @vdev: vdpa device
+ * @stop: stop (true), not stop (false)
+ * 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
@@ -316,6 +321,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 (*stop)(struct vdpa_device *vdev, bool stop);
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
On Thu, May 26, 2022 at 02:43:35PM +0200, Eugenio P?rez wrote:
>This operation is optional: It it's not implemented, backend feature bit
>will not be exposed.
>
>Signed-off-by: Eugenio P?rez <[email protected]>
>---
> include/linux/vdpa.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
>diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
>index 15af802d41c4..ddfebc4e1e01 100644
>--- a/include/linux/vdpa.h
>+++ b/include/linux/vdpa.h
>@@ -215,6 +215,11 @@ struct vdpa_map_file {
> * @reset: Reset device
> * @vdev: vdpa device
> * Returns integer: success (0) or error (< 0)
>+ * @stop: Stop or resume the device (optional, but it must
>+ * be implemented if require device stop)
>+ * @vdev: vdpa device
>+ * @stop: stop (true), not stop (false)
Sorry for just seeing this now, but if you have to send a v5, maybe we
could use "resume" here instead of "not stop".
Thanks,
Stefano
>+ * 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
>@@ -316,6 +321,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 (*stop)(struct vdpa_device *vdev, bool stop);
> 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
>
> From: Eugenio Pérez <[email protected]>
> Sent: Thursday, May 26, 2022 3:44 PM
> To: Michael S. Tsirkin <[email protected]>; [email protected]; [email protected]; [email protected];
> Jason Wang <[email protected]>; [email protected]
> Cc: [email protected]; Stefano Garzarella <[email protected]>; [email protected]; [email protected]; [email protected];
> Parav Pandit <[email protected]>; Eli Cohen <[email protected]>; Dan Carpenter <[email protected]>; Xie Yongji
> <[email protected]>; Christophe JAILLET <[email protected]>; Zhang Min <[email protected]>; Wu Zongyong
> <[email protected]>; [email protected]; Zhu Lingshan <[email protected]>; [email protected]; Si-Wei Liu <si-
> [email protected]>; [email protected]; [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; Longpeng <[email protected]>
> Subject: [PATCH v4 1/4] vdpa: Add stop operation
>
> This operation is optional: It it's not implemented, backend feature bit
> will not be exposed.
>
> Signed-off-by: Eugenio Pérez <[email protected]>
> ---
> include/linux/vdpa.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
> index 15af802d41c4..ddfebc4e1e01 100644
> --- a/include/linux/vdpa.h
> +++ b/include/linux/vdpa.h
> @@ -215,6 +215,11 @@ struct vdpa_map_file {
> * @reset: Reset device
> * @vdev: vdpa device
> * Returns integer: success (0) or error (< 0)
> + * @stop: Stop or resume the device (optional, but it must
> + * be implemented if require device stop)
> + * @vdev: vdpa device
> + * @stop: stop (true), not stop (false)
> + * Returns integer: success (0) or error (< 0)
I assume after successful "stop" the device is guaranteed to stop processing descriptors and after resume it may process descriptors?
If that is so, I think it should be clear in the change log.
> * @get_config_size: Get the size of the configuration space includes
> * fields that are conditional on feature bits.
> * @vdev: vdpa device
> @@ -316,6 +321,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 (*stop)(struct vdpa_device *vdev, bool stop);
> 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
On Wed, Jun 1, 2022 at 7:35 AM Eli Cohen <[email protected]> wrote:
>
> > From: Eugenio Pérez <[email protected]>
> > Sent: Thursday, May 26, 2022 3:44 PM
> > To: Michael S. Tsirkin <[email protected]>; [email protected]; [email protected]; [email protected];
> > Jason Wang <[email protected]>; [email protected]
> > Cc: [email protected]; Stefano Garzarella <[email protected]>; [email protected]; [email protected]; [email protected];
> > Parav Pandit <[email protected]>; Eli Cohen <[email protected]>; Dan Carpenter <[email protected]>; Xie Yongji
> > <[email protected]>; Christophe JAILLET <[email protected]>; Zhang Min <[email protected]>; Wu Zongyong
> > <[email protected]>; [email protected]; Zhu Lingshan <[email protected]>; [email protected]; Si-Wei Liu <si-
> > [email protected]>; [email protected]; [email protected]; [email protected]; [email protected];
> > [email protected]; [email protected]; Longpeng <[email protected]>
> > Subject: [PATCH v4 1/4] vdpa: Add stop operation
> >
> > This operation is optional: It it's not implemented, backend feature bit
> > will not be exposed.
> >
> > Signed-off-by: Eugenio Pérez <[email protected]>
> > ---
> > include/linux/vdpa.h | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
> > index 15af802d41c4..ddfebc4e1e01 100644
> > --- a/include/linux/vdpa.h
> > +++ b/include/linux/vdpa.h
> > @@ -215,6 +215,11 @@ struct vdpa_map_file {
> > * @reset: Reset device
> > * @vdev: vdpa device
> > * Returns integer: success (0) or error (< 0)
> > + * @stop: Stop or resume the device (optional, but it must
> > + * be implemented if require device stop)
> > + * @vdev: vdpa device
> > + * @stop: stop (true), not stop (false)
> > + * Returns integer: success (0) or error (< 0)
>
> I assume after successful "stop" the device is guaranteed to stop processing descriptors and after resume it may process descriptors?
> If that is so, I think it should be clear in the change log.
>
Yes.
It's better described in the changelog of vdpa sim change, maybe it's
better to move here.
Thanks!
> > * @get_config_size: Get the size of the configuration space includes
> > * fields that are conditional on feature bits.
> > * @vdev: vdpa device
> > @@ -316,6 +321,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 (*stop)(struct vdpa_device *vdev, bool stop);
> > 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
>