Discussion of the implementations of VIRTIO specification
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Srivatsa Vaddagiri <quic_svaddagi@quicinc.com>,
	Srivatsa Vaddagiri <svaddagi@qti.qualcomm.com>,
	Cornelia Huck <cohuck@redhat.com>,
	"virtio-dev@lists.oasis-open.org"
	<virtio-dev@lists.oasis-open.org>,
	Trilok Soni <quic_tsoni@quicinc.com>,
	Pratik Patel <quic_pratikp@quicinc.com>
Subject: Re: [virtio-dev] Re: [PATCH v1] virtio-mmio: Specify wait needed in driver during reset
Date: Fri, 20 Aug 2021 07:15:57 -0400	[thread overview]
Message-ID: <20210820071342-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <3a880c16-ce26-f689-3175-c27f968c55f1@redhat.com>

On Fri, Aug 20, 2021 at 11:56:15AM +0800, Jason Wang wrote:
> 
> 在 2021/8/16 下午1:35, Michael S. Tsirkin 写道:
> > On Mon, Aug 16, 2021 at 10:09:34AM +0800, Jason Wang wrote:
> > > 在 2021/8/11 下午6:05, Srivatsa Vaddagiri 写道:
> > > > * Jason Wang <jasowang@redhat.com> [2021-08-02 14:06:38]:
> > > > 
> > > > > > Maybe if it sees status was not read it can just
> > > > > > stay in reset state and not exit it?
> > > > > > 
> > > > > > 
> > > > > Or I wonder we can use increase the version instead.
> > > > What should be the guidance for backend/devices here? Go with version 3 only if
> > > > it requires driver to poll on reset? Otherwise it may break existing setups -
> > > > lets say Qemu is updated to report version 3 which will break older guest images
> > > > that understood version 2 - this is despite the same Qemu being capable of
> > > > serving those guests.
> > > 
> > > My understanding is that qemu should stick to version 2 since it works fine.
> > > 
> > > Thanks
> > Yes breaking all guests does not sound like a good plan.
> > Which is unfortunate generally.
> > 
> > So thinking about all this, quite early in the setup process we
> > have:
> > 
> >          /* Figure out what features the device supports. */
> >          device_features = dev->config->get_features(dev);
> > 
> > 
> > isn't this sufficient? this will flush out
> > all writes and device can defer responding to reads
> > until reset is complete.
> 
> 
> This works unless we mandate the deferring in the spec. And the racy part is
> here:
> 
>         /* We always start by resetting the device, in case a previous
>          * driver messed it up.  This also tests that code path a little. */
>         dev->config->reset(dev);
> 
>         /* Acknowledge that we've seen the device. */
>         virtio_add_status(dev, VIRTIO_CONFIG_S_ACKNOWLEDGE);
> 
> If we don't read, the reset can be finished after add_status()?
> 
> Thanks

It can, but VIRTIO_CONFIG_S_ACKNOWLEDGE is mostly for hypervisor's
benefit.  It's a basic system to debug the binding process.  If device
cares it can hold the write in a buffer while it's being reset.  If it
does not it can just drop this bit, nothing that's too bad will happen.

> 
> > 
> > I know it's not elegant since there are a bunch of writes like
> > acknowledge and driver, but hey.
> > 
> > How about we just add a non-normative section explaining that trick?
> > 
> > 
> > > > - vatsa
> > > > 
> > > > ---
> > > > 
> > > > Qualcomm Innovation Center, Inc. is submitting the attached "feedback" as a
> > > > non-member to the virtio-dev mailing list for consideration and inclusion.
> > > > 
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> > > > For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
> > > > 


  reply	other threads:[~2021-08-20 11:15 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-23 14:55 [PATCH v1] virtio-mmio: Specify wait needed in driver during reset Srivatsa Vaddagiri
2021-07-26 11:03 ` [virtio-dev] " Cornelia Huck
2021-07-26 11:25   ` Srivatsa Vaddagiri
2021-07-26 11:36     ` [virtio-dev] " Cornelia Huck
2021-07-26 13:19       ` Michael S. Tsirkin
2021-07-26 14:09         ` [virtio-dev] " Cornelia Huck
2021-07-26 14:17         ` Srivatsa Vaddagiri
2021-07-26 19:03           ` Michael S. Tsirkin
2021-07-27  9:52             ` [virtio-dev] " Srivatsa Vaddagiri
2021-07-29 15:21               ` Cornelia Huck
2021-07-30  3:49                 ` Srivatsa Vaddagiri
2021-08-02  6:06             ` Jason Wang
2021-08-11 10:05               ` [virtio-dev] " Srivatsa Vaddagiri
2021-08-16  2:09                 ` Jason Wang
2021-08-16  5:35                   ` Michael S. Tsirkin
     [not found]                     ` <20210816063550.GD5604@quicinc.com>
2021-08-16 11:48                       ` Michael S. Tsirkin
2021-08-16 13:34                         ` Srivatsa Vaddagiri
2021-08-16 14:37                           ` Michael S. Tsirkin
2021-08-16 14:58                             ` Srivatsa Vaddagiri
2021-08-17  5:45                         ` Jason Wang
2021-08-17  7:51                           ` Michael S. Tsirkin
2021-08-17  8:15                             ` Jason Wang
2021-08-17 10:03                             ` Srivatsa Vaddagiri
2021-08-17 12:48                               ` Srivatsa Vaddagiri
2021-08-18  2:57                                 ` Jason Wang
2021-08-18  2:54                               ` Jason Wang
2021-08-18  5:15                                 ` Srivatsa Vaddagiri
2021-08-18  5:40                                   ` Jason Wang
2021-08-18  5:51                                     ` Srivatsa Vaddagiri
2021-08-18  6:04                                       ` Jason Wang
2021-08-18  6:13                                         ` Srivatsa Vaddagiri
2021-08-24 16:57                                           ` Srivatsa Vaddagiri
2021-08-20  3:56                     ` Jason Wang
2021-08-20 11:15                       ` Michael S. Tsirkin [this message]
2021-07-26 13:18   ` Michael S. Tsirkin
2021-07-26 14:13     ` [virtio-dev] " Cornelia Huck

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=20210820071342-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=quic_pratikp@quicinc.com \
    --cc=quic_svaddagi@quicinc.com \
    --cc=quic_tsoni@quicinc.com \
    --cc=svaddagi@qti.qualcomm.com \
    --cc=virtio-dev@lists.oasis-open.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox