RE: [RFC qemu 0/4] A PV solution for live migration optimization
From: Li, Liang Z
Date: Tue Mar 08 2016 - 08:11:37 EST
> Subject: Re: [RFC qemu 0/4] A PV solution for live migration optimization
> On (Thu) 03 Mar 2016 [18:44:24], Liang Li wrote:
> > The current QEMU live migration implementation mark the all the
> > guest's RAM pages as dirtied in the ram bulk stage, all these pages
> > will be processed and that takes quit a lot of CPU cycles.
> > From guest's point of view, it doesn't care about the content in free
> > pages. We can make use of this fact and skip processing the free pages
> > in the ram bulk stage, it can save a lot CPU cycles and reduce the
> > network traffic significantly while speed up the live migration
> > process obviously.
> > This patch set is the QEMU side implementation.
> > The virtio-balloon is extended so that QEMU can get the free pages
> > information from the guest through virtio.
> > After getting the free pages information (a bitmap), QEMU can use it
> > to filter out the guest's free pages in the ram bulk stage. This make
> > the live migration process much more efficient.
> > This RFC version doesn't take the post-copy and RDMA into
> > consideration, maybe both of them can benefit from this PV solution by
> > with some extra modifications.
> I like the idea, just have to prove (review) and test it a lot to ensure we don't
> end up skipping pages that matter.
> However, there are a couple of points:
> In my opinion, the information that's exchanged between the guest and the
> host should be exchanged over a virtio-serial channel rather than virtio-
> balloon. First, there's nothing related to the balloon here.
> It just happens to be memory info. Second, I would never enable balloon in
> a guest that I want to be performance-sensitive. So even if you add this as
> part of balloon, you'll find no one is using this solution.
> Secondly, I suggest virtio-serial, because it's meant exactly to exchange free-
> flowing information between a host and a guest, and you don't need to
> extend any part of the protocol for it (hence no changes necessary to the
> spec). You can see how spice, vnc, etc., use virtio-serial to exchange data.
I don't like to use the virtio-balloon too, and it's confusing.
It's grate if the virtio-serial can be used, I will take a look at it.
Thanks for your suggestion!