RE: [PATCH kernel 1/2] mm: add the related functions to build the free page bitmap

From: Li, Liang Z
Date: Tue Apr 19 2016 - 21:41:34 EST


> Cc: Rik van Riel; viro@xxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> quintela@xxxxxxxxxx; amit.shah@xxxxxxxxxx; pbonzini@xxxxxxxxxx;
> dgilbert@xxxxxxxxxx; linux-mm@xxxxxxxxx; kvm@xxxxxxxxxxxxxxx; qemu-
> devel@xxxxxxxxxx; agraf@xxxxxxx; borntraeger@xxxxxxxxxx
> 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?

> 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


> --
> MST