[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH Remus v6 1/3] libxc/save: refactor of send_domain_memory_live()





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.cooper3@xxxxxxxxxx>
.


--
Thanks,
Yang.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.