From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754263AbcDVN6r (ORCPT ); Fri, 22 Apr 2016 09:58:47 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50310 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754221AbcDVN6p (ORCPT ); Fri, 22 Apr 2016 09:58:45 -0400 Date: Fri, 22 Apr 2016 16:58:39 +0300 From: "Michael S. Tsirkin" To: "Dr. David Alan Gilbert" Cc: "Li, Liang Z" , Rik van Riel , "viro@zeniv.linux.org.uk" , "linux-kernel@vger.kernel.org" , "quintela@redhat.com" , "amit.shah@redhat.com" , "pbonzini@redhat.com" , "linux-mm@kvack.org" , "kvm@vger.kernel.org" , "qemu-devel@nongnu.org" , "agraf@suse.de" , "borntraeger@de.ibm.com" Subject: Re: [PATCH kernel 1/2] mm: add the related functions to build the free page bitmap Message-ID: <20160422164936-mutt-send-email-mst@redhat.com> References: <1461076474-3864-1-git-send-email-liang.z.li@intel.com> <1461076474-3864-2-git-send-email-liang.z.li@intel.com> <1461077659.3200.8.camel@redhat.com> <20160419191111-mutt-send-email-mst@redhat.com> <20160422094837.GC2239@work-vm> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160422094837.GC2239@work-vm> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 22, 2016 at 10:48:38AM +0100, Dr. David Alan Gilbert wrote: > * Michael S. Tsirkin (mst@redhat.com) wrote: > > On Tue, Apr 19, 2016 at 03:02:09PM +0000, Li, Liang Z wrote: > > > > On Tue, 2016-04-19 at 22:34 +0800, Liang Li wrote: > > > > > The free page bitmap will be sent to QEMU through virtio interface and > > > > > used for live migration optimization. > > > > > Drop the cache before building the free page bitmap can get more free > > > > > pages. Whether dropping the cache is decided by user. > > > > > > > > > > > > > How do you prevent the guest from using those recently-freed pages for > > > > something else, between when you build the bitmap and the live migration > > > > completes? > > > > > > Because the dirty page logging is enabled before building the bitmap, there is no need > > > to prevent the guest from using the recently-freed pages ... > > > > > > Liang > > > > Well one point of telling host that page is free is so that > > it can mark it clean even if it was dirty previously. > > So I think you must pass the pages to guest under the lock. > > This will allow host optimizations such as marking these > > pages MADV_DONTNEED or MADV_FREE. > > Otherwise it's all too tied up to a specific usecase - > > you aren't telling host that a page is free, you are telling it > > that a page was free in the past. > > But doing it under lock sounds pretty expensive, especially given > how long the userspace side is going to take to work through the bitmap > and device what to do. > > Dave We need to make it as fast as we can since the VCPU is stopped on exit anyway. This just means e.g. sizing the bitmap reasonably - don't always try to fit all memory in a single bitmap. Really, if the page can in fact be in use when you tell host it's free, then it's rather hard to explain what does it mean from host/guest interface point of view. It probably can be defined but the interface seems very complex. Let's start with a simple thing instead unless it can be shown that there's a performance problem. > > > > -- > > MST > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH kernel 1/2] mm: add the related functions to build the free page bitmap Date: Fri, 22 Apr 2016 16:58:39 +0300 Message-ID: <20160422164936-mutt-send-email-mst@redhat.com> References: <1461076474-3864-1-git-send-email-liang.z.li@intel.com> <1461076474-3864-2-git-send-email-liang.z.li@intel.com> <1461077659.3200.8.camel@redhat.com> <20160419191111-mutt-send-email-mst@redhat.com> <20160422094837.GC2239@work-vm> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "Li, Liang Z" , Rik van Riel , "viro@zeniv.linux.org.uk" , "linux-kernel@vger.kernel.org" , "quintela@redhat.com" , "amit.shah@redhat.com" , "pbonzini@redhat.com" , "linux-mm@kvack.org" , "kvm@vger.kernel.org" , "qemu-devel@nongnu.org" , "agraf@suse.de" , "borntraeger@de.ibm.com" To: "Dr. David Alan Gilbert" Return-path: Content-Disposition: inline In-Reply-To: <20160422094837.GC2239@work-vm> Sender: owner-linux-mm@kvack.org List-Id: kvm.vger.kernel.org On Fri, Apr 22, 2016 at 10:48:38AM +0100, Dr. David Alan Gilbert wrote: > * Michael S. Tsirkin (mst@redhat.com) wrote: > > On Tue, Apr 19, 2016 at 03:02:09PM +0000, Li, Liang Z wrote: > > > > On Tue, 2016-04-19 at 22:34 +0800, Liang Li wrote: > > > > > The free page bitmap will be sent to QEMU through virtio interface and > > > > > used for live migration optimization. > > > > > Drop the cache before building the free page bitmap can get more free > > > > > pages. Whether dropping the cache is decided by user. > > > > > > > > > > > > > How do you prevent the guest from using those recently-freed pages for > > > > something else, between when you build the bitmap and the live migration > > > > completes? > > > > > > Because the dirty page logging is enabled before building the bitmap, there is no need > > > to prevent the guest from using the recently-freed pages ... > > > > > > Liang > > > > Well one point of telling host that page is free is so that > > it can mark it clean even if it was dirty previously. > > So I think you must pass the pages to guest under the lock. > > This will allow host optimizations such as marking these > > pages MADV_DONTNEED or MADV_FREE. > > Otherwise it's all too tied up to a specific usecase - > > you aren't telling host that a page is free, you are telling it > > that a page was free in the past. > > But doing it under lock sounds pretty expensive, especially given > how long the userspace side is going to take to work through the bitmap > and device what to do. > > Dave We need to make it as fast as we can since the VCPU is stopped on exit anyway. This just means e.g. sizing the bitmap reasonably - don't always try to fit all memory in a single bitmap. Really, if the page can in fact be in use when you tell host it's free, then it's rather hard to explain what does it mean from host/guest interface point of view. It probably can be defined but the interface seems very complex. Let's start with a simple thing instead unless it can be shown that there's a performance problem. > > > > -- > > MST > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41163) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1atbba-0000qr-2J for qemu-devel@nongnu.org; Fri, 22 Apr 2016 09:58:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1atbbZ-0005Wc-6q for qemu-devel@nongnu.org; Fri, 22 Apr 2016 09:58:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45152) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1atbbY-0005WY-VC for qemu-devel@nongnu.org; Fri, 22 Apr 2016 09:58:45 -0400 Date: Fri, 22 Apr 2016 16:58:39 +0300 From: "Michael S. Tsirkin" Message-ID: <20160422164936-mutt-send-email-mst@redhat.com> References: <1461076474-3864-1-git-send-email-liang.z.li@intel.com> <1461076474-3864-2-git-send-email-liang.z.li@intel.com> <1461077659.3200.8.camel@redhat.com> <20160419191111-mutt-send-email-mst@redhat.com> <20160422094837.GC2239@work-vm> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160422094837.GC2239@work-vm> Subject: Re: [Qemu-devel] [PATCH kernel 1/2] mm: add the related functions to build the free page bitmap List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert" Cc: "Li, Liang Z" , Rik van Riel , "viro@zeniv.linux.org.uk" , "linux-kernel@vger.kernel.org" , "quintela@redhat.com" , "amit.shah@redhat.com" , "pbonzini@redhat.com" , "linux-mm@kvack.org" , "kvm@vger.kernel.org" , "qemu-devel@nongnu.org" , "agraf@suse.de" , "borntraeger@de.ibm.com" On Fri, Apr 22, 2016 at 10:48:38AM +0100, Dr. David Alan Gilbert wrote: > * Michael S. Tsirkin (mst@redhat.com) wrote: > > On Tue, Apr 19, 2016 at 03:02:09PM +0000, Li, Liang Z wrote: > > > > On Tue, 2016-04-19 at 22:34 +0800, Liang Li wrote: > > > > > The free page bitmap will be sent to QEMU through virtio interface and > > > > > used for live migration optimization. > > > > > Drop the cache before building the free page bitmap can get more free > > > > > pages. Whether dropping the cache is decided by user. > > > > > > > > > > > > > How do you prevent the guest from using those recently-freed pages for > > > > something else, between when you build the bitmap and the live migration > > > > completes? > > > > > > Because the dirty page logging is enabled before building the bitmap, there is no need > > > to prevent the guest from using the recently-freed pages ... > > > > > > Liang > > > > Well one point of telling host that page is free is so that > > it can mark it clean even if it was dirty previously. > > So I think you must pass the pages to guest under the lock. > > This will allow host optimizations such as marking these > > pages MADV_DONTNEED or MADV_FREE. > > Otherwise it's all too tied up to a specific usecase - > > you aren't telling host that a page is free, you are telling it > > that a page was free in the past. > > But doing it under lock sounds pretty expensive, especially given > how long the userspace side is going to take to work through the bitmap > and device what to do. > > Dave We need to make it as fast as we can since the VCPU is stopped on exit anyway. This just means e.g. sizing the bitmap reasonably - don't always try to fit all memory in a single bitmap. Really, if the page can in fact be in use when you tell host it's free, then it's rather hard to explain what does it mean from host/guest interface point of view. It probably can be defined but the interface seems very complex. Let's start with a simple thing instead unless it can be shown that there's a performance problem. > > > > -- > > MST > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK