From: Ian Campbell <ian.campbell@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: wei.liu2@citrix.com, wency@cn.fujitsu.com,
guijianfeng@cn.fujitsu.com, yunhong.jiang@intel.com,
eddie.dong@intel.com, xen-devel@lists.xen.org,
rshriram@cs.ubc.ca, Yang Hongyang <yanghy@cn.fujitsu.com>,
ian.jackson@eu.citrix.com
Subject: Re: [PATCH v3 COLOPre 19/26] libxc/migration: Specification update for DIRTY_BITMAP records
Date: Wed, 1 Jul 2015 11:27:37 +0100 [thread overview]
Message-ID: <1435746457.21469.242.camel@citrix.com> (raw)
In-Reply-To: <5593BE0E.3000003@citrix.com>
On Wed, 2015-07-01 at 11:16 +0100, Andrew Cooper wrote:
> On 01/07/15 04:07, Yang Hongyang wrote:
> >
> >
> > On 06/30/2015 06:24 PM, Ian Campbell wrote:
> >> On Thu, 2015-06-25 at 14:25 +0800, Yang Hongyang wrote:
> >>> Used by secondary to send it's dirty bitmap to primary under COLO.
> >>
> >> This is the backchannel, right?
> >
> > Right.
> >
> >>
> >> It seems to me that this ought to be described more clearly as a
> >> separate stream in the opposite direction, rather than looking like just
> >> another record in the forward channel.
> >
> > Agreed, I'm not sure if having this back channel record is eligible,
> > Andy, thoughts?
> >
> >>
> >> Does the back channel not also need some sort of negotiation phase where
> >> we check both ends are compatible (i.e. like the forward channel's
> >> header). This might be easier than with the forward channel since you
> >> might assert that the versions must match exactly for COLO to be
> >> possible, that might not be true of some potential future user of the
> >> backchannel though.
> >
> > The negotiation record for COLO is introduced in the following patch
> > on libxl side. But that might be diffrent form what you said here, we
> > don't have a version check currently, if the 2 side doesn't match, for
> > example one has colo feature enabled and the other end do not, the
> > migration will simply fail.
>
> I do think that each backchannel level needs some kind of initial
> negotiation to confirm everything is set up and working, but I think the
> backchannel should also match the spec for its level, and all contained
> in the single spec document.
In the same spec, sure. It's the presenting it as just another record
mixed in with all the others which I think is a problem.
At the very least every record should be tagged as either forward,
backward or bidirectional to indicate who can produce and who should
consume it.
Even better would br if we can convince ourselves there should be no
bidirectional fields, in which case I'd be further inclined to say that
the record space should be explicitly separate. i.e. the backchannel
should be a separate chapter in the doc and the records.
> So for both the libxc and libxl backchannels, I would have thought
> something along these lines to be sensible:
>
> Forwards sends a LIBX{C,L}_BACKCHANNEL_INIT, and waits to find a
> LIBX{C,L}_BACKCHANNEL_REPLY on the backchannel. After that, processing
> continues as normal, with records arriving on the backchannel when
> appropriate.
Yes, for init time something like this sounds sensible.
Ian.
next prev parent reply other threads:[~2015-07-01 10:27 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-25 6:25 [PATCH v3 COLOPre 00/26] Prerequisite patches for COLO Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 01/26] tools/libxl: rename libxl__domain_suspend to libxl__domain_save Yang Hongyang
2015-06-29 15:43 ` Ian Campbell
2015-06-30 9:32 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 02/26] tools/libxl: move domain suspend code into libxl_dom_suspend.c Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 03/26] tools/libxl: move domain resume " Yang Hongyang
2015-06-29 15:44 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 04/26] tools/libxl: move remus code into libxl_remus.c Yang Hongyang
2015-06-29 15:48 ` Ian Campbell
2015-06-30 9:36 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 05/26] tools/libxl: move save/restore code into libxl_dom_save.c Yang Hongyang
2015-06-29 15:49 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 06/26] libxl/save: Refactor libxl__domain_suspend_state Yang Hongyang
2015-06-29 16:01 ` Ian Campbell
2015-06-30 9:43 ` Yang Hongyang
2015-06-30 9:50 ` Ian Campbell
2015-06-30 10:05 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 07/26] libxc/restore: fix error handle of process_record Yang Hongyang
2015-06-29 16:07 ` Ian Campbell
2015-06-30 9:45 ` Yang Hongyang
2015-07-03 3:12 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 08/26] tools/libxc: support to resume uncooperative HVM guests Yang Hongyang
2015-06-29 16:27 ` Ian Campbell
2015-06-30 10:08 ` Wen Congyang
2015-06-30 10:59 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 09/26] tools/libxl: introduce enum type libxl_checkpointed_stream Yang Hongyang
2015-06-29 16:30 ` Ian Campbell
2015-06-30 9:53 ` Yang Hongyang
2015-06-30 10:52 ` Ian Campbell
2015-07-01 2:05 ` Yang Hongyang
2015-07-01 10:36 ` Ian Campbell
2015-07-01 13:43 ` Yang Hongyang
2015-07-01 14:09 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 10/26] migration/save: pass checkpointed_stream from libxl to libxc Yang Hongyang
2015-06-29 16:33 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 11/26] tools/libxl: introduce a new API libxl__domain_restore() to load qemu state Yang Hongyang
2015-06-29 16:38 ` Ian Campbell
2015-06-30 10:04 ` Yang Hongyang
2015-06-30 10:54 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 12/26] tools/libxl: Update libxl_domain_unpause() to support qemu-xen Yang Hongyang
2015-06-30 10:00 ` Ian Campbell
2015-07-01 2:10 ` Yang Hongyang
2015-07-01 10:38 ` Ian Campbell
2015-07-01 13:38 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 13/26] tools/libxl: introduce libxl__domain_common_switch_qemu_logdirty() Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 14/26] tools/libxl: export logdirty_init Yang Hongyang
2015-06-30 10:01 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 15/26] tools/libxl: Add back channel to allow migration target send data back Yang Hongyang
2015-06-30 10:07 ` Ian Campbell
2015-07-01 2:28 ` Yang Hongyang
2015-07-01 10:40 ` Ian Campbell
2015-07-01 13:46 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 16/26] tools/libx{l, c}: add back channel to libxc Yang Hongyang
2015-06-30 10:10 ` Ian Campbell
2015-07-01 2:38 ` Yang Hongyang
2015-07-01 10:42 ` Ian Campbell
2015-07-01 11:01 ` Andrew Cooper
2015-07-01 11:21 ` Ian Campbell
2015-07-01 12:07 ` Ian Jackson
2015-07-01 13:56 ` Yang Hongyang
2015-07-01 13:58 ` Ian Jackson
2015-07-01 14:21 ` Ian Campbell
2015-07-01 13:54 ` Yang Hongyang
2015-07-01 14:03 ` Andrew Cooper
2015-06-30 10:17 ` Ian Campbell
2015-07-01 2:40 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 17/26] tools/libx{l, c}: introduce should_checkpoint callback Yang Hongyang
2015-06-30 10:19 ` Ian Campbell
2015-07-01 2:43 ` Yang Hongyang
2015-07-01 10:43 ` Ian Campbell
2015-07-01 13:58 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 18/26] tools/libx{l, c}: add postcopy/suspend callback to restore side Yang Hongyang
2015-06-30 10:21 ` Ian Campbell
2015-07-01 2:48 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 19/26] libxc/migration: Specification update for DIRTY_BITMAP records Yang Hongyang
2015-06-30 10:24 ` Ian Campbell
2015-07-01 3:07 ` Yang Hongyang
2015-07-01 10:16 ` Andrew Cooper
2015-07-01 10:27 ` Ian Campbell [this message]
2015-07-01 10:39 ` Andrew Cooper
2015-07-01 11:00 ` Ian Campbell
2015-07-03 14:25 ` Andrew Cooper
2015-07-03 14:41 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 20/26] libxc/migration: export read_record for common use Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 21/26] tools/libxl: refactor write stream to support back channel Yang Hongyang
2015-06-30 10:28 ` Ian Campbell
2015-07-01 5:33 ` Wen Congyang
2015-07-01 10:45 ` Ian Campbell
2015-07-01 11:09 ` Wen Congyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 22/26] tools/libxl: refactor read " Yang Hongyang
2015-06-30 10:39 ` Ian Campbell
2015-06-25 6:25 ` [PATCH v3 COLOPre 23/26] docs/libxl: Introduce COLO_CONTEXT to support migration v2 colo streams Yang Hongyang
2015-06-30 10:42 ` Ian Campbell
2015-07-01 3:10 ` Yang Hongyang
2015-07-01 10:44 ` Ian Campbell
2015-07-01 14:05 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 24/26] tools/libxl: rename remus device to checkpoint device Yang Hongyang
2015-06-30 10:43 ` Ian Campbell
2015-07-01 3:11 ` Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 25/26] tools/libxl: adjust the indentation Yang Hongyang
2015-06-25 6:25 ` [PATCH v3 COLOPre 26/26] tools/libxl: don't touch remus in checkpoint_device Yang Hongyang
2015-06-30 10:50 ` Ian Campbell
2015-07-01 3:11 ` 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=1435746457.21469.242.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=eddie.dong@intel.com \
--cc=guijianfeng@cn.fujitsu.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.