On 05/15/2015 08:56 PM, Andrew Cooper wrote:
On 15/05/15 11:17, Yang Hongyang wrote:
@@ -519,9 +533,15 @@ static int send_domain_memory_live(struct xc_sr_context
*ctx)
goto out;
}
- rc = update_progress_string(ctx, &progress_str, ctx->save.max_iterations);
- if ( rc )
- goto out;
+ if ( ctx->save.live )
+ {
+ rc = update_progress_string(ctx, &progress_str,
+ ctx->save.max_iterations);
+ if ( rc )
+ goto out;
+ }
+ else
+ xc_set_progress_prefix(xch, "Checkpointed save");
bitmap_or(dirty_bitmap, ctx->save.deferred_pages, ctx->save.p2m_size);
Sorry not to notice this before, but you want to clear the
deferred_pages map (and count) after the subsequent call to
send_dirty_pages().
deferred_pages accumulates during the live phase (for grant mapped
pages, pagetables in flux, etc), but should be empty an unused during
checkpoints. At the moment, this is causing each checkpoint to send
more data than they need to.
Ah, it won't cause error in the test, so I missed this part, good catch,
thank you!
For the rest of the refactoring, Reviewed-by: Andrew Cooper
<andrew.coop...@citrix.com>
.
--
Thanks,
Yang.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel