diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2024-10-04 17:08:01 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2024-10-04 17:08:01 +0100 |
| commit | a3fb4e93a3a7cf2be355c41cd550bef856f5ffe4 (patch) | |
| tree | 942ff6c7ae33112c34bd35c9c9c0d1173508c53e /docs/devel | |
| parent | 33dab2dda093a330656778c48ce88fb9c446cbf9 (diff) | |
| parent | 6b7d2f6e1896fb675e8518ed61c792d4dd92e034 (diff) | |
| download | focaccia-qemu-a3fb4e93a3a7cf2be355c41cd550bef856f5ffe4.tar.gz focaccia-qemu-a3fb4e93a3a7cf2be355c41cd550bef856f5ffe4.zip | |
Merge tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu into staging
trivial patches for 2024-10-04
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEZKoqtTHVaQM2a/75gqpKJDselHgFAmcAEU0ACgkQgqpKJDse
# lHgJlhAAmDwxXcHIeNgyOxSmopgKC5VKmux1qvi3PNmM46CGYTDG3s4MIUIRPNhi
# zoLQhSdjcFNQi133WoXAWZInTwYCeEe4JbWev7bTDZxoJvZFss6P/DhmSY7tCnaf
# QU+XeNl86Iy28glZjiL9EFZi7SM9+OWVF5Dqxd2NlCNA6OlnAtHoVp3bHUqkVgr1
# Lhq+0GRsxhU9bg3eO+yGXVquuOtSMa5LjEqP6kUe6ajo1E4/+GqO9hvfaj8K35Da
# B5wa39/MnSN0alnNS8rJUJXxBp2hZt8VamntL86v4kMLQCVGR+KL5FmApZzxzM/r
# fY8Ky4b5w8U0BDXnwCcr3A2bYlurC7FhDgBJw3YCQNwbxQbbG7PfbMATD86nfZPd
# HTjDjn874reGXgdXt15+3q1zm8kDylMZxEJpRdmsB+uYFVDlNCimPcCPe1YSjVcW
# AR5/NubrigpuX8qM5tSiLhjoeAZ0vQjoapGs5zi2dQtg4MltRgi32HPIRq3ooUUg
# T2XBhDUElrwwftGQuDN6Vt5Z0EQPP6HDoFLz0VhzWvlsR5DOLjxK4oLsDmQoV34n
# 9I4wSmFzwX0Vy0QJIjL6LFec/Ky8uO7QAX5PCLcsEnZy+/q2GsSdwXCPT+SPJ1AL
# bEfqLw7U6CSv/eiGOpScCnCLENrw3GXrN31SqtOtgxDPj2lVEsU=
# =HYZX
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 04 Oct 2024 17:01:17 BST
# gpg: using RSA key 64AA2AB531D56903366BFEF982AA4A243B1E9478
# gpg: Good signature from "Michael Tokarev <mjt@debian.org>" [full]
# gpg: aka "Michael Tokarev <mjt@corpit.ru>" [full]
# gpg: aka "Michael Tokarev <mjt@tls.msk.ru>" [full]
# Primary key fingerprint: 9D8B E14E 3F2A 9DD7 9199 28F1 61AD 3D98 ECDF 2C8E
# Subkey fingerprint: 64AA 2AB5 31D5 6903 366B FEF9 82AA 4A24 3B1E 9478
* tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu: (23 commits)
MAINTAINERS: Add myself as maintainer of e500 machines
docs/devel: Mention post_load hook restrictions where we document the hook
tests/functional: Fix hash validation
hw/mips: Build fw_cfg.c once
tests/tcg/plugins: Remove remainder of the cris target
block-backend: Remove deadcode
hw/net/rocker: Remove unused rocker_fp_ports
hw/pci: Remove unused pcie_chassis_find_slot
replay: Remove unused replay_disable_events
remote: Remove unused remote_iohub_finalize
vhost: Remove unused vhost_dev_{load|save}_inflight
ui/cursor: remove cursor_get_mono_image
hw: Remove unused fw_cfg_init_io
linux-user: Remove unused handle_vm86_fault
hw/char: Remove unused serial_set_frequency
hw/net/net_rx_pkt: Remove deadcode
net: Remove deadcode
q35: Remove unused mch_mcfg_base
hw/xen: Remove deadcode
MAINTAINERS: remove gensyscalls.sh from the linux-user section
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'docs/devel')
| -rw-r--r-- | docs/devel/migration/main.rst | 6 | ||||
| -rw-r--r-- | docs/devel/replay.rst | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/docs/devel/migration/main.rst b/docs/devel/migration/main.rst index 784c899dca..c2857fc244 100644 --- a/docs/devel/migration/main.rst +++ b/docs/devel/migration/main.rst @@ -465,6 +465,12 @@ Examples of such API functions are: - portio_list_set_address() - portio_list_set_enabled() +Since the order of device save/restore is not defined, you must +avoid accessing or changing any other device's state in one of these +callbacks. (For instance, don't do anything that calls ``update_irq()`` +in a ``post_load`` hook.) Otherwise, restore will not be deterministic, +and this will break execution record/replay. + Iterative device migration -------------------------- diff --git a/docs/devel/replay.rst b/docs/devel/replay.rst index effd856f0c..40f58d9d4f 100644 --- a/docs/devel/replay.rst +++ b/docs/devel/replay.rst @@ -202,6 +202,9 @@ into the log. Saving/restoring the VM state ----------------------------- +Record/replay relies on VM state save and restore being complete and +deterministic. + All fields in the device state structure (including virtual timers) should be restored by loadvm to the same values they had before savevm. |