All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Yang Hongyang <yanghy@cn.fujitsu.com>, xen-devel@lists.xen.org
Cc: wei.liu2@citrix.com, ian.campbell@citrix.com,
	wency@cn.fujitsu.com, ian.jackson@eu.citrix.com,
	yunhong.jiang@intel.com, eddie.dong@intel.com,
	rshriram@cs.ubc.ca
Subject: Re: [PATCH Remus v2 00/10] Remus support for Migration-v2
Date: Fri, 8 May 2015 19:12:32 +0100	[thread overview]
Message-ID: <554CFC90.1030301@citrix.com> (raw)
In-Reply-To: <1431077610-3366-1-git-send-email-yanghy@cn.fujitsu.com>

On 08/05/15 10:33, Yang Hongyang wrote:
> This patchset implement the Remus support for Migration v2 but without
> memory compressing.
>
> The series can be found on github:
> https://github.com/macrosheep/xen/tree/Remus-newmig-v2
>
> PATCH 1-7: Some refactor and prepare work.
> PATCH 8-9: The main Remus loop implement.
> PATCH 10: Fix for Remus.

I have reviewed the other half of the series now, and have some design
to discuss.  (I was hoping to get this email sent in reply to v1, but
never mind).  This largely concerns patch 7 and onwards.

Migration v2 has substantially more structure than legacy did.  Once
issue so far is that your series relies on using more than one END
record, which is not supported in the spec.  (Of course - the spec is
fine to be extended in forward-compatible ways.)

To fix the qemu layering issues I need to have some explicit negotiation
between libxc and libxl about sharing ownership of the input fd.  This
is going to require a new record in the format, and I currently drafting
a patch or two which should help in this regard.

My view for the eventual stream looks something like this (time going
downwards):

libxc writes:                   libxl writes:

Image Header
Domain Header
start_of_stream()
start_of_checkpoint()
<memory>
end_of_checkpoint()
Checkpoint record
            ctx->save.callbacks->checkpoint()
                                libxl qemu record
                                ...
                                libxl end-of-checkpoint record
            ctx->save.callbacks->checkpoint() returns
start_of_checkpoint()
<memory>
end_of_checkpoint()
Checkpoint record
etc...

This will eventually allow both libxc and libxl to send checkpoint data
(and by the looks of it, remove the need for postcopy()).  With this
libxc/remus work it is fine to use XG_LIBXL_HVM_COMPAT to cover the
current qemu situation, but I would prefer not to be also retrofitting
libxc checkpoint records when doing the libxl/migv2 work.

Does this look plausible in for Remus (and eventually COLO) support?

~Andrew

  parent reply	other threads:[~2015-05-08 18:12 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-08  9:33 [PATCH Remus v2 00/10] Remus support for Migration-v2 Yang Hongyang
2015-05-08  9:33 ` [PATCH Remus v2 01/10] tools/libxc: adjust the memory allocation for migration Yang Hongyang
2015-05-08  9:51   ` Andrew Cooper
2015-05-11 11:50   ` Ian Campbell
2015-05-12  6:43     ` Hongyang Yang
2015-05-08  9:33 ` [PATCH Remus v2 02/10] tools/libxc: introduce setup() and cleanup() on save Yang Hongyang
2015-05-08  9:45   ` Andrew Cooper
2015-05-08  9:59     ` Hongyang Yang
2015-05-08 10:08       ` Andrew Cooper
2015-05-11  1:20         ` Hongyang Yang
2015-05-11 11:47           ` Ian Campbell
2015-05-11 11:49             ` Ian Campbell
2015-05-12  7:04               ` Yang Hongyang
2015-05-08  9:33 ` [PATCH Remus v2 03/10] tools/libxc: rename send_some_pages to send_dirty_pages Yang Hongyang
2015-05-08 10:11   ` Andrew Cooper
2015-05-11  1:21     ` Hongyang Yang
2015-05-08  9:33 ` [PATCH Remus v2 04/10] tools/libxc: introduce DECLARE_HYPERCALL_BUFFER_USER_POINTER Yang Hongyang
2015-05-08 10:16   ` Andrew Cooper
2015-05-11  1:22     ` Hongyang Yang
2015-05-11 11:53   ` Ian Campbell
2015-05-12  7:18     ` Yang Hongyang
2015-05-12  8:19       ` Ian Campbell
2015-05-12  9:24         ` Yang Hongyang
2015-05-12  9:43           ` Ian Campbell
2015-05-12  9:48             ` Yang Hongyang
2015-05-08  9:33 ` [PATCH Remus v2 05/10] tools/libxc: reuse send_dirty_pages() in send_all_pages() Yang Hongyang
2015-05-08 10:17   ` Andrew Cooper
2015-05-08  9:33 ` [PATCH Remus v2 06/10] tools/libxc: introduce process_record() Yang Hongyang
2015-05-08  9:33 ` [PATCH Remus v2 07/10] tools/libxc: split read/handle qemu info Yang Hongyang
2015-05-08  9:33 ` [PATCH Remus v2 08/10] tools/libxc: implement Remus checkpointed save Yang Hongyang
2015-05-08  9:33 ` [PATCH Remus v2 09/10] tools/libxc: implement Remus checkpointed restore Yang Hongyang
2015-05-08  9:33 ` [PATCH Remus v2 10/10] tools/libxc: X86_PV_INFO can be sent multiple times under Remus Yang Hongyang
2015-05-08 18:12 ` Andrew Cooper [this message]
2015-05-11  6:28   ` [PATCH Remus v2 00/10] Remus support for Migration-v2 Hongyang Yang
2015-05-11  9:00     ` Andrew Cooper
2015-05-11 10:48       ` Hongyang Yang
2015-05-11 11:01         ` Andrew Cooper
2015-05-12  8:12           ` Yang Hongyang
2015-05-12  9:40             ` Andrew Cooper
2015-05-12 10:02               ` Yang Hongyang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=554CFC90.1030301@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=eddie.dong@intel.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=rshriram@cs.ubc.ca \
    --cc=wei.liu2@citrix.com \
    --cc=wency@cn.fujitsu.com \
    --cc=xen-devel@lists.xen.org \
    --cc=yanghy@cn.fujitsu.com \
    --cc=yunhong.jiang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.