From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1765039AbdAJGnc convert rfc822-to-8bit (ORCPT ); Tue, 10 Jan 2017 01:43:32 -0500 Received: from mga06.intel.com ([134.134.136.31]:10903 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1765021AbdAJGn2 (ORCPT ); Tue, 10 Jan 2017 01:43:28 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,342,1477983600"; d="scan'208";a="1081215309" From: "Li, Liang Z" To: "kvm@vger.kernel.org" CC: "virtio-dev@lists.oasis-open.org" , "qemu-devel@nongnu.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "virtualization@lists.linux-foundation.org" , "amit.shah@redhat.com" , "Hansen, Dave" , "cornelia.huck@de.ibm.com" , "pbonzini@redhat.com" , "mst@redhat.com" , "david@redhat.com" , "aarcange@redhat.com" , "dgilbert@redhat.com" , "quintela@redhat.com" Subject: RE: [PATCH v6 kernel 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration Thread-Topic: [PATCH v6 kernel 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration Thread-Index: AQHSW1emdK6TJPACe0mQ3i+0tUVCdaExYqfA Date: Tue, 10 Jan 2017 06:43:23 +0000 Message-ID: References: <1482303148-22059-1-git-send-email-liang.z.li@intel.com> In-Reply-To: <1482303148-22059-1-git-send-email-liang.z.li@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNmFmOTMyMmItYTZhNC00NmE0LWEwYmYtOTQxZDJmODNjZjYyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IjMwMVEyZGc5RSt1eVRXeVdtaXVVZHpybUZmMnhBaGlGYlc5RU1jQnNpcEk9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi guys, Could you help to review this patch set? Thanks! Liang > -----Original Message----- > From: Li, Liang Z > Sent: Wednesday, December 21, 2016 2:52 PM > To: kvm@vger.kernel.org > Cc: virtio-dev@lists.oasis-open.org; qemu-devel@nongnu.org; linux- > mm@kvack.org; linux-kernel@vger.kernel.org; virtualization@lists.linux- > foundation.org; amit.shah@redhat.com; Hansen, Dave; > cornelia.huck@de.ibm.com; pbonzini@redhat.com; mst@redhat.com; > david@redhat.com; aarcange@redhat.com; dgilbert@redhat.com; > quintela@redhat.com; Li, Liang Z > Subject: [PATCH v6 kernel 0/5] Extend virtio-balloon for fast (de)inflating & > fast live migration > > This patch set contains two parts of changes to the virtio-balloon. > > One is the change for speeding up the inflating & deflating process, the main > idea of this optimization is to use {pfn|length} to present the page > information 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%. > > Another change is for speeding up live migration. By skipping process guest's > unused 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 put guest's unused page information in a {pfn|length} array > and send it to host with the virt queue of virtio-balloon. For an idle guest with > 8GB RAM, this can help to shorten the total live migration time from 2Sec to > about 500ms in 10Gbps network environment. For an guest with quite a lot > of page cache and with little unused pages, it's possible to let the guest drop > it's page cache before live migration, this case can benefit from this new > feature too. > > Changes from v5 to v6: > * Drop the bitmap from the virtio ABI, use {pfn|length} only. > * Enhance the API to get the unused page information from mm. > > Changes from v4 to v5: > * Drop the code to get the max_pfn, use another way instead. > * Simplify the API to get the unused page information from mm. > > Changes from v3 to v4: > * Use the new scheme suggested by Dave Hansen to encode the bitmap. > * Add code which is missed in v3 to handle migrate page. > * Free the memory for bitmap intime once the operation is done. > * Address some of the comments in v3. > > Changes from v2 to v3: > * Change the name of 'free page' to 'unused page'. > * Use the scatter & gather bitmap instead of a 1MB page bitmap. > * Fix overwriting the page bitmap after kicking. > * Some of MST's comments for v2. > > Changes from v1 to v2: > * Abandon the patch for dropping page cache. > * Put some structures to uapi head file. > * Use a new way to determine the page bitmap size. > * Use a unified way to send the free page information with the bitmap > * Address the issues referred in MST's comments > > Liang Li (5): > virtio-balloon: rework deflate to add page to a list > virtio-balloon: define new feature bit and head struct > virtio-balloon: speed up inflate/deflate process > virtio-balloon: define flags and head for host request vq > virtio-balloon: tell host vm's unused page info > > drivers/virtio/virtio_balloon.c | 510 > ++++++++++++++++++++++++++++++++---- > include/linux/mm.h | 3 + > include/uapi/linux/virtio_balloon.h | 34 +++ > mm/page_alloc.c | 120 +++++++++ > 4 files changed, 621 insertions(+), 46 deletions(-) > > -- > 1.9.1