From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Keir Fraser <keir@xen.org>, Tim Deegan <tim@xen.org>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Xen-devel <xen-devel@lists.xen.org>,
Frediano Ziglio <frediano.ziglio@citrix.com>,
David Vrabel <david.vrabel@citrix.com>,
Jan Beulich <JBeulich@suse.com>
Subject: Re: [PATCH 0/6] [VERY RFC] Migration Stream v2
Date: Thu, 10 Apr 2014 12:21:13 +0100 [thread overview]
Message-ID: <53467EA9.1090305@citrix.com> (raw)
In-Reply-To: <1397126549.9862.116.camel@kazak.uk.xensource.com>
On 10/04/14 11:42, Ian Campbell wrote:
> On Wed, 2014-04-09 at 19:28 +0100, Andrew Cooper wrote:
>> Some design decisions have been take very deliberately (e.g. splitting the
>> logic for PV and hvm migration) while others have been more along the lines of
>> "I think its a sensible thing to do given a lack of any evidence/opinion to
>> the contrary".
> Is there some indication of which is which?
Not really, given the clean rewrite, and also that it is only partially
complete.
>
> Should we check in the desigh/spec which was previously posted as part
> of this?
I knew I forgot something...
http://xenbits.xen.org/people/andrewcoop/domain-save-format-E.pdf
>
>> The error handling is known to only semi-consistent. Functions return 0 for
>> success and non-zero for failure. This is typically -1, although errno is not
>> always relevant. However, the logging messages should all be relevant and
>> correct. Making this properly consistent will involve wider effort across all
>> of libxc.
> It would be useful if the new code was correct at least so far as its
> own behaviour went (meaning no need to fix functions it calls as part of
> this).
libxc is too broken for that to be possible, (including such gems as the
save_callbacks functions which is not specified as to how to indicate
success or error, and have developed at least 3 different flavours)
Currently, the state of play is "if you get non0, something went wrong.
Please read the log for relevant information" Once we get a libxc_err_t
(or so, given a discussion down the pub) capable of expressing more
meaningful error problems, most codepaths (including these new ones)
will need updating, although starting from a fairly-consistent position
will be much easier than not.
>
>> An area needing discussing is how to do v1 -> v2 transformations for a one-time
>> upgrade. There is a (very basic currently) python script which can pick a v1
>> stream, and a separate python library to write v2 streams.
>>
>> One option would be to combine these two into a program which takes two fds,
>> which libxc can exec() out to. There is deliberate flexibility in the v2
>> restore code which allows a v1 -> v2 transformation on a stream without seeking.
> forking/execing in libxc might be problematic, fitting it into libxl
> might be easier, since it has infrastructure for that sort of thing.
libxl is not the only user of libxc, and fixing it there would not help
the other consumers of libxc.
Furthermore, unless the consumer has an out-of-band detection method
(libxl can easily be made to have, Xapi less so easy, and no idea about
other consumers), xc_domain_restore() is the first piece of code capable
of detecting a legacy stream without needing to seek.
>
> Or maybe the fact that most of this already happens in a process which
> libxl spawns for that purpose means that libxc can safely fork because
> the application in that case is under our control.
Exactly the same for Xapi, which uses a separate process which functions
similarly to xc_save/restore but does domain build as well, which is why
I am hoping this is an acceptable way of fixing the problem.
~Andrew
next prev parent reply other threads:[~2014-04-10 11:21 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-09 18:28 [PATCH 0/6] [VERY RFC] Migration Stream v2 Andrew Cooper
2014-04-09 18:28 ` [PATCH 1/6] [HACK] tools/libxc: save/restore v2 framework Andrew Cooper
2014-04-09 18:28 ` [PATCH 2/6] tools/libxc: Stream specification and some common code Andrew Cooper
2014-04-09 18:28 ` [PATCH 3/6] tools/libxc: Scripts for inspection/valdiation of legacy and new streams Andrew Cooper
2014-04-09 18:28 ` [PATCH 4/6] tools/libxc: x86 pv common code Andrew Cooper
2014-04-09 18:28 ` [PATCH 5/6] tools/libxc: x86 pv save implementation Andrew Cooper
2014-04-09 18:28 ` [PATCH 6/6] tools/libxc: x86 pv restore implementation Andrew Cooper
2014-04-10 10:42 ` [PATCH 0/6] [VERY RFC] Migration Stream v2 Ian Campbell
2014-04-10 11:21 ` Andrew Cooper [this message]
2014-04-10 13:05 ` Frediano Ziglio
2014-04-10 13:49 ` Andrew Cooper
2014-04-14 17:49 ` George Dunlap
2014-04-14 18:06 ` Andrew Cooper
2014-04-14 18:16 ` George Dunlap
2014-04-14 23:43 ` Andrew Cooper
2014-04-14 18:11 ` David Vrabel
2014-04-15 8:30 ` Frediano Ziglio
2014-04-15 10:35 ` Ian Jackson
2014-04-15 10:38 ` George Dunlap
2014-04-23 13:47 ` Ian Campbell
2014-04-23 14:02 ` Andrew Cooper
2014-04-23 14:13 ` Ian Campbell
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=53467EA9.1090305@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=david.vrabel@citrix.com \
--cc=frediano.ziglio@citrix.com \
--cc=keir@xen.org \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).