On Wed, Apr 20, 2016 at 01:41:24AM +0000, Li, Liang Z wrote: > > Cc: Rik van Riel; v...@zeniv.linux.org.uk; linux-ker...@vger.kernel.org; > > quint...@redhat.com; amit.s...@redhat.com; pbonz...@redhat.com; > > dgilb...@redhat.com; linux...@kvack.org; k...@vger.kernel.org; qemu- > > de...@nongnu.org; ag...@suse.de; borntrae...@de.ibm.com > > Subject: Re: [PATCH kernel 1/2] mm: add the related functions to build the > > free page bitmap > > > > 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. > > Thanks! You mean save the free page bitmap in host pages?
No, I literally mean don't release &zone->lock before you pass the list of pages to host. > > 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. > > > > Then we should prevent the guest from using those recently-freed pages, > before doing the MADV_DONTNEED or MADV_FREE, or the pages in the > free page bitmap may be not free any more. In which case we will do something > like this? Balloon? > > Liang > Wouldn't keeping &zone->lock make sure these pages aren't used? > > -- > > MST