[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxc: try to find last used pfn when migrating
On Fri, Nov 27, 2015 at 03:50:53PM +0100, Juergen Gross wrote: > For migration the last used pfn of a guest is needed to size the > logdirty bitmap and as an upper bound of the page loop. Unfortunately > there are pv-kernels advertising a much higher maximum pfn as they > are really using in order to support memory hotplug. This will lead > to allocation of much more memory in Xen tools during migration as > really needed. > > Try to find the last used guest pfn of a pv-domu by scanning the p2m > tree from the last entry towards it's start and search for an entry > not being invalid. > > Normally the mid pages of the p2m tree containing all invalid entries > are being reused, so we can just scan the top page for identical > entries and skip them but the first one. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- > tools/libxc/xc_sr_save.c | 8 ++++---- > tools/libxc/xc_sr_save_x86_pv.c | 34 +++++++++++++++++++++++++++++++--- > 2 files changed, 35 insertions(+), 7 deletions(-) > > diff --git a/tools/libxc/xc_sr_save.c b/tools/libxc/xc_sr_save.c > index 0c12e56..22b3f18 100644 > --- a/tools/libxc/xc_sr_save.c > +++ b/tools/libxc/xc_sr_save.c > @@ -677,6 +677,10 @@ static int setup(struct xc_sr_context *ctx) > DECLARE_HYPERCALL_BUFFER_SHADOW(unsigned long, dirty_bitmap, > &ctx->save.dirty_bitmap_hbuf); > > + rc = ctx->save.ops.setup(ctx); > + if ( rc ) > + goto err; > + > dirty_bitmap = xc_hypercall_buffer_alloc_pages( > xch, dirty_bitmap, > NRPAGES(bitmap_size(ctx->save.p2m_size))); > ctx->save.batch_pfns = malloc(MAX_BATCH_SIZE * > @@ -692,10 +696,6 @@ static int setup(struct xc_sr_context *ctx) > goto err; > } > p2m_size is set in two places for PV guest. Since we are now relying on ops.setup to set p2m_size, the invocation to xc_domain_nr_gpfns in xc_domain_save should be removed, so that we only have one place to set p2m_size. You then also need to call xc_domain_nr_gpfns in HVM's ops.setup (x86_hvm_setup). Wei. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |