From: "Michael S. Tsirkin" <mst@redhat.com> To: Paolo Bonzini <pbonzini@redhat.com> Cc: "Liang, Cunming" <cunming.liang@intel.com>, "Bie, Tiwei" <tiwei.bie@intel.com>, "jasowang@redhat.com" <jasowang@redhat.com>, "alex.williamson@redhat.com" <alex.williamson@redhat.com>, "stefanha@redhat.com" <stefanha@redhat.com>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, "virtio-dev@lists.oasis-open.org" <virtio-dev@lists.oasis-open.org>, "Daly, Dan" <dan.daly@intel.com>, "Tan, Jianfeng" <jianfeng.tan@intel.com>, "Wang, Zhihong" <zhihong.wang@intel.com>, "Wang, Xiao W" <xiao.w.wang@intel.com> Subject: Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers Date: Thu, 19 Apr 2018 18:19:09 +0300 [thread overview] Message-ID: <20180419180912-mutt-send-email-mst@kernel.org> (raw) In-Reply-To: <c41439d6-69b7-474a-530f-07ffb5f1b9e6@redhat.com> On Thu, Apr 19, 2018 at 03:02:40PM +0200, Paolo Bonzini wrote: > On 19/04/2018 14:43, Liang, Cunming wrote: > >> 2. Memory barriers. Right now after updating the avail idx, > >> virtio does smp_wmb() and then the MMIO write. Normal hardware > >> drivers do wmb() which is an sfence. Can a PCI device read bypass > >> index write and see a stale index value? > > > > A compiler barrier is enough on strongly-ordered memory platform. As > > it doesn't re-order store, PCI device won't see a stale index value. > > But a weakly-ordered memory needs sfence. > > That is complicated then. We need to define a feature bit and (in the > Linux driver) propagate it to vring_create_virtqueue's weak_barrier > argument. However: > > - if we make it 1 when weak barriers are needed, the device also needs > to nack feature negotiation (not allow setting the FEATURES_OK) if the > bit is not set by the driver. > However, that is not enough. Live > migration assumes that it is okay to migrate a virtual machine from a > source that doesn't support a feature to a destination that supports it. > In this case, it would assume that it is okay to migrate from software > virtio to hardware virtio. This is wrong because the destination would > use weak barriers You can't migrate between systems with different sets of device features right now. > - if we make it 1 when strong barriers are enough, software virtio > devices needs to be updated to expose the bit. This works, including > live migration, but updated drivers will now go slower when run against > an old device that doesn't know the feature bit. > > Maybe bump the PCI revision, so that only the new revision has the bit? > > Thanks, > > Paolo As a first step, if you want to migrate to a HW offloaded solution then you need to enable the feature. It does mean it will go a bit slower when run with software, so it's only good if most systems in your cluster do have the HW offload. I think we can start by getting that working and think about ways to improve down the road. That's the usecase we designed FEATURES_OK for though, so I do think/hope it's enough and we don't need to play with revisions. -- MST
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com> To: Paolo Bonzini <pbonzini@redhat.com> Cc: "Liang, Cunming" <cunming.liang@intel.com>, "Bie, Tiwei" <tiwei.bie@intel.com>, "jasowang@redhat.com" <jasowang@redhat.com>, "alex.williamson@redhat.com" <alex.williamson@redhat.com>, "stefanha@redhat.com" <stefanha@redhat.com>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, "virtio-dev@lists.oasis-open.org" <virtio-dev@lists.oasis-open.org>, "Daly, Dan" <dan.daly@intel.com>, "Tan, Jianfeng" <jianfeng.tan@intel.com>, "Wang, Zhihong" <zhihong.wang@intel.com>, "Wang, Xiao W" <xiao.w.wang@intel.com> Subject: Re: [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers Date: Thu, 19 Apr 2018 18:19:09 +0300 [thread overview] Message-ID: <20180419180912-mutt-send-email-mst@kernel.org> (raw) In-Reply-To: <c41439d6-69b7-474a-530f-07ffb5f1b9e6@redhat.com> On Thu, Apr 19, 2018 at 03:02:40PM +0200, Paolo Bonzini wrote: > On 19/04/2018 14:43, Liang, Cunming wrote: > >> 2. Memory barriers. Right now after updating the avail idx, > >> virtio does smp_wmb() and then the MMIO write. Normal hardware > >> drivers do wmb() which is an sfence. Can a PCI device read bypass > >> index write and see a stale index value? > > > > A compiler barrier is enough on strongly-ordered memory platform. As > > it doesn't re-order store, PCI device won't see a stale index value. > > But a weakly-ordered memory needs sfence. > > That is complicated then. We need to define a feature bit and (in the > Linux driver) propagate it to vring_create_virtqueue's weak_barrier > argument. However: > > - if we make it 1 when weak barriers are needed, the device also needs > to nack feature negotiation (not allow setting the FEATURES_OK) if the > bit is not set by the driver. > However, that is not enough. Live > migration assumes that it is okay to migrate a virtual machine from a > source that doesn't support a feature to a destination that supports it. > In this case, it would assume that it is okay to migrate from software > virtio to hardware virtio. This is wrong because the destination would > use weak barriers You can't migrate between systems with different sets of device features right now. > - if we make it 1 when strong barriers are enough, software virtio > devices needs to be updated to expose the bit. This works, including > live migration, but updated drivers will now go slower when run against > an old device that doesn't know the feature bit. > > Maybe bump the PCI revision, so that only the new revision has the bit? > > Thanks, > > Paolo As a first step, if you want to migrate to a HW offloaded solution then you need to enable the feature. It does mean it will go a bit slower when run with software, so it's only good if most systems in your cluster do have the HW offload. I think we can start by getting that working and think about ways to improve down the road. That's the usecase we designed FEATURES_OK for though, so I do think/hope it's enough and we don't need to play with revisions. -- MST --------------------------------------------------------------------- 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-04-19 15:19 UTC|newest] Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-12 15:12 [Qemu-devel] [PATCH v3 0/6] Extend vhost-user to support registering external host notifiers Tiwei Bie 2018-04-12 15:12 ` [virtio-dev] " Tiwei Bie 2018-04-12 15:12 ` [Qemu-devel] [PATCH v3 1/6] vhost-user: add Net prefix to internal state structure Tiwei Bie 2018-04-12 15:12 ` [virtio-dev] " Tiwei Bie 2018-04-12 15:12 ` [Qemu-devel] [PATCH v3 2/6] vhost-user: introduce shared vhost-user state Tiwei Bie 2018-04-12 15:12 ` [virtio-dev] " Tiwei Bie 2018-05-23 13:44 ` [Qemu-devel] " Michael S. Tsirkin 2018-05-23 13:44 ` [virtio-dev] " Michael S. Tsirkin 2018-05-23 15:36 ` [Qemu-devel] " Michael S. Tsirkin 2018-05-23 15:36 ` [virtio-dev] " Michael S. Tsirkin 2018-05-23 15:43 ` [Qemu-devel] " Michael S. Tsirkin 2018-05-23 15:43 ` [virtio-dev] " Michael S. Tsirkin 2018-05-23 23:21 ` [Qemu-devel] " Tiwei Bie 2018-05-23 23:21 ` [virtio-dev] " Tiwei Bie 2018-05-24 2:24 ` [Qemu-devel] " Tiwei Bie 2018-05-24 2:24 ` [virtio-dev] " Tiwei Bie 2018-05-24 7:03 ` [Qemu-devel] " Tiwei Bie 2018-05-24 7:03 ` [virtio-dev] " Tiwei Bie 2018-05-24 10:59 ` [Qemu-devel] " Tiwei Bie 2018-05-24 10:59 ` [virtio-dev] " Tiwei Bie 2018-05-24 13:55 ` [Qemu-devel] " Michael S. Tsirkin 2018-05-24 13:55 ` [virtio-dev] " Michael S. Tsirkin 2018-05-24 14:54 ` [Qemu-devel] " Tiwei Bie 2018-05-24 14:54 ` Tiwei Bie 2018-05-24 14:30 ` [Qemu-devel] " Michael S. Tsirkin 2018-05-24 14:30 ` [virtio-dev] " Michael S. Tsirkin 2018-05-24 15:22 ` [Qemu-devel] " Tiwei Bie 2018-05-24 15:22 ` [virtio-dev] " Tiwei Bie 2018-05-24 13:50 ` [Qemu-devel] " Michael S. Tsirkin 2018-05-24 13:50 ` [virtio-dev] " Michael S. Tsirkin 2018-04-12 15:12 ` [Qemu-devel] [PATCH v3 3/6] vhost-user: support receiving file descriptors in slave_read Tiwei Bie 2018-04-12 15:12 ` [virtio-dev] " Tiwei Bie 2018-05-23 21:25 ` [Qemu-devel] " Michael S. Tsirkin 2018-05-23 21:25 ` [virtio-dev] " Michael S. Tsirkin 2018-05-23 23:12 ` [Qemu-devel] " Tiwei Bie 2018-05-23 23:12 ` Tiwei Bie 2018-05-24 13:48 ` [Qemu-devel] " Michael S. Tsirkin 2018-05-24 13:48 ` Michael S. Tsirkin 2018-05-24 14:56 ` [Qemu-devel] " Tiwei Bie 2018-05-24 14:56 ` Tiwei Bie 2018-04-12 15:12 ` [Qemu-devel] [PATCH v3 4/6] virtio: support setting memory region based host notifier Tiwei Bie 2018-04-12 15:12 ` [virtio-dev] " Tiwei Bie 2018-04-12 15:12 ` [Qemu-devel] [PATCH v3 5/6] vhost: allow backends to filter memory sections Tiwei Bie 2018-04-12 15:12 ` [virtio-dev] " Tiwei Bie 2018-04-12 15:12 ` [Qemu-devel] [PATCH v3 6/6] vhost-user: support registering external host notifiers Tiwei Bie 2018-04-12 15:12 ` [virtio-dev] " Tiwei Bie 2018-04-18 16:34 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-18 16:34 ` [virtio-dev] " Michael S. Tsirkin 2018-04-19 11:14 ` [Qemu-devel] " Tiwei Bie 2018-04-19 11:14 ` [virtio-dev] " Tiwei Bie 2018-04-19 12:43 ` [Qemu-devel] " Liang, Cunming 2018-04-19 12:43 ` [virtio-dev] " Liang, Cunming 2018-04-19 13:02 ` [Qemu-devel] " Paolo Bonzini 2018-04-19 13:02 ` Paolo Bonzini 2018-04-19 15:19 ` Michael S. Tsirkin [this message] 2018-04-19 15:19 ` Michael S. Tsirkin 2018-04-19 15:51 ` [Qemu-devel] " Paolo Bonzini 2018-04-19 15:51 ` Paolo Bonzini 2018-04-19 15:59 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-19 15:59 ` Michael S. Tsirkin 2018-04-19 16:07 ` [Qemu-devel] " Paolo Bonzini 2018-04-19 16:07 ` Paolo Bonzini 2018-04-19 16:48 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-19 16:48 ` Michael S. Tsirkin 2018-04-19 16:24 ` [Qemu-devel] " Liang, Cunming 2018-04-19 16:24 ` Liang, Cunming 2018-04-19 16:55 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-19 16:55 ` Michael S. Tsirkin 2018-04-20 3:01 ` [Qemu-devel] " Liang, Cunming 2018-04-20 3:01 ` Liang, Cunming 2018-04-19 15:42 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-19 15:42 ` [virtio-dev] " Michael S. Tsirkin 2018-04-19 15:52 ` [Qemu-devel] " Paolo Bonzini 2018-04-19 15:52 ` [virtio-dev] " Paolo Bonzini 2018-04-19 16:34 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-19 16:34 ` [virtio-dev] " Michael S. Tsirkin 2018-04-19 16:52 ` [Qemu-devel] " Liang, Cunming 2018-04-19 16:52 ` [virtio-dev] " Liang, Cunming 2018-04-19 16:59 ` [Qemu-devel] " Paolo Bonzini 2018-04-19 16:59 ` Paolo Bonzini 2018-04-19 17:27 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-19 17:27 ` Michael S. Tsirkin 2018-04-19 17:35 ` [Qemu-devel] " Paolo Bonzini 2018-04-19 17:35 ` Paolo Bonzini 2018-04-19 17:39 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-19 17:39 ` Michael S. Tsirkin 2018-04-19 17:00 ` [Qemu-devel] " Michael S. Tsirkin 2018-04-19 17:00 ` [virtio-dev] " Michael S. Tsirkin 2018-04-19 23:05 ` [Qemu-devel] " Liang, Cunming 2018-04-19 23:05 ` [virtio-dev] " Liang, Cunming 2018-04-19 16:27 ` [Qemu-devel] " Liang, Cunming 2018-04-19 16:27 ` [virtio-dev] " Liang, Cunming 2018-05-02 10:32 ` [Qemu-devel] " Tiwei Bie 2018-05-02 10:32 ` [virtio-dev] " Tiwei Bie 2018-05-16 1:41 ` [Qemu-devel] [PATCH v3 0/6] Extend vhost-user to " Michael S. Tsirkin 2018-05-16 1:41 ` [virtio-dev] " Michael S. Tsirkin 2018-05-16 1:56 ` [Qemu-devel] " Tiwei Bie 2018-05-16 1:56 ` [virtio-dev] " Tiwei Bie
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=20180419180912-mutt-send-email-mst@kernel.org \ --to=mst@redhat.com \ --cc=alex.williamson@redhat.com \ --cc=cunming.liang@intel.com \ --cc=dan.daly@intel.com \ --cc=jasowang@redhat.com \ --cc=jianfeng.tan@intel.com \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=stefanha@redhat.com \ --cc=tiwei.bie@intel.com \ --cc=virtio-dev@lists.oasis-open.org \ --cc=xiao.w.wang@intel.com \ --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: linkBe 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.