From: "Michael S. Tsirkin" <mst@redhat.com>
To: Halil Pasic <pasic@linux.ibm.com>
Cc: Tiwei Bie <tiwei.bie@intel.com>,
cohuck@redhat.com, stefanha@redhat.com, pbonzini@redhat.com,
virtio-dev@lists.oasis-open.org, dan.daly@intel.com,
cunming.liang@intel.com, zhihong.wang@intel.com
Subject: Re: [virtio-dev] [PATCH v3] content: enhance device requirements for feature bits
Date: Fri, 15 Jun 2018 16:38:36 +0300 [thread overview]
Message-ID: <20180615154837-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <545e8649-8029-d135-e927-3ad11f4eb29d@linux.ibm.com>
On Fri, Jun 15, 2018 at 02:42:58PM +0200, Halil Pasic wrote:
>
>
> On 06/15/2018 02:19 PM, Michael S. Tsirkin wrote:
> > On Fri, Jun 15, 2018 at 02:10:11PM +0200, Halil Pasic wrote:
> > >
> > >
> > > On 06/11/2018 09:56 AM, Tiwei Bie wrote:
> > > > Suggested-by: Michael S. Tsirkin <mst@redhat.com>
> > > > Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
> > > > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/14
> > > > ---
> > > > v2:
> > > > - Refine the wording (Cornelia);
> > > >
> > > > v3:
> > > > - Refine the wording (MST);
> > > >
> > > > content.tex | 7 +++++++
> > > > 1 file changed, 7 insertions(+)
> > > >
> > > > diff --git a/content.tex b/content.tex
> > > > index f996fad..3c7d67d 100644
> > > > --- a/content.tex
> > > > +++ b/content.tex
> > > > @@ -125,6 +125,13 @@ which was not offered. The device SHOULD accept any valid subset
> > > > of features the driver accepts, otherwise it MUST fail to set the
> > > > FEATURES_OK \field{device status} bit when the driver writes it.
> > > > +If a device has successfully negotiated a set of features
> > > > +at least once (by accepting the FEATURES_OK \field{device
> > > > +status} bit during device initialization), then it SHOULD
> > > > +NOT fail re-negotiation of the same set of features after
> > > > +a device or system reset. Failure to do so would interfere
> > > > +with resuming from suspend and error recovery.
> > > > +
> > >
> > >
> > > Sorry people but I don't get it. I mean it is kind of reasonable
> > > to assume that with a given device and a given driver (given, i.e.
> > > nothing changes) the two will always negotiate the same features
> > > (including the extremal case where the negotiation fails).
> > >
> > > Either the device or a driver rolling a dice to make feature negotiation
> > > more fun seems quite unreasonable. So I assume this is not what we are
> > > bothering to soft prohibit here.
> > >
> > > So the interesting scenario seems to be when stuff changes. When
> > > migrating the implementation of the device could change. Or something
> > > changes regarding the resources used to provide the virtual device.
> > >
> > > But then, if the device really can not support the set of features
> > > it used to be able, I guess the SHOULD does not take effect (I guess
> > > that is the difference compared to MUST).
> > >
> > > Bottom line is: I tried to figure out what is this about, but I failed.
> > > I've read https://github.com/oasis-tcs/virtio-spec/issues/14 too but
> > > it did not click. I would appreciate some assistance.
> >
> > It's exactly what it says. Let's say you negotiated a feature and then
> > device sets NEED_RESET. Driver must now reset the device and put it
> > back in the same state it had before the reset, then resubmit
> > requests that were available but never used.
> >
> > What if any of the features changed? Device suddenly
> > needs to check for requests which do not match the
> > features.
> >
> > Suspend is similar: guests tend to assume hardware does not change
> > across suspend/resume, any changes tend to make resume fail.
> >
>
> Thank you very much! But it still does not answer why would a device
> want to do that (fail to negotiate a feature that it was able to
> negotiate before). So I'm still in the dark about what are we trading
> for what.
It would be a mis-configured device. For example QEMU does not migrate
the device features so if you misconfigure QEMU with different flags on
source and destination (not a supported configuration), features might
seem to change from guest POV.
> Is there somewhere a patch that fixes such a bug? Maybe that would
> help me understand what can be done at the device to avoid the
> problem.
>
> Regards,
> Halil
>
>
> > >
> > > > \subsection{Legacy Interface: A Note on Feature
> > > > Bits}\label{sec:Basic Facilities of a Virtio Device / Feature
> > > > Bits / Legacy Interface: A Note on Feature Bits}
> > > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> > For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
> >
---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
next prev parent reply other threads:[~2018-06-15 13:38 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-11 7:56 [virtio-dev] [PATCH v3] content: enhance device requirements for feature bits Tiwei Bie
2018-06-11 8:43 ` [virtio-dev] " Cornelia Huck
2018-06-11 13:24 ` Michael S. Tsirkin
2018-06-11 13:29 ` Cornelia Huck
2018-06-11 13:44 ` Michael S. Tsirkin
2018-06-11 13:44 ` Michael S. Tsirkin
2018-06-15 12:10 ` [virtio-dev] " Halil Pasic
2018-06-15 12:19 ` Michael S. Tsirkin
2018-06-15 12:42 ` Halil Pasic
2018-06-15 13:38 ` Michael S. Tsirkin [this message]
2018-06-15 15:16 ` Halil Pasic
2018-06-15 15:37 ` Michael S. Tsirkin
2018-06-18 15:08 ` Halil Pasic
2018-06-18 16:28 ` Michael S. Tsirkin
2018-06-19 9:14 ` Tiwei Bie
2018-06-19 10:46 ` Halil Pasic
2018-06-19 16:30 ` Tiwei Bie
2018-06-20 7:54 ` Cornelia Huck
2018-06-20 12:10 ` Halil Pasic
2018-06-20 1:06 ` Michael S. Tsirkin
2018-06-15 13:39 ` Tiwei Bie
2018-06-15 14:21 ` Halil Pasic
2018-06-15 15:36 ` Michael S. Tsirkin
2018-06-15 18:06 ` Halil Pasic
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=20180615154837-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=cohuck@redhat.com \
--cc=cunming.liang@intel.com \
--cc=dan.daly@intel.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=stefanha@redhat.com \
--cc=tiwei.bie@intel.com \
--cc=virtio-dev@lists.oasis-open.org \
--cc=zhihong.wang@intel.com \
/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.