From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, quintela@redhat.com, peterx@redhat.com,
peter.maydell@linaro.org
Subject: Re: [Qemu-devel] [PATCH] migration: update docs
Date: Mon, 23 Apr 2018 14:12:31 +0100 [thread overview]
Message-ID: <20180423131230.GH2518@work-vm> (raw)
In-Reply-To: <bf695674-aa5e-e151-d921-225086d35c5d@redhat.com>
* Eric Blake (eblake@redhat.com) wrote:
> On 04/20/2018 12:57 PM, Dr. David Alan Gilbert (git) wrote:
> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> >
> > Update the migration docs:
> >
> > Among other changes:
> > * Added a general list of advice for device authors
> > * Reordered the section on conditional state (subsections etc)
> > into the order we prefer.
> > * Add a note about firmware
> >
> > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > ---
> > docs/devel/migration.rst | 524 +++++++++++++++++++++++++++------------
> > 1 file changed, 370 insertions(+), 154 deletions(-)
>
> > @@ -40,16 +40,16 @@ to do migration:
> > - fd migration: do the migration using an file descriptor that is
> > passed to QEMU. QEMU doesn't care how this file descriptor is opened.
> >
> > -All these four migration protocols use the same infrastructure to
> > +In addition support is included for migration using RDMA migration which
>
> The double migration in this phrase sounds redundant. I think you can:
>
> s/In addition/In addition,/
> s/RDMA migration which/RDMA, which/
Done
> > +transports the page data using ``RDMA``, where the hardware takes care of
> > +transporting the pages, and the load on the CPU is much lower. While the
> > +internals of RDMA migration are a bit different, this isn't really visible
> > +outside the RAM migration code.
> > +
>
> > +For most devices, the state is saved in a single call to the migration
> > +infrastrucutre; these are *non-iterative* devices. The data for these
>
> s/infrastrucutre/infrastructure/
Done
> > +devices is sent at the end of precopy migration, when the CPUs are paused.
> > +Where the data associated with the device is very large (e.g. RAM or large tables)
> > +see the iterative device section below.
>
> > +
> > +- Migrations timing out or being failed by higher levels of management,
> > + or failures of the destination host are not unusual, and care should
> > + be taken to ensure that the source VM can be restarted up until the point
> > + when the destination starts runing. Valid examples include the management
>
> s/runing/running/
Done
> > + layer reverting the migration even though the QEMU level of migration has
> > + succeeded. For this reason, the state on the source VM should not be
> > + destroyed during the migration process in normal use.
> > +
> > +- Busses and devices should be able to explicitly specify addresses when
>
> s/Busses/Buses/ ? (both spellings are common, but busses can also be
> confused with a synonym of kisses)
Done (best not to ask...)
> > +When we migrate a device, we save/load the state as a series
> > +of fields. Some times, due to bugs or new functionality, we need to
> > +change the state to store more/different information. Changing the migration
> > +state saved for a device can break migration comppatibility unless
>
> s/comppatibility/compatibility/
Done
> > +care is taken to use the appropriate techniques. In general QEMU tries
> > +to maintain forward migration compaitibility (i.e. migrating from
>
> s/compaitibility/compatibility/
Done
>
> > +QEMU n->n+1) and there are users who benefit from backwards compatibility
> > +as well.
>
> (fun - 3 spellings among 3 uses in 2 sentences - at least the last one
> was right)
>
>
> > +Note that the contents of the sections for iterative migration tend
> > +to be open-coded by the devices; care should be taken in parsing
>
> Why the double space?
No particular reason; gone.
>
> > +
> > +The ``device data`` in each section consists of the data produced
> > +by the code described above. For non-iterative devices they have a single
> > +section; iterative devices have an initial and last section and a set
> > +of parts inbetween.
>
> s/inbetween/in between/
Done
> > +Note that there is very little checking by the common code of the integrity
> > +of the ``device data`` contents, that's upto the devices themselves.
>
> s/upto/up to/
Done
> > +Only a unidirectional stream is required for normal migration, however a
> > +``return path`` can be created when bidirecitonal communication is desired.
>
> s/bidirecitonal/bidirectional/
Done
Thanks
Dave
> --
> Eric Blake, Principal Software Engineer
> Red Hat, Inc. +1-919-301-3266
> Virtualization: qemu.org | libvirt.org
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2018-04-23 13:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-20 17:57 [Qemu-devel] [PATCH] migration: update docs Dr. David Alan Gilbert (git)
2018-04-20 19:49 ` Eric Blake
2018-04-23 13:12 ` Dr. David Alan Gilbert [this message]
2018-04-25 9:53 ` Balamuruhan S
2018-04-27 17:22 ` Dr. David Alan Gilbert
2018-04-26 5:09 ` Peter Xu
2018-04-27 16:49 ` Dr. David Alan Gilbert
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=20180423131230.GH2518@work-vm \
--to=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.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 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).