From: "Michael S. Tsirkin" <mst@redhat.com>
To: Si-Wei Liu <si-wei.liu@oracle.com>
Cc: Eugenio Perez Martin <eperezma@redhat.com>,
Jonah Palmer <jonah.palmer@oracle.com>,
qemu-devel@nongnu.org, peterx@redhat.com, jasowang@redhat.com,
lvivier@redhat.com, dtatulea@nvidia.com, leiyang@redhat.com,
parav@mellanox.com, sgarzare@redhat.com, lingshan.zhu@intel.com,
boris.ostrovsky@oracle.com
Subject: Re: [PATCH v4 0/7] Move memory listener register to vhost_vdpa_init
Date: Fri, 16 May 2025 06:45:25 -0400 [thread overview]
Message-ID: <20250516064451-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <16aee564-c2a5-418d-a865-935519c870fa@oracle.com>
On Thu, May 15, 2025 at 10:41:45AM -0700, Si-Wei Liu wrote:
>
>
> On 5/14/2025 10:43 PM, Michael S. Tsirkin wrote:
> > On Wed, May 14, 2025 at 05:17:15PM -0700, Si-Wei Liu wrote:
> > > Hi Eugenio,
> > >
> > > On 5/14/2025 8:49 AM, Eugenio Perez Martin wrote:
> > > > On Wed, May 7, 2025 at 8:47 PM Jonah Palmer <jonah.palmer@oracle.com> wrote:
> > > > > Current memory operations like pinning may take a lot of time at the
> > > > > destination. Currently they are done after the source of the migration is
> > > > > stopped, and before the workload is resumed at the destination. This is a
> > > > > period where neigher traffic can flow, nor the VM workload can continue
> > > > > (downtime).
> > > > >
> > > > > We can do better as we know the memory layout of the guest RAM at the
> > > > > destination from the moment that all devices are initializaed. So
> > > > > moving that operation allows QEMU to communicate the kernel the maps
> > > > > while the workload is still running in the source, so Linux can start
> > > > > mapping them.
> > > > >
> > > > > As a small drawback, there is a time in the initialization where QEMU
> > > > > cannot respond to QMP etc. By some testing, this time is about
> > > > > 0.2seconds. This may be further reduced (or increased) depending on the
> > > > > vdpa driver and the platform hardware, and it is dominated by the cost
> > > > > of memory pinning.
> > > > >
> > > > > This matches the time that we move out of the called downtime window.
> > > > > The downtime is measured as checking the trace timestamp from the moment
> > > > > the source suspend the device to the moment the destination starts the
> > > > > eight and last virtqueue pair. For a 39G guest, it goes from ~2.2526
> > > > > secs to 2.0949.
> > > > >
> > > > Hi Jonah,
> > > >
> > > > Could you update this benchmark? I don't think it changed a lot but
> > > > just to be as updated as possible.
> > > Jonah is off this week and will be back until next Tuesday, but I recall he
> > > indeed did some downtime test with VM with 128GB memory before taking off,
> > > which shows obvious improvement from around 10 seconds to 5.8 seconds after
> > > applying this series. Since this is related to update on the cover letter,
> > > would it be okay for you and Jason to ack now and then proceed to Michael
> > > for upcoming merge?
> > >
> > > > I think I cannot ack the series as I sent the first revision. Jason or
> > > > Si-Wei, could you ack it?
> > > Sure, I just give my R-b, this series look good to me. Hopefully Jason can
> > > ack on his own.
> > >
> > > Thanks!
> > > -Siwei
> > I just sent a pull, next one in a week or two, so - no rush.
> All right, should be good to wait. In any case you have to repost a v2 PULL,
> hope this series can be piggy-back'ed as we did extensive tests about it.
> ;-)
>
> -Siwei
You mean "in case"?
> >
> >
> > > > Thanks!
> > > >
> > > > > Future directions on top of this series may include to move more things ahead
> > > > > of the migration time, like set DRIVER_OK or perform actual iterative migration
> > > > > of virtio-net devices.
> > > > >
> > > > > Comments are welcome.
> > > > >
> > > > > This series is a different approach of series [1]. As the title does not
> > > > > reflect the changes anymore, please refer to the previous one to know the
> > > > > series history.
> > > > >
> > > > > This series is based on [2], it must be applied after it.
> > > > >
> > > > > [Jonah Palmer]
> > > > > This series was rebased after [3] was pulled in, as [3] was a prerequisite
> > > > > fix for this series.
> > > > >
> > > > > v4:
> > > > > ---
> > > > > * Add memory listener unregistration to vhost_vdpa_reset_device.
> > > > > * Remove memory listener unregistration from vhost_vdpa_reset_status.
> > > > >
> > > > > v3:
> > > > > ---
> > > > > * Rebase
> > > > >
> > > > > v2:
> > > > > ---
> > > > > * Move the memory listener registration to vhost_vdpa_set_owner function.
> > > > > * Move the iova_tree allocation to net_vhost_vdpa_init.
> > > > >
> > > > > v1 at https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg02136.html.
> > > > >
> > > > > [1] https://patchwork.kernel.org/project/qemu-devel/cover/20231215172830.2540987-1-eperezma@redhat.com/
> > > > > [2] https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg05910.html
> > > > > [3] https://lore.kernel.org/qemu-devel/20250217144936.3589907-1-jonah.palmer@oracle.com/
> > > > >
> > > > > Jonah - note: I'll be on vacation from May 10-19. Will respond to
> > > > > comments when I return.
> > > > >
> > > > > Eugenio Pérez (7):
> > > > > vdpa: check for iova tree initialized at net_client_start
> > > > > vdpa: reorder vhost_vdpa_set_backend_cap
> > > > > vdpa: set backend capabilities at vhost_vdpa_init
> > > > > vdpa: add listener_registered
> > > > > vdpa: reorder listener assignment
> > > > > vdpa: move iova_tree allocation to net_vhost_vdpa_init
> > > > > vdpa: move memory listener register to vhost_vdpa_init
> > > > >
> > > > > hw/virtio/vhost-vdpa.c | 107 +++++++++++++++++++++------------
> > > > > include/hw/virtio/vhost-vdpa.h | 22 ++++++-
> > > > > net/vhost-vdpa.c | 34 +----------
> > > > > 3 files changed, 93 insertions(+), 70 deletions(-)
> > > > >
> > > > > --
> > > > > 2.43.5
> > > > >
next prev parent reply other threads:[~2025-05-16 10:46 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-07 18:46 [PATCH v4 0/7] Move memory listener register to vhost_vdpa_init Jonah Palmer
2025-05-07 18:46 ` [PATCH v4 1/7] vdpa: check for iova tree initialized at net_client_start Jonah Palmer
2025-05-16 1:52 ` Jason Wang
2025-05-07 18:46 ` [PATCH v4 2/7] vdpa: reorder vhost_vdpa_set_backend_cap Jonah Palmer
2025-05-16 1:53 ` Jason Wang
2025-05-16 1:56 ` Jason Wang
2025-05-07 18:46 ` [PATCH v4 3/7] vdpa: set backend capabilities at vhost_vdpa_init Jonah Palmer
2025-05-16 1:57 ` Jason Wang
2025-05-07 18:46 ` [PATCH v4 4/7] vdpa: add listener_registered Jonah Palmer
2025-05-16 2:00 ` Jason Wang
2025-05-07 18:46 ` [PATCH v4 5/7] vdpa: reorder listener assignment Jonah Palmer
2025-05-16 2:01 ` Jason Wang
2025-05-07 18:46 ` [PATCH v4 6/7] vdpa: move iova_tree allocation to net_vhost_vdpa_init Jonah Palmer
2025-05-16 2:07 ` Jason Wang
2025-05-07 18:46 ` [PATCH v4 7/7] vdpa: move memory listener register to vhost_vdpa_init Jonah Palmer
2025-05-15 5:42 ` Michael S. Tsirkin
2025-05-15 17:36 ` Si-Wei Liu
2025-05-20 13:23 ` Jonah Palmer
2025-05-14 1:42 ` [PATCH v4 0/7] Move " Lei Yang
2025-05-14 15:49 ` Eugenio Perez Martin
2025-05-15 0:17 ` Si-Wei Liu
2025-05-15 5:43 ` Michael S. Tsirkin
2025-05-15 17:41 ` Si-Wei Liu
2025-05-16 10:45 ` Michael S. Tsirkin [this message]
2025-05-15 8:30 ` Eugenio Perez Martin
2025-05-16 1:49 ` Jason Wang
2025-05-20 13:27 ` Jonah Palmer
2025-05-14 23:00 ` Si-Wei Liu
2025-05-16 1:47 ` Jason Wang
2025-05-16 1:51 ` Jason Wang
2025-05-16 6:40 ` Markus Armbruster
2025-05-16 19:09 ` Si-Wei Liu
2025-05-26 9:16 ` Markus Armbruster
2025-05-29 7:57 ` Si-Wei Liu
2025-06-02 8:08 ` Markus Armbruster
2025-06-02 8:29 ` Markus Armbruster
2025-06-06 16:21 ` Jonah Palmer
2025-06-26 12:08 ` Markus Armbruster
2025-07-02 19:31 ` Jonah Palmer
2025-07-04 15:00 ` Markus Armbruster
2025-07-07 13:21 ` Jonah Palmer
2025-07-08 8:17 ` Markus Armbruster
2025-07-09 19:57 ` Jonah Palmer
2025-07-10 5:31 ` Markus Armbruster
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=20250516064451-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=boris.ostrovsky@oracle.com \
--cc=dtatulea@nvidia.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=jonah.palmer@oracle.com \
--cc=leiyang@redhat.com \
--cc=lingshan.zhu@intel.com \
--cc=lvivier@redhat.com \
--cc=parav@mellanox.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
--cc=si-wei.liu@oracle.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.