[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160308111343.GM15443@grmbl.mre>
Date: Tue, 8 Mar 2016 16:43:43 +0530
From: Amit Shah <amit.shah@...hat.com>
To: Liang Li <liang.z.li@...el.com>
Cc: quintela@...hat.com, qemu-devel@...gnu.org,
linux-kernel@...r.kernel.org, mst@...hat.com,
akpm@...ux-foundation.org, pbonzini@...hat.com, rth@...ddle.net,
ehabkost@...hat.com, linux-mm@...ck.org,
virtualization@...ts.linux-foundation.org, kvm@...r.kernel.org,
dgilbert@...hat.com
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.
Amit
Powered by blists - more mailing lists