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

Reply via email to