From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:39025) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UILZP-0001h7-7m for qemu-devel@nongnu.org; Wed, 20 Mar 2013 12:09:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UILZK-00030O-H7 for qemu-devel@nongnu.org; Wed, 20 Mar 2013 12:08:55 -0400 Received: from e8.ny.us.ibm.com ([32.97.182.138]:47539) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UILZK-000307-D6 for qemu-devel@nongnu.org; Wed, 20 Mar 2013 12:08:50 -0400 Received: from /spool/local by e8.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 20 Mar 2013 12:08:48 -0400 Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by d01dlp02.pok.ibm.com (Postfix) with ESMTP id 6C51E6E8040 for ; Wed, 20 Mar 2013 12:08:42 -0400 (EDT) Received: from d03av06.boulder.ibm.com (d03av06.boulder.ibm.com [9.17.195.245]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r2KG8hRi308114 for ; Wed, 20 Mar 2013 12:08:44 -0400 Received: from d03av06.boulder.ibm.com (loopback [127.0.0.1]) by d03av06.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r2KGBL0l031752 for ; Wed, 20 Mar 2013 10:11:21 -0600 Message-ID: <5149DF08.4090209@linux.vnet.ibm.com> Date: Wed, 20 Mar 2013 12:08:40 -0400 From: "Michael R. Hines" MIME-Version: 1.0 References: <51487F68.2060305@linux.vnet.ibm.com> <20130319151606.GA13649@redhat.com> <51488521.4010909@linux.vnet.ibm.com> <20130319153658.GA14317@redhat.com> <51489BC3.3030504@linux.vnet.ibm.com> <51489D05.2000400@redhat.com> <5148A2F6.1070206@linux.vnet.ibm.com> <5148A5FB.1000209@redhat.com> <20130320130754.GA9777@redhat.com> <5149D2A4.2070106@linux.vnet.ibm.com> <20130320155514.GA20701@redhat.com> In-Reply-To: <20130320155514.GA20701@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH RDMA support v4: 03/10] more verbose documentation of the RDMA transport List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, owasserm@redhat.com, abali@us.ibm.com, mrhines@us.ibm.com, gokul@us.ibm.com, Paolo Bonzini On 03/20/2013 11:55 AM, Michael S. Tsirkin wrote: > On Wed, Mar 20, 2013 at 11:15:48AM -0400, Michael R. Hines wrote: >> OK, can we make a deal? =) >> >> I'm willing to put in the work to perform the dynamic registration >> on the destination side, >> but let's go a step further and piggy-back on the effort: >> >> We need to couple this registration with a very small modification >> to save_ram_block(): >> >> Currently, save_ram_block does: >> >> 1. is RDMA turned on? if yes, unconditionally add to next chunk >> (will be made to >> dynamically register on destination) >> 2. is_dup_page() ? if yes, skip >> 3. in xbzrle cache? if yes, skip >> 4. still not sent? if yes, transmit >> >> I propose adding a "stub" function that adds: >> >> 0. is page mapped? if yes, skip (always returns true for now) >> 1. same >> 2. same >> 3. same >> 4. same >> >> Then, later, in a separate patch, I can implement /dev/pagemap support. >> >> When that's done, RDMA dynamic registration will actually take effect and >> benefit from actually verifying that the page is mapped or not. >> >> - Michael > Mapped into guest? You mean e.g. for ballooning? > No, not just ballooning. Overcommit (i.e. cgroups). Anytime cgroups kicks out a page (or anytime the balloon kicks in), the page would become unmapped. The make dynamic registration useful, we have to actually have something in place in the future that knows how to *check* if a page is unmapped from the virtual machine, either because it has never been dirtied before (and might be pointing to the zero page) or because it has been madvised() out or has been detatched because of a cgroup limit. - Michael