From: Yang Hongyang <yanghy@cn.fujitsu.com>
To: Andrew Cooper <andrew.cooper3@citrix.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: Tue, 12 May 2015 18:02:15 +0800 [thread overview]
Message-ID: <5551CFA7.6070804@cn.fujitsu.com> (raw)
In-Reply-To: <5551CA88.9060107@citrix.com>
On 05/12/2015 05:40 PM, Andrew Cooper wrote:
> On 12/05/15 09:12, Yang Hongyang wrote:
>>
>>>>> That sounds like COLO wants a should_checkpoint() callback which
>>>>> separates the decision to make a checkpoint from the logic of
>>>>> implementing a checkpoint.
>>>>
>>>> We use checkpoint callback to do should_checkpoint() thing currently.
>>>> libxc will check the return value of checkpoint callback.
>>>
>>> But that causes a chicken & egg problem.
>>>
>>> I am planning to use a CHECKPOINT record to synchronise the transfer of
>>> ownership of the FD between libxc and libxl. Therefore, a CHECKPOINT
>>> record must be in the stream ahead of the checkpoint() callback, as
>>> libxl will then write/read some records in itself.
>>
>> The record name CHECKPOINT seems do not match the thing what you are
>> planning to do, In this case I think END-OF-CHECKPOINT which represent
>> the
>> END of libxc side checkpoint is better, when libxc side checkpoint end,
>> libxc should transfer the ownership of FD to libxl and let libxl to
>> handle the following stream. libxl side can also use END-OF-CHECKPOINT
>> as a sign to hand the ownership of the FD to libxc.
>
> END_OF_CHECKPOINT implies the presence of START_OF_CHECKPOINT. The
> current spec for CHECKPOINT is more of a sentinal value between
> checkpoints of data.
>
>>
>>>
>>> As a result, the checkpoint() callback itself can't be used to gate
>>> whether a CHECKPOINT record is written by libxc.
>>
>> I was wondering how you will do the FD transfer job?
>
> The FD needs to be readable/writable in both the libxl and
> libxl-save-helper processes. The CHECKPOINT record simply signals a
> transfer of ownership.
>
>>>>> I have a 4th alternative in mind, but would like your feedback from my
>>>>> comments in this email first.
>>>>
>>>> So what's the 4th alternative?
>>>
>>> I have some corrections to my patch series based on David's feedback,
>>> and your comments. After that, it should hopefully be far easier to
>>> describe.
>>
>> OK, I've addressed all comments on my series and wait for your series
>> to continue :-)
>
> Sent. Sorry for the delay (I also have some XenServer issues I am
> working on atm).
Never mind, and thank you very much for the quick turnaround! The design
looks more clear now, It really helps me a lot!
>
> ~Andrew
> .
>
--
Thanks,
Yang.
prev parent reply other threads:[~2015-05-12 10:02 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 ` [PATCH Remus v2 00/10] Remus support for Migration-v2 Andrew Cooper
2015-05-11 6:28 ` 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 [this message]
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=5551CFA7.6070804@cn.fujitsu.com \
--to=yanghy@cn.fujitsu.com \
--cc=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=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.