Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: c4f88b7136aa5aa5670a16c2f173ffb45da401b2
https://github.com/qemu/qemu/commit/c4f88b7136aa5aa5670a16c2f173ffb45da401b2
Author: Peter Xu <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M scripts/vmstate-static-checker.py
Log Message:
-----------
scripts/vmstate-static-checker.py: Add new hpet entry for num_timers
The old "num_timers" got a rename. See commit 1433e38cc8 ("hpet: do not
overwrite properties on post_load") for more details. Teach the script to
accept the new name.
Cc: Paolo Bonzini <[email protected]>
Cc: Thomas Huth <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>
Commit: 7b2e4f788d60a8ec25efbf1e6bb6552ee0cef17c
https://github.com/qemu/qemu/commit/7b2e4f788d60a8ec25efbf1e6bb6552ee0cef17c
Author: Li Zhijian <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M tests/qtest/migration/precopy-tests.c
Log Message:
-----------
qtest/migration/rdma: Enforce RLIMIT_MEMLOCK >= 128MB requirement
Ensure successful migration over RDMA by verifying that RLIMIT_MEMLOCK is
set to at least 128MB. This allocation is necessary due to the requirement
to pin significant portions of guest memory, typically exceeding 100MB
in this test, while the remainder is transmitted as compressed zero pages.
Otherwise, it will fail with:
stderr:
qemu-system-x86_64: cannot get rkey
qemu-system-x86_64: error while loading state section id 2(ram)
qemu-system-x86_64: load of migration failed: Operation not permitted
qemu-system-x86_64: rdma migration: recv polling control error!
qemu-system-x86_64: RDMA is in an error state waiting migration to abort!
qemu-system-x86_64: failed to save SaveStateEntry with id(name): 2(ram): -1
qemu-system-x86_64: Channel error: Operation not permitted
Reported-by: Peter Xu <[email protected]>
Signed-off-by: Li Zhijian <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>
Commit: 6b84c46e8e0ef6f83f33657a29a8abb2b8362d02
https://github.com/qemu/qemu/commit/6b84c46e8e0ef6f83f33657a29a8abb2b8362d02
Author: Li Zhijian <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M scripts/rdma-migration-helper.sh
M tests/qtest/migration/precopy-tests.c
Log Message:
-----------
qtest/migration/rdma: Add test for rdma migration with ipv6
Recently, we removed ipv6 restriction[0] from RDMA migration, add a
test for it.
[0]
https://lore.kernel.org/qemu-devel/[email protected]/
Cc: Jack Wang <[email protected]>
Cc: Michael R. Galaxy <[email protected]>
Cc: Peter Xu <[email protected]>
Cc: Yu Zhang <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Signed-off-by: Li Zhijian <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[peterx: Fix over long lines]
Signed-off-by: Peter Xu <[email protected]>
Commit: e74598a981afe39d6f4951cd5d23101f537957bb
https://github.com/qemu/qemu/commit/e74598a981afe39d6f4951cd5d23101f537957bb
Author: Fabiano Rosas <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M .gitlab-ci.d/buildtest.yml
Log Message:
-----------
ci: Re-enable python subtests in qtest migration suite
The migration compatibility tests have been running with the PYTHON
variable unset to avoid running a broken test. The faulty test has
since been removed, so we can enable the python tests once again.
Aside from the broken test, only one other test uses python and I have
been running it locally ever since, so this commit should not expose
any new bug.
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>
Commit: d5845228b41dbf44f85744e64c3c1744f76a368d
https://github.com/qemu/qemu/commit/d5845228b41dbf44f85744e64c3c1744f76a368d
Author: Fabiano Rosas <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M .gitlab-ci.d/buildtest.yml
Log Message:
-----------
ci: Fix build-previous-qemu when the version tag is absent
Stefan reports that during QEMU release, pushing a series with the
VERSION bump commit, but not pushing the new git tag in the same
command will cause a failure of the build-previous-qemu job at the git
fetch step.
Since the job is intended to produce a build of the previous QEMU
version for consumption by the migration-compat-* jobs, there's no
reason to produce a build of the release commit because the migration
job would end up testing the release against itself.
Skip the job when VERSION contains the newly release version number.
I'm opting for 'exit 0' for both the build and the test jobs because
allow_failure would mask any real error in the jobs. It also avoids
having an orange ! on every release pipeline.
Reported-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>
Commit: 371650534d44c8b27249ca615d908a037f75b048
https://github.com/qemu/qemu/commit/371650534d44c8b27249ca615d908a037f75b048
Author: Fabiano Rosas <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M .gitlab-ci.d/buildtest.yml
Log Message:
-----------
ci: Reduce the size of artifacts for build-previous-qemu
The build-previous-qemu job is intented to produce a build of the
previous QEMU release for consumption by the migration-compat-*
jobs. Keep only the pieces of the build that are necessary.
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>
Commit: 249543d0c02d7645b8bcda552dad138769e96831
https://github.com/qemu/qemu/commit/249543d0c02d7645b8bcda552dad138769e96831
Author: Prasad Pandit <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M migration/multifd-zero-page.c
Log Message:
-----------
migration: write zero pages when postcopy enabled
During multifd migration, zero pages are written if
they are migrated more than once.
This may result in a migration thread hang issue when
multifd and postcopy are enabled together.
When postcopy is enabled, always write zero pages as and
when they are migrated.
Signed-off-by: Prasad Pandit <[email protected]>
Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>
Commit: e27418861288285d20352448fef4491a68223d39
https://github.com/qemu/qemu/commit/e27418861288285d20352448fef4491a68223d39
Author: Prasad Pandit <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M migration/multifd-nocomp.c
M migration/multifd.c
M migration/options.c
M migration/ram.c
Log Message:
-----------
migration: enable multifd and postcopy together
Enable Multifd and Postcopy migration together.
The migration_ioc_process_incoming() routine checks
magic value sent on each channel and helps to properly
setup multifd and postcopy channels.
The Precopy and Multifd threads work during the initial
guest RAM transfer. When migration moves to the Postcopy
phase, the multifd threads cease to send data on multifd
channels and Postcopy threads on the destination
request/pull data from the source side.
Reviewed-by: Fabiano Rosas <[email protected]>
Signed-off-by: Prasad Pandit <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>
Commit: 766bbabac8f00bc5cf23ba90a8326678636280ed
https://github.com/qemu/qemu/commit/766bbabac8f00bc5cf23ba90a8326678636280ed
Author: Prasad Pandit <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M tests/qtest/migration/compression-tests.c
M tests/qtest/migration/postcopy-tests.c
M tests/qtest/migration/precopy-tests.c
M tests/qtest/migration/tls-tests.c
Log Message:
-----------
tests/qtest/migration: add postcopy tests with multifd
Add new qtests to run postcopy migration with multifd
channels enabled.
Signed-off-by: Prasad Pandit <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[peterx: rename all new tests to be under /migration/multifd+postcopy/]
Signed-off-by: Peter Xu <[email protected]>
Commit: 6be7696129b302830a9cff7e30484e08c2d64b57
https://github.com/qemu/qemu/commit/6be7696129b302830a9cff7e30484e08c2d64b57
Author: Maciej S. Szmigiero <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M migration/multifd.c
Log Message:
-----------
migration/multifd: Don't send device state packets with zerocopy flag
If zerocopy is enabled for multifd then QIO_CHANNEL_WRITE_FLAG_ZERO_COPY
flag is forced into all multifd channel write calls via p->write_flags
that was setup in multifd_nocomp_send_setup().
However, device state packets aren't compatible with zerocopy - the data
buffer isn't getting kept pinned until multifd channel flush.
Make sure to mask that QIO_CHANNEL_WRITE_FLAG_ZERO_COPY flag in a multifd
send thread if the data being sent is device state.
Fixes: 0525b91a0b99 ("migration/multifd: Device state transfer support - send
side")
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Fabiano Rosas <[email protected]>
Link:
https://lore.kernel.org/r/3bd5f48578e29f3a78f41b1e4fbea3d4b2d9b136.1747403393.git.maciej.szmigi...@oracle.com
Signed-off-by: Peter Xu <[email protected]>
Commit: 17bec9235bb0775cf8dec4103c167757ee8898f3
https://github.com/qemu/qemu/commit/17bec9235bb0775cf8dec4103c167757ee8898f3
Author: Peter Xu <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M migration/options.c
Log Message:
-----------
migration: Allow caps to be set when preempt or multifd cap enabled
With commit 82137e6c8c ("migration: enforce multifd and postcopy preempt to
be set before incoming"), and if postcopy preempt / multifd is enabled, one
cannot setup any capability because these checks would always fail.
(qemu) migrate_set_capability xbzrle off
Error: Postcopy preempt must be set before incoming starts
To fix it, check existing cap and only raise an error if the specific cap
changed.
Fixes: 82137e6c8c ("migration: enforce multifd and postcopy preempt to be set
before incoming")
Reviewed-by: Dr. David Alan Gilbert <[email protected]>
Reviewed-by: Juraj Marcin <[email protected]>
Signed-off-by: Peter Xu <[email protected]>
Commit: e09c6d837593aa1e12d92d7031c65a881eb2eb27
https://github.com/qemu/qemu/commit/e09c6d837593aa1e12d92d7031c65a881eb2eb27
Author: Peter Xu <[email protected]>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M hmp-commands-info.hx
M migration/migration-hmp-cmds.c
Log Message:
-----------
migration/hmp: Add "info migrate -a", reorg the dump
A new parameter "-a" is added to "info migrate" to dump all info, while
when not specified it only dumps the important ones. When at it, reorg
everything to make it easier to read for human.
The general rule is:
- Put important things at the top
- Reuse a single line when things are very relevant, hence reducing lines
needed to show the results
- Remove almost useless ones (e.g. "normal_bytes", while we also have
both "page size" and "normal" pages)
- Regroup things, so that related fields will show together
- etc.
Before this change, it looks like (one example of a completed case):
globals:
store-global-state: on
only-migratable: off
send-configuration: on
send-section-footer: on
send-switchover-start: on
clear-bitmap-shift: 18
Migration status: completed
total time: 122952 ms
downtime: 76 ms
setup: 15 ms
transferred ram: 130825923 kbytes
throughput: 8717.68 mbps
remaining ram: 0 kbytes
total ram: 16777992 kbytes
duplicate: 997263 pages
normal: 32622225 pages
normal bytes: 130488900 kbytes
dirty sync count: 10
page size: 4 kbytes
multifd bytes: 117134260 kbytes
pages-per-second: 169431
postcopy request count: 5835
precopy ram: 15 kbytes
postcopy ram: 13691151 kbytes
After this change, sample output (default, no "-a" specified):
Status: postcopy-active
Time (ms): total=40504, setup=14, down=145
RAM info:
Bandwidth (mbps): 6102.65
Sizes (KB): psize=4, total=16777992,
transferred=37673019, remain=2136404,
precopy=3, multifd=26108780, postcopy=11563855
Pages: normal=9394288, zero=600672, rate_per_sec=185875
Others: dirty_syncs=3, dirty_pages_rate=278378, postcopy_req=4078
Sample output when "-a" specified:
Status: active
Time (ms): total=3040, setup=4, exp_down=300
RAM info:
Throughput (mbps): 10.51
Sizes (KB): psize=4, total=4211528,
transferred=3979, remain=4206452,
precopy=3978, multifd=0, postcopy=0
Pages: normal=992, zero=277, rate_per_sec=320
Others: dirty_syncs=1
Globals:
store-global-state: on
only-migratable: off
send-configuration: on
send-section-footer: on
send-switchover-start: on
clear-bitmap-shift: 18
XBZRLE: size=67108864, transferred=0, pages=0, miss=188451
miss_rate=0.00, encode_rate=0.00, overflow=0
CPU Throttle (%): 0
Dirty-limit Throttle (us): 0
Dirty-limit Ring Full (us): 0
Postcopy Blocktime (ms): 0
Postcopy vCPU Blocktime: ...
Reviewed-by: Dr. David Alan Gilbert <[email protected]>
Tested-by: Mario Casquero <[email protected]>
[peterx: print "," too in 1st line of RAM info]
Signed-off-by: Peter Xu <[email protected]>
Commit: c6e1f60cc73c787317316bb2956f9a95a5daee15
https://github.com/qemu/qemu/commit/c6e1f60cc73c787317316bb2956f9a95a5daee15
Author: Stefan Hajnoczi <[email protected]>
Date: 2025-05-21 (Wed, 21 May 2025)
Changed paths:
M .gitlab-ci.d/buildtest.yml
M hmp-commands-info.hx
M migration/migration-hmp-cmds.c
M migration/multifd-nocomp.c
M migration/multifd-zero-page.c
M migration/multifd.c
M migration/options.c
M migration/ram.c
M scripts/rdma-migration-helper.sh
M scripts/vmstate-static-checker.py
M tests/qtest/migration/compression-tests.c
M tests/qtest/migration/postcopy-tests.c
M tests/qtest/migration/precopy-tests.c
M tests/qtest/migration/tls-tests.c
Log Message:
-----------
Merge tag 'migration-20250520-pull-request' of https://gitlab.com/peterx/qemu
into staging
Migration pull
- Peter's vmstate static checker entry for recent hpet change
- Zhijian's rdma test patch to properly skip tests when locked_vm too low,
and ipv6 test
- Fabiano's few CI changes
- Prasad's last patches to enable postcopy on precopy-multifd
- Maciej's fix to disable multifd zerocopy for device states
- Peter's HMP change to "info migrate", plus a small fix on cap set
# -----BEGIN PGP SIGNATURE-----
#
# iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCaCy2xxIccGV0ZXJ4QHJl
# ZGhhdC5jb20ACgkQO1/MzfOr1waNZgD9HRflpY6sqcXt9wPKYgJFAyPN9Jg05kGO
# jeRIhD9cvyIBAN5AjbE0gaN8f+BLR5vcNk0Q5uOaHHIFZxL7tJl8ob4L
# =WTpL
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 20 May 2025 13:07:19 EDT
# gpg: using EDDSA key B9184DC20CC457DACF7DD1A93B5FCCCDF3ABD706
# gpg: issuer "[email protected]"
# gpg: Good signature from "Peter Xu <[email protected]>" [full]
# gpg: aka "Peter Xu <[email protected]>" [full]
# Primary key fingerprint: B918 4DC2 0CC4 57DA CF7D D1A9 3B5F CCCD F3AB D706
* tag 'migration-20250520-pull-request' of https://gitlab.com/peterx/qemu:
migration/hmp: Add "info migrate -a", reorg the dump
migration: Allow caps to be set when preempt or multifd cap enabled
migration/multifd: Don't send device state packets with zerocopy flag
tests/qtest/migration: add postcopy tests with multifd
migration: enable multifd and postcopy together
migration: write zero pages when postcopy enabled
ci: Reduce the size of artifacts for build-previous-qemu
ci: Fix build-previous-qemu when the version tag is absent
ci: Re-enable python subtests in qtest migration suite
qtest/migration/rdma: Add test for rdma migration with ipv6
qtest/migration/rdma: Enforce RLIMIT_MEMLOCK >= 128MB requirement
scripts/vmstate-static-checker.py: Add new hpet entry for num_timers
Signed-off-by: Stefan Hajnoczi <[email protected]>
Compare: https://github.com/qemu/qemu/compare/f0737158b483...c6e1f60cc73c
To unsubscribe from these emails, change your notification settings at
https://github.com/qemu/qemu/settings/notifications