From: "Michael S. Tsirkin" <mst@redhat.com>
To: Steven Sistare <steven.sistare@oracle.com>
Cc: virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, Jason Wang <jasowang@redhat.com>,
Si-Wei Liu <si-wei.liu@oracle.com>,
Eugenio Perez Martin <eperezma@redhat.com>,
Stefano Garzarella <sgarzare@redhat.com>
Subject: Re: [PATCH V1] vdpa: suspend and resume require DRIVER_OK
Date: Mon, 12 Feb 2024 10:56:44 -0500 [thread overview]
Message-ID: <20240212105604-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <a4d2626d-7d74-4243-93a9-01d7adc8cda4@oracle.com>
On Mon, Feb 12, 2024 at 09:56:31AM -0500, Steven Sistare wrote:
> On 2/12/2024 3:19 AM, Michael S. Tsirkin wrote:
> > On Fri, Feb 09, 2024 at 02:29:59PM -0800, Steve Sistare wrote:
> >> Calling suspend or resume requires VIRTIO_CONFIG_S_DRIVER_OK, for all
> >> vdpa devices.
> >>
> >> Suggested-by: Eugenio Perez Martin <eperezma@redhat.com>"
> >> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
> >
> > I don't think failing suspend or resume makes sense though -
> > e.g. practically failing suspend will just prevent sleeping I think -
> > why should guest not having driver loaded prevent system suspend?
>
> Got it, my fix is too heavy handed.
>
> > there's also state such as features set which does need to be
> > preserved.
> >
> > I think the thing to do is to skip invoking suspend/resume callback
>
> OK.
>
> > and in
> > fact checking suspend/resume altogether.
>
> Currently ops->suspend, vhost_vdpa_can_suspend(), and VHOST_BACKEND_F_SUSPEND
> are equivalent. Hence if !ops->suspend, then then the driver does not support
> it, and indeed may break if suspend is used, so system suspend must be blocked,
> AFAICT. Yielding:
If DRIVER_OK is not set then there's nothing to be done for migration.
So callback not needed.
> vhost_vdpa_suspend()
> if (!ops->suspend)
> return -EOPNOTSUPP;
>
> if (!(ops->get_status(vdpa) & VIRTIO_CONFIG_S_DRIVER_OK))
> return 0;
>
> - Steve
>
> >> ---
> >> drivers/vhost/vdpa.c | 6 ++++++
> >> 1 file changed, 6 insertions(+)
> >>
> >> diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
> >> index bc4a51e4638b..ce1882acfc3b 100644
> >> --- a/drivers/vhost/vdpa.c
> >> +++ b/drivers/vhost/vdpa.c
> >> @@ -598,6 +598,9 @@ static long vhost_vdpa_suspend(struct vhost_vdpa *v)
> >> if (!ops->suspend)
> >> return -EOPNOTSUPP;
> >>
> >> + if (!(ops->get_status(vdpa) & VIRTIO_CONFIG_S_DRIVER_OK))
> >> + return -EINVAL;
> >> +
> >> ret = ops->suspend(vdpa);
> >> if (!ret)
> >> v->suspended = true;
> >> @@ -618,6 +621,9 @@ static long vhost_vdpa_resume(struct vhost_vdpa *v)
> >> if (!ops->resume)
> >> return -EOPNOTSUPP;
> >>
> >> + if (!(ops->get_status(vdpa) & VIRTIO_CONFIG_S_DRIVER_OK))
> >> + return -EINVAL;
> >> +
> >> ret = ops->resume(vdpa);
> >> if (!ret)
> >> v->suspended = false;
> >> --
> >> 2.39.3
> >
next prev parent reply other threads:[~2024-02-12 15:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-09 22:29 [PATCH V1] vdpa: suspend and resume require DRIVER_OK Steve Sistare
2024-02-12 8:19 ` Michael S. Tsirkin
2024-02-12 14:56 ` Steven Sistare
2024-02-12 15:56 ` Michael S. Tsirkin [this message]
2024-02-12 16:37 ` Steven Sistare
2024-02-13 0:06 ` Michael S. Tsirkin
2024-02-13 7:49 ` Eugenio Perez Martin
2024-02-13 8:08 ` Eugenio Perez Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240212105604-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sgarzare@redhat.com \
--cc=si-wei.liu@oracle.com \
--cc=steven.sistare@oracle.com \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.