From: Stefano Garzarella <sgarzare@redhat.com>
To: "Eugenio Pérez" <eperezma@redhat.com>
Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org, Daniel Daly <dandaly0@gmail.com>,
virtualization@lists.linux-foundation.org,
Liran Alon <liralon@gmail.com>, Eli Cohen <eli@mellanox.com>,
Nitin Shrivastav <nitin.shrivastav@broadcom.com>,
Alex Barba <alex.barba@broadcom.com>,
Christophe Fontaine <cfontain@redhat.com>,
Lee Ballard <ballle98@gmail.com>,
Lars Ganrot <lars.ganrot@gmail.com>,
Rob Miller <rob.miller@broadcom.com>,
Howard Cai <howard.cai@gmail.com>,
Parav Pandit <parav@mellanox.com>, vm <vmireyno@marvell.com>,
Salil Mehta <mehta.salil.lnk@gmail.com>,
Stephen Finucane <stephenfin@redhat.com>,
Xiao W Wang <xiao.w.wang@intel.com>,
Sean Mooney <smooney@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Jim Harford <jim.harford@broadcom.com>,
Dmytro Kazantsev <dmytro.kazantsev@gmail.com>,
Siwei Liu <loseweigh@gmail.com>,
Harpreet Singh Anand <hanand@xilinx.com>,
Michael Lilja <ml@napatech.com>, Max Gurtovoy <maxgu14@gmail.com>
Subject: Re: [RFC PATCH 00/27] vDPA software assisted live migration
Date: Fri, 27 Nov 2020 16:44:05 +0100 [thread overview]
Message-ID: <20201127154405.uobkujyhd7fuv7nx@steredhat> (raw)
In-Reply-To: <20201120185105.279030-1-eperezma@redhat.com>
On Fri, Nov 20, 2020 at 07:50:38PM +0100, Eugenio Pérez wrote:
>This series enable vDPA software assisted live migration for vhost-net
>devices. This is a new method of vhost devices migration: Instead of
>relay on vDPA device's dirty logging capability, SW assisted LM
>intercepts dataplane, forwarding the descriptors between VM and device.
>
>In this migration mode, qemu offers a new vring to the device to
>read and write into, and disable vhost notifiers, processing guest and
>vhost notifications in qemu. On used buffer relay, qemu will mark the
>dirty memory as with plain virtio-net devices. This way, devices does
>not need to have dirty page logging capability.
>
>This series is a POC doing SW LM for vhost-net devices, which already
>have dirty page logging capabilities. None of the changes have actual
>effect with current devices until last two patches (26 and 27) are
>applied, but they can be rebased on top of any other. These checks the
>device to meet all requirements, and disable vhost-net devices logging
>so migration goes through SW LM. This last patch is not meant to be
>applied in the final revision, it is in the series just for testing
>purposes.
>
>For use SW assisted LM these vhost-net devices need to be instantiated:
>* With IOMMU (iommu_platform=on,ats=on)
>* Without event_idx (event_idx=off)
>
>Just the notification forwarding (with no descriptor relay) can be
>achieved with patches 7 and 9, and starting migration. Partial applies
>between 13 and 24 will not work while migrating on source, and patch
>25 is needed for the destination to resume network activity.
>
>It is based on the ideas of DPDK SW assisted LM, in the series of
>DPDK's https://patchwork.dpdk.org/cover/48370/ .
>
>Comments are welcome.
Hi Eugenio,
I took a look and the idea of the shadow queue I think is the right way.
It's very similar to what we thought with Stefan for io_uring
passthrough and vdpa-blk.
IIUC, when the migrations starts, the notifications from the guest to
vhost are disabled, so QEMU starts to intercept them through the
custom_handler installed in virtio-net (we need to understand how to
generalize this).
At this point QEMU starts to use the shadows queues and exposes them to
vhost.
The opposite is done for vhost to guest notifications, where
vhost_handle_call is installed to masked_notifier to intercept the
notification.
I hope to give better feedback when I get a complete overview ;-)
Anyway, as Jason suggested, we should split this series, so maybe we can
merge some preparations patches (e.g. 1, 11, 21, 22) regardless the
other patches.
Thanks,
Stefano
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2020-11-27 15:44 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20201120185105.279030-1-eperezma@redhat.com>
2020-11-25 7:08 ` [RFC PATCH 00/27] vDPA software assisted live migration Jason Wang
[not found] ` <CAJaqyWf+6yoMHJuLv=QGLMP4egmdm722=V2kKJ_aiQAfCCQOFw@mail.gmail.com>
2020-11-26 3:07 ` Jason Wang
[not found] ` <20201120185105.279030-24-eperezma@redhat.com>
2020-11-27 15:29 ` [RFC PATCH 23/27] vhost: unmap qemu's shadow virtqueues on sw " Stefano Garzarella
2020-11-27 15:44 ` Stefano Garzarella [this message]
[not found] ` <20201120185105.279030-3-eperezma@redhat.com>
2020-12-07 16:19 ` [RFC PATCH 02/27] vhost: Add device callback in vhost_migration_log Stefan Hajnoczi
[not found] ` <20201120185105.279030-5-eperezma@redhat.com>
2020-12-07 16:43 ` [RFC PATCH 04/27] vhost: add vhost_kernel_set_vring_enable Stefan Hajnoczi
[not found] ` <CAJaqyWd5oAJ4kJOhyDz+1KNvwzqJi3NO+5Z7X6W5ju2Va=LTMQ@mail.gmail.com>
2020-12-09 16:08 ` Stefan Hajnoczi
[not found] ` <20201120185105.279030-6-eperezma@redhat.com>
2020-12-07 16:52 ` [RFC PATCH 05/27] vhost: Add hdev->dev.sw_lm_vq_handler Stefan Hajnoczi
[not found] ` <CAJaqyWfSUHD0MU=1yfU1N6pZ4TU7prxyoG6NY-VyNGt=MO9H4g@mail.gmail.com>
2020-12-10 11:30 ` Stefan Hajnoczi
[not found] ` <20201120185105.279030-7-eperezma@redhat.com>
2020-12-07 16:58 ` [RFC PATCH 06/27] virtio: Add virtio_queue_get_used_notify_split Stefan Hajnoczi
[not found] ` <CAJaqyWc4oLzL02GKpPSwEGRxK+UxjOGBAPLzrgrgKRZd9C81GA@mail.gmail.com>
2021-03-02 11:22 ` Stefan Hajnoczi
[not found] ` <CAJaqyWd0iRUUW5Hu=U3mwQ4f43kA=bse3EkN4+QauFR4BJwObQ@mail.gmail.com>
2021-03-08 10:46 ` Stefan Hajnoczi
[not found] ` <20201120185105.279030-8-eperezma@redhat.com>
2020-12-07 17:42 ` [RFC PATCH 07/27] vhost: Route guest->host notification through qemu Stefan Hajnoczi
[not found] ` <CAJaqyWfiMsRP9FgSv7cOj=3jHx=DJS7hRJTMbRcTTHHWng0eKg@mail.gmail.com>
2020-12-10 11:50 ` Stefan Hajnoczi
[not found] ` <20201120185105.279030-9-eperezma@redhat.com>
2020-12-08 7:20 ` [RFC PATCH 08/27] vhost: Add a flag for software assisted Live Migration Stefan Hajnoczi
[not found] ` <20201120185105.279030-10-eperezma@redhat.com>
2020-12-08 7:34 ` [RFC PATCH 09/27] vhost: Route host->guest notification through qemu Stefan Hajnoczi
[not found] ` <20201120185105.279030-11-eperezma@redhat.com>
2020-12-08 7:49 ` [RFC PATCH 10/27] vhost: Allocate shadow vring Stefan Hajnoczi
2020-12-08 8:17 ` Stefan Hajnoczi
[not found] ` <20201120185105.279030-14-eperezma@redhat.com>
2020-12-08 8:16 ` [RFC PATCH 13/27] vhost: Send buffers to device Stefan Hajnoczi
[not found] ` <CAJaqyWf13ta5MtzmTUz2N5XnQ+ebqFPYAivdggL64LEQAf=y+A@mail.gmail.com>
2020-12-10 11:55 ` Stefan Hajnoczi
[not found] ` <20201120185105.279030-17-eperezma@redhat.com>
2020-12-08 8:25 ` [RFC PATCH 16/27] virtio: Expose virtqueue_alloc_element Stefan Hajnoczi
[not found] ` <CAJaqyWdN7iudf8mDN4k4Fs9j1x+ztZARuBbinPHD3ZQSMH1pyQ@mail.gmail.com>
2020-12-10 11:57 ` Stefan Hajnoczi
[not found] ` <20201120185105.279030-19-eperezma@redhat.com>
2020-12-08 8:41 ` [RFC PATCH 18/27] vhost: add vhost_vring_poll_rcu Stefan Hajnoczi
[not found] ` <20201120185105.279030-21-eperezma@redhat.com>
2020-12-08 8:50 ` [RFC PATCH 20/27] vhost: Return used buffers Stefan Hajnoczi
[not found] ` <20201120185105.279030-25-eperezma@redhat.com>
2020-12-08 9:02 ` [RFC PATCH 24/27] vhost: iommu changes Stefan Hajnoczi
2020-12-08 9:37 ` [RFC PATCH 00/27] vDPA software assisted live migration Stefan Hajnoczi
2020-12-09 9:26 ` Jason Wang
2020-12-09 15:57 ` Stefan Hajnoczi
2020-12-10 9:12 ` Jason Wang
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=20201127154405.uobkujyhd7fuv7nx@steredhat \
--to=sgarzare@redhat.com \
--cc=alex.barba@broadcom.com \
--cc=ballle98@gmail.com \
--cc=cfontain@redhat.com \
--cc=dandaly0@gmail.com \
--cc=dmytro.kazantsev@gmail.com \
--cc=eli@mellanox.com \
--cc=eperezma@redhat.com \
--cc=hanand@xilinx.com \
--cc=howard.cai@gmail.com \
--cc=jim.harford@broadcom.com \
--cc=kvm@vger.kernel.org \
--cc=lars.ganrot@gmail.com \
--cc=liralon@gmail.com \
--cc=loseweigh@gmail.com \
--cc=maxgu14@gmail.com \
--cc=mehta.salil.lnk@gmail.com \
--cc=ml@napatech.com \
--cc=mst@redhat.com \
--cc=nitin.shrivastav@broadcom.com \
--cc=parav@mellanox.com \
--cc=qemu-devel@nongnu.org \
--cc=rob.miller@broadcom.com \
--cc=smooney@redhat.com \
--cc=stefanha@redhat.com \
--cc=stephenfin@redhat.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=vmireyno@marvell.com \
--cc=xiao.w.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox