From: "Cédric Le Goater" <clg@redhat.com>
To: peterx@redhat.com, qemu-devel@nongnu.org
Cc: "Michael S . Tsirkin" <mst@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>,
Jason Wang <jasowang@redhat.com>, Bandan Das <bdas@redhat.com>,
Prasad Pandit <ppandit@redhat.com>,
Fabiano Rosas <farosas@suse.de>
Subject: Re: [PATCH 05/10] docs/migration: Split "Debugging" and "Firmware"
Date: Tue, 9 Jan 2024 08:04:22 +0100 [thread overview]
Message-ID: <7a561c8e-300f-465c-9bcb-91b644a9a7b8@redhat.com> (raw)
In-Reply-To: <20240109064628.595453-6-peterx@redhat.com>
On 1/9/24 07:46, peterx@redhat.com wrote:
> From: Peter Xu <peterx@redhat.com>
>
> Move the two sections into a separate file called "best-practises.rst".
> Add the entry into index.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> docs/devel/migration/best-practises.rst | 48 +++++++++++++++++++++++++
> docs/devel/migration/index.rst | 1 +
> docs/devel/migration/main.rst | 44 -----------------------
> 3 files changed, 49 insertions(+), 44 deletions(-)
> create mode 100644 docs/devel/migration/best-practises.rst
>
> diff --git a/docs/devel/migration/best-practises.rst b/docs/devel/migration/best-practises.rst
> new file mode 100644
> index 0000000000..ba122ae417
> --- /dev/null
> +++ b/docs/devel/migration/best-practises.rst
> @@ -0,0 +1,48 @@
> +==============
> +Best practises
> +==============
> +
> +Debugging
> +=========
> +
> +The migration stream can be analyzed thanks to ``scripts/analyze-migration.py``.
> +
> +Example usage:
> +
> +.. code-block:: shell
> +
> + $ qemu-system-x86_64 -display none -monitor stdio
> + (qemu) migrate "exec:cat > mig"
> + (qemu) q
> + $ ./scripts/analyze-migration.py -f mig
> + {
> + "ram (3)": {
> + "section sizes": {
> + "pc.ram": "0x0000000008000000",
> + ...
> +
> +See also ``analyze-migration.py -h`` help for more options.
> +
> +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.
> +
> +- 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
> + to pad firmware images to convenient powers of 2 with plenty of space
> + for growth.
> +
> +- Care should be taken with device emulation code so that newer
> + emulation code can work with older firmware to allow forward migration.
> +
> +- Care should be taken with newer firmware so that backward migration
> + to older systems with older device emulation code will work.
> +
> +In some cases it may be best to tie specific firmware versions to specific
> +versioned machine types to cut down on the combinations that will need
> +support. This is also useful when newer versions of firmware outgrow
> +the padding.
> diff --git a/docs/devel/migration/index.rst b/docs/devel/migration/index.rst
> index 7fc02b9520..c09623b38f 100644
> --- a/docs/devel/migration/index.rst
> +++ b/docs/devel/migration/index.rst
> @@ -11,3 +11,4 @@ QEMU live migration works.
> compatibility
> vfio
> virtio
> + best-practises
> diff --git a/docs/devel/migration/main.rst b/docs/devel/migration/main.rst
> index b3e31bb52f..97811ce371 100644
> --- a/docs/devel/migration/main.rst
> +++ b/docs/devel/migration/main.rst
> @@ -52,27 +52,6 @@ All these migration protocols use the same infrastructure to
> save/restore state devices. This infrastructure is shared with the
> savevm/loadvm functionality.
>
> -Debugging
> -=========
> -
> -The migration stream can be analyzed thanks to ``scripts/analyze-migration.py``.
> -
> -Example usage:
> -
> -.. code-block:: shell
> -
> - $ qemu-system-x86_64 -display none -monitor stdio
> - (qemu) migrate "exec:cat > mig"
> - (qemu) q
> - $ ./scripts/analyze-migration.py -f mig
> - {
> - "ram (3)": {
> - "section sizes": {
> - "pc.ram": "0x0000000008000000",
> - ...
> -
> -See also ``analyze-migration.py -h`` help for more options.
> -
> Common infrastructure
> =====================
>
> @@ -970,26 +949,3 @@ the background migration channel. Anyone who cares about latencies of page
> faults during a postcopy migration should enable this feature. By default,
> it's not enabled.
>
> -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.
> -
> -- 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
> - to pad firmware images to convenient powers of 2 with plenty of space
> - for growth.
> -
> -- Care should be taken with device emulation code so that newer
> - emulation code can work with older firmware to allow forward migration.
> -
> -- Care should be taken with newer firmware so that backward migration
> - to older systems with older device emulation code will work.
> -
> -In some cases it may be best to tie specific firmware versions to specific
> -versioned machine types to cut down on the combinations that will need
> -support. This is also useful when newer versions of firmware outgrow
> -the padding.
next prev parent reply other threads:[~2024-01-09 7:05 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-09 6:46 [PATCH 00/10] docs/migration: Reorganize migration documentations peterx
2024-01-09 6:46 ` [PATCH 01/10] docs/migration: Create migration/ directory peterx
2024-01-09 6:52 ` Cédric Le Goater
2024-01-09 6:46 ` [PATCH 02/10] docs/migration: Create index page peterx
2024-01-09 6:53 ` Cédric Le Goater
2024-01-09 6:46 ` [PATCH 03/10] docs/migration: Convert virtio.txt into rST peterx
2024-01-09 7:02 ` Cédric Le Goater
2024-01-09 6:46 ` [PATCH 04/10] docs/migration: Split "Backwards compatibility" separately peterx
2024-01-09 7:03 ` Cédric Le Goater
2024-01-09 6:46 ` [PATCH 05/10] docs/migration: Split "Debugging" and "Firmware" peterx
2024-01-09 7:04 ` Cédric Le Goater [this message]
2024-01-09 17:03 ` Fabiano Rosas
2024-01-10 2:10 ` Peter Xu
2024-01-09 6:46 ` [PATCH 06/10] docs/migration: Split "Postcopy" peterx
2024-01-09 7:05 ` Cédric Le Goater
2024-01-09 6:46 ` [PATCH 07/10] docs/migration: Split "dirty limit" peterx
2024-01-09 7:06 ` Cédric Le Goater
2024-01-09 6:46 ` [PATCH 08/10] docs/migration: Organize "Postcopy" page peterx
2024-01-09 7:20 ` Cédric Le Goater
2024-01-09 6:46 ` [PATCH 09/10] docs/migration: Further move vfio to be feature of migration peterx
2024-01-09 7:20 ` Cédric Le Goater
2024-01-09 6:46 ` [PATCH 10/10] docs/migration: Further move virtio " peterx
2024-01-09 7:20 ` Cédric Le Goater
2024-01-09 10:49 ` [PATCH 00/10] docs/migration: Reorganize migration documentations Peter Xu
2024-01-09 13:21 ` Cédric Le Goater
2024-01-10 2:37 ` Peter Xu
2024-01-10 15:21 ` Cédric Le Goater
2024-01-11 2:42 ` Peter Xu
2024-01-11 6:20 ` Peter Xu
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=7a561c8e-300f-465c-9bcb-91b644a9a7b8@redhat.com \
--to=clg@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=bdas@redhat.com \
--cc=farosas@suse.de \
--cc=jasowang@redhat.com \
--cc=mst@redhat.com \
--cc=peterx@redhat.com \
--cc=ppandit@redhat.com \
--cc=qemu-devel@nongnu.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).