Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: c4f88b7136aa5aa5670a16c2f173ffb45da401b2 https://github.com/qemu/qemu/commit/c4f88b7136aa5aa5670a16c2f173ffb45da401b2 Author: Peter Xu <pet...@redhat.com> 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 <pbonz...@redhat.com> Cc: Thomas Huth <th...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> Link: https://lore.kernel.org/r/20250501151235.636709-1-pet...@redhat.com Signed-off-by: Peter Xu <pet...@redhat.com> Commit: 7b2e4f788d60a8ec25efbf1e6bb6552ee0cef17c https://github.com/qemu/qemu/commit/7b2e4f788d60a8ec25efbf1e6bb6552ee0cef17c Author: Li Zhijian <lizhij...@fujitsu.com> 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 <pet...@redhat.com> Signed-off-by: Li Zhijian <lizhij...@fujitsu.com> Link: https://lore.kernel.org/r/20250509014211.1272640-1-lizhij...@fujitsu.com Signed-off-by: Peter Xu <pet...@redhat.com> Commit: 6b84c46e8e0ef6f83f33657a29a8abb2b8362d02 https://github.com/qemu/qemu/commit/6b84c46e8e0ef6f83f33657a29a8abb2b8362d02 Author: Li Zhijian <lizhij...@fujitsu.com> 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/20250326095224.9918-1-jinpu.w...@ionos.com/ Cc: Jack Wang <jinpu.w...@ionos.com> Cc: Michael R. Galaxy <mrgal...@nvidia.com> Cc: Peter Xu <pet...@redhat.com> Cc: Yu Zhang <yu.zh...@ionos.com> Reviewed-by: Jack Wang <jinpu.w...@ionos.com> Signed-off-by: Li Zhijian <lizhij...@fujitsu.com> Link: https://lore.kernel.org/r/20250513012207.2867069-1-lizhij...@fujitsu.com [peterx: Fix over long lines] Signed-off-by: Peter Xu <pet...@redhat.com> Commit: e74598a981afe39d6f4951cd5d23101f537957bb https://github.com/qemu/qemu/commit/e74598a981afe39d6f4951cd5d23101f537957bb Author: Fabiano Rosas <faro...@suse.de> 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 <pet...@redhat.com> Signed-off-by: Fabiano Rosas <faro...@suse.de> Link: https://lore.kernel.org/r/20250513133353.23022-2-faro...@suse.de Signed-off-by: Peter Xu <pet...@redhat.com> Commit: d5845228b41dbf44f85744e64c3c1744f76a368d https://github.com/qemu/qemu/commit/d5845228b41dbf44f85744e64c3c1744f76a368d Author: Fabiano Rosas <faro...@suse.de> 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 <stefa...@redhat.com> Reviewed-by: Peter Xu <pet...@redhat.com> Signed-off-by: Fabiano Rosas <faro...@suse.de> Link: https://lore.kernel.org/r/20250513133353.23022-3-faro...@suse.de Signed-off-by: Peter Xu <pet...@redhat.com> Commit: 371650534d44c8b27249ca615d908a037f75b048 https://github.com/qemu/qemu/commit/371650534d44c8b27249ca615d908a037f75b048 Author: Fabiano Rosas <faro...@suse.de> 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 <pet...@redhat.com> Signed-off-by: Fabiano Rosas <faro...@suse.de> Link: https://lore.kernel.org/r/20250513133353.23022-4-faro...@suse.de Signed-off-by: Peter Xu <pet...@redhat.com> Commit: 249543d0c02d7645b8bcda552dad138769e96831 https://github.com/qemu/qemu/commit/249543d0c02d7645b8bcda552dad138769e96831 Author: Prasad Pandit <p...@fedoraproject.org> 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 <p...@fedoraproject.org> Reviewed-by: Fabiano Rosas <faro...@suse.de> Link: https://lore.kernel.org/r/20250512125124.147064-2-ppan...@redhat.com Signed-off-by: Peter Xu <pet...@redhat.com> Commit: e27418861288285d20352448fef4491a68223d39 https://github.com/qemu/qemu/commit/e27418861288285d20352448fef4491a68223d39 Author: Prasad Pandit <p...@fedoraproject.org> 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 <faro...@suse.de> Signed-off-by: Prasad Pandit <p...@fedoraproject.org> Link: https://lore.kernel.org/r/20250512125124.147064-3-ppan...@redhat.com Signed-off-by: Peter Xu <pet...@redhat.com> Commit: 766bbabac8f00bc5cf23ba90a8326678636280ed https://github.com/qemu/qemu/commit/766bbabac8f00bc5cf23ba90a8326678636280ed Author: Prasad Pandit <p...@fedoraproject.org> 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 <p...@fedoraproject.org> Link: https://lore.kernel.org/r/20250512125124.147064-4-ppan...@redhat.com [peterx: rename all new tests to be under /migration/multifd+postcopy/] Signed-off-by: Peter Xu <pet...@redhat.com> Commit: 6be7696129b302830a9cff7e30484e08c2d64b57 https://github.com/qemu/qemu/commit/6be7696129b302830a9cff7e30484e08c2d64b57 Author: Maciej S. Szmigiero <maciej.szmigi...@oracle.com> 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 <maciej.szmigi...@oracle.com> Reviewed-by: Fabiano Rosas <faro...@suse.de> Link: https://lore.kernel.org/r/3bd5f48578e29f3a78f41b1e4fbea3d4b2d9b136.1747403393.git.maciej.szmigi...@oracle.com Signed-off-by: Peter Xu <pet...@redhat.com> Commit: 17bec9235bb0775cf8dec4103c167757ee8898f3 https://github.com/qemu/qemu/commit/17bec9235bb0775cf8dec4103c167757ee8898f3 Author: Peter Xu <pet...@redhat.com> 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 <d...@treblig.org> Reviewed-by: Juraj Marcin <jmar...@redhat.com> Signed-off-by: Peter Xu <pet...@redhat.com> Commit: e09c6d837593aa1e12d92d7031c65a881eb2eb27 https://github.com/qemu/qemu/commit/e09c6d837593aa1e12d92d7031c65a881eb2eb27 Author: Peter Xu <pet...@redhat.com> 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 <d...@treblig.org> Tested-by: Mario Casquero <mcasq...@redhat.com> [peterx: print "," too in 1st line of RAM info] Signed-off-by: Peter Xu <pet...@redhat.com> Commit: c6e1f60cc73c787317316bb2956f9a95a5daee15 https://github.com/qemu/qemu/commit/c6e1f60cc73c787317316bb2956f9a95a5daee15 Author: Stefan Hajnoczi <stefa...@redhat.com> 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 "pet...@redhat.com" # gpg: Good signature from "Peter Xu <xzpe...@gmail.com>" [full] # gpg: aka "Peter Xu <pet...@redhat.com>" [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 <stefa...@redhat.com> 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