From: Zhang Chen <chen.zhang@intel.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Juan Quintela <quintela@redhat.com>,
qemu-dev <qemu-devel@nongnu.org>,
qemu-trivial@nongnu.org
Cc: Zhang Chen <chen.zhang@intel.com>
Subject: [PATCH] docs/devel/migration.rst: Updates content from code and fixes minor issues
Date: Thu, 27 Jan 2022 18:32:44 +0800 [thread overview]
Message-ID: <20220127103244.3277760-1-chen.zhang@intel.com> (raw)
Signed-off-by: Zhang Chen <chen.zhang@intel.com>
---
docs/devel/migration.rst | 36 +++++++++++++++++++++++-------------
1 file changed, 23 insertions(+), 13 deletions(-)
diff --git a/docs/devel/migration.rst b/docs/devel/migration.rst
index 2401253482..9f190d439a 100644
--- a/docs/devel/migration.rst
+++ b/docs/devel/migration.rst
@@ -156,12 +156,20 @@ An example (from hw/input/pckbd.c)
.name = "pckbd",
.version_id = 3,
.minimum_version_id = 3,
+ .pre_load = kbd_pre_load,
+ .post_load = kbd_post_load,
+ .pre_save = kbd_pre_save,
.fields = (VMStateField[]) {
VMSTATE_UINT8(write_cmd, KBDState),
VMSTATE_UINT8(status, KBDState),
VMSTATE_UINT8(mode, KBDState),
- VMSTATE_UINT8(pending, KBDState),
+ VMSTATE_UINT8(pending_tmp, KBDState),
VMSTATE_END_OF_LIST()
+ },
+ .subsections = (const VMStateDescription*[]) {
+ &vmstate_kbd_outport,
+ &vmstate_kbd_extended_state,
+ NULL
}
};
@@ -278,7 +286,7 @@ Example:
IDEState *s = opaque;
return ((s->status & DRQ_STAT) != 0)
- || (s->bus->error_status & BM_STATUS_PIO_RETRY);
+ || (s->bus->error_status & IDE_RETRY_PIO);
}
const VMStateDescription vmstate_ide_drive_pio_state = {
@@ -312,6 +320,8 @@ Example:
},
.subsections = (const VMStateDescription*[]) {
&vmstate_ide_drive_pio_state,
+ &vmstate_ide_tray_state,
+ &vmstate_ide_atapi_gesn_state,
NULL
}
};
@@ -481,11 +491,11 @@ versions exist for high bandwidth IO.
An iterative device must provide:
- - A ``save_setup`` function that initialises the data structures and
- transmits a first section containing information on the device. In the
- case of RAM this transmits a list of RAMBlocks and sizes.
+ - A ``save_setup`` function that initialize the data structures and
+ transmits a first section containing information on the device. In the
+ case of RAM used to transmit a list of RAMBlocks and sizes.
- - A ``load_setup`` function that initialises the data structures on the
+ - A ``load_setup`` function that initialize the data structures on the
destination.
- A ``save_live_pending`` function that is called repeatedly and must
@@ -756,13 +766,13 @@ ADVISE->DISCARD->LISTEN->RUNNING->END
(the 'listen thread') which takes over the job of receiving
pages off the migration stream, while the main thread carries
on processing the blob. With this thread able to process page
- reception, the destination now 'sensitises' the RAM to detect
+ reception, the destination now 'sensitive' the RAM to detect
any access to missing pages (on Linux using the 'userfault'
system).
- Running
- POSTCOPY_RUN causes the destination to synchronise all
+ POSTCOPY_RUN causes the destination to synchronize all
state and start the CPUs and IO devices running. The main
thread now finishes processing the migration package and
now carries on as it would for normal precopy migration
@@ -771,8 +781,8 @@ ADVISE->DISCARD->LISTEN->RUNNING->END
- End
- The listen thread can now quit, and perform the cleanup of migration
- state, the migration is now complete.
+ The listen thread already exited, and perform the cleanup of migration
+ state, the migration has been completed.
Source side page maps
---------------------
@@ -861,9 +871,9 @@ Firmware
========
Migration migrates the copies of RAM and ROM, and thus when running
-on the destination it includes the firmware from the source. Even after
-resetting a VM, the old firmware is used. Only once QEMU has been restarted
-is the new firmware in use.
+on the destination it includes the firmware from the source. The old
+firmware of the VM is still used even rebooted. And the new firmware
+will not be loaded until QEMU is restarted.
- Changes in firmware size can cause changes in the required RAMBlock size
to hold the firmware and thus migration can fail. In practice it's best
--
2.25.1
next reply other threads:[~2022-01-27 10:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-27 10:32 Zhang Chen [this message]
2022-03-09 8:54 ` [PATCH] docs/devel/migration.rst: Updates content from code and fixes minor issues Zhang, Chen
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=20220127103244.3277760-1-chen.zhang@intel.com \
--to=chen.zhang@intel.com \
--cc=dgilbert@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@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).