Re: [PATCH v4 4/4] vdpa_sim: Implement resume vdpa op
From: Eugenio Perez Martin
Date: Wed Oct 19 2022 - 06:00:15 EST
On Tue, Oct 18, 2022 at 10:38 AM <sebastien.boeuf@xxxxxxxxx> wrote:
>
> From: Sebastien Boeuf <sebastien.boeuf@xxxxxxxxx>
>
> Implement resume operation for vdpa_sim devices, so vhost-vdpa will
> offer that backend feature and userspace can effectively resume the
> device.
>
> Signed-off-by: Sebastien Boeuf <sebastien.boeuf@xxxxxxxxx>
> ---
> drivers/vdpa/vdpa_sim/vdpa_sim.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c
> index b071f0d842fb..05e3802fb746 100644
> --- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
> +++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
> @@ -527,6 +527,18 @@ static int vdpasim_suspend(struct vdpa_device *vdpa)
> return 0;
> }
>
> +static int vdpasim_resume(struct vdpa_device *vdpa)
> +{
> + struct vdpasim *vdpasim = vdpa_to_sim(vdpa);
> + int i;
> +
> + spin_lock(&vdpasim->lock);
> + vdpasim->running = true;
> + spin_unlock(&vdpasim->lock);
> +
> + return 0;
> +}
> +
To never kick at resuming is not the right thing to do :).
Maybe to store in the vdpasim_virtqueue if it was kicked during the
suspend window?
Thanks!
> static size_t vdpasim_get_config_size(struct vdpa_device *vdpa)
> {
> struct vdpasim *vdpasim = vdpa_to_sim(vdpa);
> @@ -717,6 +729,7 @@ static const struct vdpa_config_ops vdpasim_config_ops = {
> .set_status = vdpasim_set_status,
> .reset = vdpasim_reset,
> .suspend = vdpasim_suspend,
> + .resume = vdpasim_resume,
> .get_config_size = vdpasim_get_config_size,
> .get_config = vdpasim_get_config,
> .set_config = vdpasim_set_config,
> @@ -750,6 +763,7 @@ static const struct vdpa_config_ops vdpasim_batch_config_ops = {
> .set_status = vdpasim_set_status,
> .reset = vdpasim_reset,
> .suspend = vdpasim_suspend,
> + .resume = vdpasim_resume,
> .get_config_size = vdpasim_get_config_size,
> .get_config = vdpasim_get_config,
> .set_config = vdpasim_set_config,
> --
> 2.34.1
>
> ---------------------------------------------------------------------
> Intel Corporation SAS (French simplified joint stock company)
> Registered headquarters: "Les Montalets"- 2, rue de Paris,
> 92196 Meudon Cedex, France
> Registration Number: 302 456 199 R.C.S. NANTERRE
> Capital: 5 208 026.16 Euros
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>