From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60383) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c0yED-0006G6-7X for qemu-devel@nongnu.org; Sun, 30 Oct 2016 18:05:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c0yE9-0000se-7X for qemu-devel@nongnu.org; Sun, 30 Oct 2016 18:05:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51198) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c0yE9-0000sO-05 for qemu-devel@nongnu.org; Sun, 30 Oct 2016 18:05:17 -0400 Date: Mon, 31 Oct 2016 00:05:13 +0200 From: "Michael S. Tsirkin" Message-ID: <20161031000425-mutt-send-email-mst@kernel.org> References: <1477032504-12745-1-git-send-email-liang.z.li@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1477032504-12745-1-git-send-email-liang.z.li@intel.com> Subject: Re: [Qemu-devel] [PATCH qemu v3 0/6] Fast (de)inflating & fast live migration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Liang Li Cc: qemu-devel@nongnu.org, pbonzini@redhat.com, quintela@redhat.com, amit.shah@redhat.com, kvm@vger.kernel.org, dgilbert@redhat.com, thuth@redhat.com, virtio-dev@lists.oasis-open.org, dave.hansen@intel.com On Fri, Oct 21, 2016 at 02:48:18PM +0800, Liang Li wrote: > This patch set intends to do two optimizations, one is to speed up > the (de)inflating process of virtio balloon, and another one which > is to speed up the live migration process. We put them together > because both of them are required to change the virtio balloon spec. > > The main idea of speeding up the (de)inflating process is to use > bitmap to send the page information to host instead of the PFNs, to > reduce the overhead of virtio data transmission, address translation > and madvise(). This can help to improve the performance by about 85%. > > The idea of speeding up live migration is to skip process guest's > free pages in the first round of data copy, to reduce needless > data processing, this can help to save quite a lot of CPU cycles and > network bandwidth. We get guest's free page information through the > virt queue of virtio-balloon, and filter out these free pages during > live migration. For an idle 8GB guest, this can help to shorten the > total live migration time from 2Sec to about 500ms in the 10Gbps > network environment. So it looks like the host/guest interface here is still in flux, I think it's best to defer this to QEMU 2.9. If you think otherwise, pls let me know. > Changes from v2 to v3: > * Merged two patches for kernel head file updating into one > * Removed one patch which was unrelated with this feature > * Removed the patch to migrate the vq elem, use a new way instead > > Changes from v1 to v2: > * Abandon the patch for dropping page cache. > * Get a struct from vq instead of separate variables. > * Use two separate APIs to request free pages and query the status. > * Changed the virtio balloon interface. > * Addressed some of the comments of v1. > > Liang Li (6): > virtio-balloon: update linux head file > virtio-balloon: speed up inflating & deflating process > balloon: get free page info from guest > bitmap: Add a new bitmap_move function > kvm: Add two new arch specific functions > migration: skip free pages during live migration > > balloon.c | 47 +++- > hw/virtio/virtio-balloon.c | 273 ++++++++++++++++++++++-- > include/hw/virtio/virtio-balloon.h | 18 +- > include/qemu/bitmap.h | 13 ++ > include/standard-headers/linux/virtio_balloon.h | 41 ++++ > include/sysemu/balloon.h | 18 +- > include/sysemu/kvm.h | 18 ++ > migration/ram.c | 86 ++++++++ > target-arm/kvm.c | 14 ++ > target-i386/kvm.c | 37 ++++ > target-mips/kvm.c | 14 ++ > target-ppc/kvm.c | 14 ++ > target-s390x/kvm.c | 14 ++ > 13 files changed, 581 insertions(+), 26 deletions(-) > > -- > 1.8.3.1