qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 87a284: migration: massage cpr-reboot documen


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 87a284: migration: massage cpr-reboot documentation
Date: Tue, 05 Mar 2024 03:23:23 -0800

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 87a2848715f5fc4fa114574dbbf7a5564cb4cdd7
      
https://github.com/qemu/qemu/commit/87a2848715f5fc4fa114574dbbf7a5564cb4cdd7
  Author: Steve Sistare <steven.sistare@oracle.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M qapi/migration.json

  Log Message:
  -----------
  migration: massage cpr-reboot documentation

Re-wrap the cpr-reboot documentation to 70 columns, use '@' for
cpr-reboot references, capitalize COLO and VFIO, and tweak the
wording.

Suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Link: 
https://lore.kernel.org/r/1709218462-3640-1-git-send-email-steven.sistare@oracle.com
[peterx: s/qemu/QEMU per Markus's suggestion]
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: b4014a2bf57ce08e2f6458cd82e9f968facf25c8
      
https://github.com/qemu/qemu/commit/b4014a2bf57ce08e2f6458cd82e9f968facf25c8
  Author: Bryan Zhang <bryan.zhang@BYTEDANCE.COM>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/options.c

  Log Message:
  -----------
  migration: Properly apply migration compression level parameters

Some glue code was missing, so that using `qmp_migrate_set_parameters`
to set `multifd-zstd-level` or `multifd-zlib-level` did not work. This
commit adds the glue code to fix that.

Signed-off-by: Bryan Zhang <bryan.zhang@bytedance.com>
Link: 
https://lore.kernel.org/r/20240301035901.4006936-2-bryan.zhang@bytedance.com
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 2b571432314ab42da742fbb578f4174166ecd7f5
      
https://github.com/qemu/qemu/commit/2b571432314ab42da742fbb578f4174166ecd7f5
  Author: Bryan Zhang <bryan.zhang@BYTEDANCE.COM>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M tests/qtest/migration-test.c

  Log Message:
  -----------
  tests/migration: Set compression level in migration tests

Adds calls to set compression level for `zstd` and `zlib` migration
tests, just to make sure that the calls work.

Signed-off-by: Bryan Zhang <bryan.zhang@bytedance.com>
Link: 
https://lore.kernel.org/r/20240301035901.4006936-3-bryan.zhang@bytedance.com
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 4aac6b1e9bd48677c4f24518fe86ffd34c677d5a
      
https://github.com/qemu/qemu/commit/4aac6b1e9bd48677c4f24518fe86ffd34c677d5a
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/multifd.c
    M migration/trace-events

  Log Message:
  -----------
  migration/multifd: Cleanup multifd_recv_sync_main

Some minor cleanups and documentation for multifd_recv_sync_main.

Use thread_count as done in other parts of the code. Remove p->id from
the multifd_recv_state sync, since that is global and not tied to a
channel. Add documentation for the sync steps.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-2-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 401e311ff72e0a62c834bfe466de68a82cfd90cb
      
https://github.com/qemu/qemu/commit/401e311ff72e0a62c834bfe466de68a82cfd90cb
  Author: Nikolay Borisov <nborisov@suse.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M include/io/channel.h
    M io/channel-file.c

  Log Message:
  -----------
  io: add and implement QIO_CHANNEL_FEATURE_SEEKABLE for channel file

Add a generic QIOChannel feature SEEKABLE which would be used by the
qemu_file* apis. For the time being this will be only implemented for
file channels.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-3-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: f1cfe39418a837e8dd52a7e75331f1606949deff
      
https://github.com/qemu/qemu/commit/f1cfe39418a837e8dd52a7e75331f1606949deff
  Author: Nikolay Borisov <nborisov@suse.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M include/io/channel.h
    M io/channel.c

  Log Message:
  -----------
  io: Add generic pwritev/preadv interface

Introduce basic pwritev/preadv support in the generic channel layer.
Specific implementation will follow for the file channel as this is
required in order to support migration streams with fixed location of
each ram page.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-4-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 0478b030fa2530cbbfc4d6432e8e39a16d06865b
      
https://github.com/qemu/qemu/commit/0478b030fa2530cbbfc4d6432e8e39a16d06865b
  Author: Nikolay Borisov <nborisov@suse.com>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M io/channel-file.c

  Log Message:
  -----------
  io: implement io_pwritev/preadv for QIOChannelFile

The upcoming 'mapped-ram' feature will require qemu to write data to
(and restore from) specific offsets of the migration file.

Add a minimal implementation of pwritev/preadv and expose them via the
io_pwritev and io_preadv interfaces.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-5-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: c05dfcb7f2c5e39fc47c347de305df4e6afb4fa9
      
https://github.com/qemu/qemu/commit/c05dfcb7f2c5e39fc47c347de305df4e6afb4fa9
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M io/channel-file.c

  Log Message:
  -----------
  io: fsync before closing a file channel

Make sure the data is flushed to disk before closing file
channels. This is to ensure data is on disk and not lost in the event
of a host crash.

This is currently being implemented to affect the migration code when
migrating to a file, but all QIOChannelFile users should benefit from
the change.

Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Acked-by: "Daniel P. Berrangé" <berrange@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-6-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 7f5b50a40181bd75c1f74aeaa7fe94fe10680720
      
https://github.com/qemu/qemu/commit/7f5b50a40181bd75c1f74aeaa7fe94fe10680720
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M include/migration/qemu-file-types.h
    M migration/qemu-file.c
    M migration/qemu-file.h

  Log Message:
  -----------
  migration/qemu-file: add utility methods for working with seekable channels

Add utility methods that will be needed when implementing 'mapped-ram'
migration capability.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Link: https://lore.kernel.org/r/20240229153017.2221-7-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 4ed49feb4449f6959256c083afcb94116561b507
      
https://github.com/qemu/qemu/commit/4ed49feb4449f6959256c083afcb94116561b507
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M docs/devel/migration/features.rst
    A docs/devel/migration/mapped-ram.rst
    M migration/migration.c
    M migration/options.c
    M migration/options.h
    M migration/savevm.c
    M qapi/migration.json

  Log Message:
  -----------
  migration/ram: Introduce 'mapped-ram' migration capability

Add a new migration capability 'mapped-ram'.

The core of the feature is to ensure that RAM pages are mapped
directly to offsets in the resulting migration file instead of being
streamed at arbitrary points.

The reasons why we'd want such behavior are:

 - The resulting file will have a bounded size, since pages which are
   dirtied multiple times will always go to a fixed location in the
   file, rather than constantly being added to a sequential
   stream. This eliminates cases where a VM with, say, 1G of RAM can
   result in a migration file that's 10s of GBs, provided that the
   workload constantly redirties memory.

 - It paves the way to implement O_DIRECT-enabled save/restore of the
   migration stream as the pages are ensured to be written at aligned
   offsets.

 - It allows the usage of multifd so we can write RAM pages to the
   migration file in parallel.

For now, enabling the capability has no effect. The next couple of
patches implement the core functionality.

Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-8-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 8d9e0d41006f094a8a377f0a12bef1e34b0a70b7
      
https://github.com/qemu/qemu/commit/8d9e0d41006f094a8a377f0a12bef1e34b0a70b7
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: Add mapped-ram URI compatibility check

The mapped-ram migration format needs a channel that supports seeking
to be able to write each page to an arbitrary offset in the migration
stream.

Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-9-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: c2d5c4a7cb7f59125c34e5b883d5d91336761661
      
https://github.com/qemu/qemu/commit/c2d5c4a7cb7f59125c34e5b883d5d91336761661
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M include/exec/ramblock.h
    M migration/ram.c

  Log Message:
  -----------
  migration/ram: Add outgoing 'mapped-ram' migration

Implement the outgoing migration side for the 'mapped-ram' capability.

A bitmap is introduced to track which pages have been written in the
migration file. Pages are written at a fixed location for every
ramblock. Zero pages are ignored as they'd be zero in the destination
migration as well.

The migration stream is altered to put the dirty pages for a ramblock
after its header instead of having a sequential stream of pages that
follow the ramblock headers.

Without mapped-ram (current):        With mapped-ram (new):

 ---------------------               --------------------------------
 | ramblock 1 header |               | ramblock 1 header            |
 ---------------------               --------------------------------
 | ramblock 2 header |               | ramblock 1 mapped-ram header |
 ---------------------               --------------------------------
 | ...               |               | padding to next 1MB boundary |
 ---------------------               | ...                          |
 | ramblock n header |               --------------------------------
 ---------------------               | ramblock 1 pages             |
 | RAM_SAVE_FLAG_EOS |               | ...                          |
 ---------------------               --------------------------------
 | stream of pages   |               | ramblock 2 header            |
 | (iter 1)          |               --------------------------------
 | ...               |               | ramblock 2 mapped-ram header |
 ---------------------               --------------------------------
 | RAM_SAVE_FLAG_EOS |               | padding to next 1MB boundary |
 ---------------------               | ...                          |
 | stream of pages   |               --------------------------------
 | (iter 2)          |               | ramblock 2 pages             |
 | ...               |               | ...                          |
 ---------------------               --------------------------------
 | ...               |               | ...                          |
 ---------------------               --------------------------------
                                     | RAM_SAVE_FLAG_EOS            |
                                     --------------------------------
                                     | ...                          |
                                     --------------------------------

where:
 - ramblock header: the generic information for a ramblock, such as
   idstr, used_len, etc.

 - ramblock mapped-ram header: the new information added by this
   feature: bitmap of pages written, bitmap size and offset of pages
   in the migration file.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-10-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 2f6b8826a542a5a2e8eb3fbf097ea6982ba5bf31
      
https://github.com/qemu/qemu/commit/2f6b8826a542a5a2e8eb3fbf097ea6982ba5bf31
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/ram: Add incoming 'mapped-ram' migration

Add the necessary code to parse the format changes for the
'mapped-ram' capability.

One of the more notable changes in behavior is that in the
'mapped-ram' case ram pages are restored in one go rather than
constantly looping through the migration stream.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-11-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: c7076ec350421706e4dfe048a9f37b603f5a40b9
      
https://github.com/qemu/qemu/commit/c7076ec350421706e4dfe048a9f37b603f5a40b9
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M tests/qtest/migration-test.c

  Log Message:
  -----------
  tests/qtest/migration: Add tests for mapped-ram file-based migration

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-12-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 402dd7ac1c3be44f306c903cdfd2583ffec5e2fd
      
https://github.com/qemu/qemu/commit/402dd7ac1c3be44f306c903cdfd2583ffec5e2fd
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/multifd-zlib.c
    M migration/multifd-zstd.c
    M migration/multifd.h

  Log Message:
  -----------
  migration/multifd: Rename MultiFDSend|RecvParams::data to compress_data

Use a more specific name for the compression data so we can use the
generic for the multifd core code.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-13-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 9db191251381c75e57201f7b07330ca982a55d1e
      
https://github.com/qemu/qemu/commit/9db191251381c75e57201f7b07330ca982a55d1e
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/multifd-zlib.c
    M migration/multifd-zstd.c
    M migration/multifd.c
    M migration/multifd.h

  Log Message:
  -----------
  migration/multifd: Decouple recv method from pages

Next patches will abstract the type of data being received by the
channels, so do some cleanup now to remove references to pages and
dependency on 'normal_num'.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-14-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 06833d83f8978139395da0f1d6a9fad81b9dd024
      
https://github.com/qemu/qemu/commit/06833d83f8978139395da0f1d6a9fad81b9dd024
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/multifd.c

  Log Message:
  -----------
  migration/multifd: Allow multifd without packets

For the upcoming support to the new 'mapped-ram' migration stream
format, we cannot use multifd packets because each write into the
ramblock section in the migration file is expected to contain only the
guest pages. They are written at their respective offsets relative to
the ramblock section header.

There is no space for the packet information and the expected gains
from the new approach come partly from being able to write the pages
sequentially without extraneous data in between.

The new format also simply doesn't need the packets and all necessary
information can be taken from the standard migration headers with some
(future) changes to multifd code.

Use the presence of the mapped-ram capability to decide whether to
send packets.

This only moves code under multifd_use_packets(), it has no effect for
now as mapped-ram cannot yet be enabled with multifd.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-15-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: d117ed0699d4117e75b67d76d9678785c676e21c
      
https://github.com/qemu/qemu/commit/d117ed0699d4117e75b67d76d9678785c676e21c
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/file.c
    M migration/multifd.c
    M migration/multifd.h

  Log Message:
  -----------
  migration/multifd: Allow receiving pages without packets

Currently multifd does not need to have knowledge of pages on the
receiving side because all the information needed is within the
packets that come in the stream.

We're about to add support to mapped-ram migration, which cannot use
packets because it expects the ramblock section in the migration file
to contain only the guest pages data.

Add a data structure to transfer pages between the ram migration code
and the multifd receiving threads.

We don't want to reuse MultiFDPages_t for two reasons:

a) multifd threads don't really need to know about the data they're
   receiving.

b) the receiving side has to be stopped to load the pages, which means
   we can experiment with larger granularities than page size when
   transferring data.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-16-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: a8a3e7102ccf65ee57fb7427952b98ebb460bec9
      
https://github.com/qemu/qemu/commit/a8a3e7102ccf65ee57fb7427952b98ebb460bec9
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/multifd.c
    M migration/multifd.h

  Log Message:
  -----------
  migration/multifd: Add a wrapper for channels_created

We'll need to access multifd_send_state->channels_created from outside
multifd.c, so introduce a helper for that.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-17-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: b7b03eb614d01079f9b1f7a1d342140b5055a559
      
https://github.com/qemu/qemu/commit/b7b03eb614d01079f9b1f7a1d342140b5055a559
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/file.c
    M migration/file.h
    M migration/multifd.c
    M migration/multifd.h

  Log Message:
  -----------
  migration/multifd: Add outgoing QIOChannelFile support

Allow multifd to open file-backed channels. This will be used when
enabling the mapped-ram migration stream format which expects a
seekable transport.

The QIOChannel read and write methods will use the preadv/pwritev
versions which don't update the file offset at each call so we can
reuse the fd without re-opening for every channel.

Contrary to the socket migration, the file migration doesn't need an
asynchronous channel creation process, so expose
multifd_channel_connect() and call it directly.

Note that this is just setup code and multifd cannot yet make use of
the file channels.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240229153017.2221-18-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 2dd7ee7a51bc0a90abe410d6223b297cf2925e4f
      
https://github.com/qemu/qemu/commit/2dd7ee7a51bc0a90abe410d6223b297cf2925e4f
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/file.c
    M migration/migration.c
    M migration/multifd.c

  Log Message:
  -----------
  migration/multifd: Add incoming QIOChannelFile support

On the receiving side we don't need to differentiate between main
channel and threads, so whichever channel is defined first gets to be
the main one. And since there are no packets, use the atomic channel
count to index into the params array.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-19-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 9d01778af8e39f5b0f101d0a9f32215717604bef
      
https://github.com/qemu/qemu/commit/9d01778af8e39f5b0f101d0a9f32215717604bef
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/multifd: Prepare multifd sync for mapped-ram migration

The mapped-ram migration can be performed live or non-live, but it is
always asynchronous, i.e. the source machine and the destination
machine are not migrating at the same time. We only need some pieces
of the multifd sync operations.

multifd_send_sync_main()
------------------------
  Issued by the ram migration code on the migration thread, causes the
  multifd send channels to synchronize with the migration thread and
  makes the sending side emit a packet with the MULTIFD_FLUSH flag.

  With mapped-ram we want to maintain the sync on the sending side
  because that provides ordering between the rounds of dirty pages when
  migrating live.

MULTIFD_FLUSH
-------------
  On the receiving side, the presence of the MULTIFD_FLUSH flag on a
  packet causes the receiving channels to start synchronizing with the
  main thread.

  We're not using packets with mapped-ram, so there's no MULTIFD_FLUSH
  flag and therefore no channel sync on the receiving side.

multifd_recv_sync_main()
------------------------
  Issued by the migration thread when the ram migration flag
  RAM_SAVE_FLAG_MULTIFD_FLUSH is received, causes the migration thread
  on the receiving side to start synchronizing with the recv
  channels. Due to compatibility, this is also issued when
  RAM_SAVE_FLAG_EOS is received.

  For mapped-ram we only need to synchronize the channels at the end of
  migration to avoid doing cleanup before the channels have finished
  their IO.

Make sure the multifd syncs are only issued at the appropriate times.

Note that due to pre-existing backward compatibility issues, we have
the multifd_flush_after_each_section property that can cause a sync to
happen at EOS. Since the EOS flag is needed on the stream, allow
mapped-ram to just ignore it.

Also emit an error if any other unexpected flags are found on the
stream.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240229153017.2221-20-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: f427d90b9898dd7a718b645eeccd9d0ee75d4295
      
https://github.com/qemu/qemu/commit/f427d90b9898dd7a718b645eeccd9d0ee75d4295
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M include/qemu/bitops.h
    M migration/file.c
    M migration/file.h
    M migration/migration.c
    M migration/multifd.c
    M migration/options.c
    M migration/ram.c
    M migration/ram.h

  Log Message:
  -----------
  migration/multifd: Support outgoing mapped-ram stream format

The new mapped-ram stream format uses a file transport and puts ram
pages in the migration file at their respective offsets and can be
done in parallel by using the pwritev system call which takes iovecs
and an offset.

Add support to enabling the new format along with multifd to make use
of the threading and page handling already in place.

This requires multifd to stop sending headers and leaving the stream
format to the mapped-ram code. When it comes time to write the data, we
need to call a version of qio_channel_write that can take an offset.

Usage on HMP is:

(qemu) stop
(qemu) migrate_set_capability multifd on
(qemu) migrate_set_capability mapped-ram on
(qemu) migrate_set_parameter max-bandwidth 0
(qemu) migrate_set_parameter multifd-channels 8
(qemu) migrate file:migfile

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-21-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: a49d15a38d3db0aca7e55850c036d1abbc09a0ea
      
https://github.com/qemu/qemu/commit/a49d15a38d3db0aca7e55850c036d1abbc09a0ea
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/file.c
    M migration/file.h
    M migration/multifd.c
    M migration/multifd.h
    M migration/ram.c

  Log Message:
  -----------
  migration/multifd: Support incoming mapped-ram stream format

For the incoming mapped-ram migration we need to read the ramblock
headers, get the pages bitmap and send the host address of each
non-zero page to the multifd channel thread for writing.

Usage on HMP is:

(qemu) migrate_set_capability multifd on
(qemu) migrate_set_capability mapped-ram on
(qemu) migrate_incoming file:migfile

(the ram.h include needs to move because we've been previously relying
on it being included from migration.c. Now file.h will start including
multifd.h before migration.o is processed)

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-22-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: decdc76772c453ff1444612e910caa0d45cd8eac
      
https://github.com/qemu/qemu/commit/decdc76772c453ff1444612e910caa0d45cd8eac
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M migration/fd.c
    M migration/fd.h
    M migration/file.c
    M migration/migration.c
    M migration/multifd.c

  Log Message:
  -----------
  migration/multifd: Add mapped-ram support to fd: URI

If we receive a file descriptor that points to a regular file, there's
nothing stopping us from doing multifd migration with mapped-ram to
that file.

Enable the fd: URI to work with multifd + mapped-ram.

Note that the fds passed into multifd are duplicated because we want
to avoid cross-thread effects when doing cleanup (i.e. close(fd)). The
original fd doesn't need to be duplicated because monitor_get_fd()
transfers ownership to the caller.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240229153017.2221-23-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 7a09f092834641b7a793d50a3a261073bbb404a6
      
https://github.com/qemu/qemu/commit/7a09f092834641b7a793d50a3a261073bbb404a6
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
    M tests/qtest/migration-test.c

  Log Message:
  -----------
  tests/qtest/migration: Add a multifd + mapped-ram migration test

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-24-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: 1a6e217c35b6dbab10fdc1e02640b8d60b2dc663
      
https://github.com/qemu/qemu/commit/1a6e217c35b6dbab10fdc1e02640b8d60b2dc663
  Author: Peter Xu <peterx@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M migration/multifd.c
    M migration/ram.c

  Log Message:
  -----------
  migration/multifd: Document two places for mapped-ram

Add two documentations for mapped-ram migration on two spots that may not
be extremely clear.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240301091524.39900-1-peterx@redhat.com
Cc: Prasad Pandit <ppandit@redhat.com>
[peterx: fix two English errors per Prasad]
Signed-off-by: Peter Xu <peterx@redhat.com>


  Commit: ba7f63f9a4a3c80bb92a00a7a07a350ca0e6fb72
      
https://github.com/qemu/qemu/commit/ba7f63f9a4a3c80bb92a00a7a07a350ca0e6fb72
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M scripts/qapi/parser.py

  Log Message:
  -----------
  qapi: Memorize since & returns sections

This is chiefly to make code that looks up these sections easier to
read.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-2-armbru@redhat.com>


  Commit: 51e97c14fb54efaab57ee3b617bdd252ecf31c7b
      
https://github.com/qemu/qemu/commit/51e97c14fb54efaab57ee3b617bdd252ecf31c7b
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M scripts/qapi/parser.py
    M tests/qapi-schema/doc-invalid-return.err

  Log Message:
  -----------
  qapi: Slightly clearer error message for invalid "Returns" section

Change "'Returns:' is only valid for commands" to "'Returns' section
is only valid for commands".

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-3-armbru@redhat.com>


  Commit: 3a025d3d1ffa63903aba7775a1061b0e30da4d13
      
https://github.com/qemu/qemu/commit/3a025d3d1ffa63903aba7775a1061b0e30da4d13
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M docs/devel/qapi-code-gen.rst
    M scripts/qapi/parser.py
    M tests/qapi-schema/doc-good.json
    M tests/qapi-schema/doc-good.out
    M tests/qapi-schema/doc-good.txt

  Log Message:
  -----------
  qapi: New documentation section tag "Errors"

We use section "Returns" for documenting both success and error
response of commands.

I intend to generate better command success response documentation.
Easier when "Returns" documents just he success response.

Create new section tag "Errors".  The next two commits will move error
response documentation from "Returns" sections to "Errors" sections.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-4-armbru@redhat.com>


  Commit: 2746f060be18645a688616c4c785bc54201380a3
      
https://github.com/qemu/qemu/commit/2746f060be18645a688616c4c785bc54201380a3
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qapi/block-core.json
    M qapi/block-export.json
    M qapi/block.json
    M qapi/machine-target.json
    M qapi/machine.json
    M qapi/misc.json
    M qapi/net.json
    M qapi/qdev.json
    M qapi/qom.json
    M qapi/transaction.json
    M qapi/ui.json
    M qapi/yank.json

  Log Message:
  -----------
  qapi: Move error documentation to new "Errors" sections

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-5-armbru@redhat.com>


  Commit: 53d5c36d8de388661064ab6487649f9a55c1b2b1
      
https://github.com/qemu/qemu/commit/53d5c36d8de388661064ab6487649f9a55c1b2b1
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qapi/block-core.json
    M qapi/block.json
    M qapi/char.json
    M qapi/dump.json
    M qapi/machine-target.json
    M qapi/machine.json
    M qapi/migration.json
    M qapi/misc-target.json
    M qapi/misc.json
    M qapi/net.json
    M qapi/qdev.json
    M qapi/qom.json
    M qapi/run-state.json
    M qapi/tpm.json
    M qapi/transaction.json
    M qapi/ui.json
    M qapi/yank.json

  Log Message:
  -----------
  qapi: Delete useless "Returns" sections

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-6-armbru@redhat.com>


  Commit: e2c1dcbccc47622c4aa7b95328947070790a2e85
      
https://github.com/qemu/qemu/commit/e2c1dcbccc47622c4aa7b95328947070790a2e85
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qapi/block-core.json
    M qapi/machine.json
    M qapi/misc.json

  Log Message:
  -----------
  qapi: Clean up "Returns" sections

Drop list markup, since there's just one item left.

Drop "on success" where it is redundant with "Returns:".

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-7-armbru@redhat.com>


  Commit: ceb7a680d6351717aa358cb5d533a9cfeb879db4
      
https://github.com/qemu/qemu/commit/ceb7a680d6351717aa358cb5d533a9cfeb879db4
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qapi/yank.json

  Log Message:
  -----------
  qapi/yank: Tweak @yank's error description for consistency

Phrase it like "If <condition>, <error>", like we do elsewhere.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-8-armbru@redhat.com>


  Commit: 3ef507fe107fe82bb5fbde53aa05b23eaf0ccfc6
      
https://github.com/qemu/qemu/commit/3ef507fe107fe82bb5fbde53aa05b23eaf0ccfc6
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga/qapi-schema: Move error documentation to new "Errors" sections

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-9-armbru@redhat.com>


  Commit: 3630a479035913c6c492a29d64a17dfdc40640a7
      
https://github.com/qemu/qemu/commit/3630a479035913c6c492a29d64a17dfdc40640a7
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga/qapi-schema: Delete useless "Returns" sections

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-10-armbru@redhat.com>


  Commit: 6a90cc82b583832c796a82ee146105d9b4188153
      
https://github.com/qemu/qemu/commit/6a90cc82b583832c796a82ee146105d9b4188153
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga/qapi-schema: Clean up "Returns" sections

Drop "on success" where it is redundant with "Returns:".

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-11-armbru@redhat.com>


  Commit: e22955e7f6289dcf00e0aba3b08d6af46f993d2d
      
https://github.com/qemu/qemu/commit/e22955e7f6289dcf00e0aba3b08d6af46f993d2d
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga/qapi-schema: Tweak documentation of fsfreeze commands

"Returns:" sections of guest-fsfreeze-freeze and
guest-fsfreeze-freeze-list describe both command behavior and success
response.  Move behavior out, so "Returns:" is only about success
response.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-12-armbru@redhat.com>


  Commit: ab07e96c46c757ac1a020bd1cf4c81633fc88750
      
https://github.com/qemu/qemu/commit/ab07e96c46c757ac1a020bd1cf4c81633fc88750
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga/qapi-schema: Fix guest-set-memory-blocks documentation

Documentation claims the command can "return NULL".  "NULL" doesn't
exist in JSON.  "null" does, but the command returns lists, and null
isn't.  Correct documentation to "return an empty list".

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-13-armbru@redhat.com>


  Commit: e1f684ea2e80800e74feeeaa36deed41cd3ff30f
      
https://github.com/qemu/qemu/commit/e1f684ea2e80800e74feeeaa36deed41cd3ff30f
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M scripts/qapi/parser.py
    A tests/qapi-schema/doc-invalid-return2.err
    A tests/qapi-schema/doc-invalid-return2.json
    A tests/qapi-schema/doc-invalid-return2.out
    M tests/qapi-schema/meson.build

  Log Message:
  -----------
  qapi: Reject "Returns" section when command doesn't return anything

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227113921.236097-14-armbru@redhat.com>


  Commit: 59807e2098a1987f24f2f8c32c8db7f84077a0a5
      
https://github.com/qemu/qemu/commit/59807e2098a1987f24f2f8c32c8db7f84077a0a5
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M docs/devel/writing-monitor-commands.rst

  Log Message:
  -----------
  docs/devel/writing-monitor-commands: Repair a decade of rot

The tutorial doesn't match reality since at least 2013.  Repairing it
involves fixing the following issues:

* Update for commit 6d327171551 (aio / timers: Remove alarm timers):
  replace the broken examples.  Instead of having one for returning a
  struct and another for returning a list of structs, do just one for
  the latter.  This resolves the FIXME added in commit
  e218052f928 (aio / timers: De-document -clock) back in 2014.

* Update for commit 895a2a80e0e (qapi: Use 'struct' instead of 'type'
  in schema).

* Update for commit 3313b6124b5 (qapi: add qapi2texi script): add
  required documentation to the schema snippets, and drop section
  "Command Documentation".

* Update for commit a3c45b3e629 (qapi: New special feature flag
  "unstable"): supply the required feature, deemphasize the x- prefix.

* Update for commit dd98234c059 (qapi: introduce x-query-roms QMP
  command): rephrase from "add new command" to "examine existing
  command".

* Update for commit 9492718b7c0 (qapi misc: Elide redundant has_FOO in
  generated C): hello-world's message argument no longer comes with a
  has_message, add a second argument that does.

* Update for moved and renamed files.

While there, update QMP version output to current output.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227115617.237875-2-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[Whitespace tidied up, typo fixed]


  Commit: 8a62ef7bd97c40e9f112d6c808898f907b11f65e
      
https://github.com/qemu/qemu/commit/8a62ef7bd97c40e9f112d6c808898f907b11f65e
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M docs/devel/writing-monitor-commands.rst

  Log Message:
  -----------
  docs/devel/writing-monitor-commands: Minor improvements

Avoid "JSON" when talking about the QAPI schema syntax.  Capitalize
QEMU.  Don't claim all HMP commands live in monitor/hmp-cmds.c (this
was never true).  Fix punctuation and drop inappropriate "the" here
and there.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240227115617.237875-3-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 745736ae0cbe48dd7d58456baf084dc106320a87
      
https://github.com/qemu/qemu/commit/745736ae0cbe48dd7d58456baf084dc106320a87
  Author: Steve Sistare <steven.sistare@oracle.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M include/qapi/util.h

  Log Message:
  -----------
  qapi: New QAPI_LIST_LENGTH()

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20240227153321.467343-2-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Markus Armbruster <armbru@redhat.com>


  Commit: 8a08a366c5e05ce9417d4bcc364e76720a16b41f
      
https://github.com/qemu/qemu/commit/8a08a366c5e05ce9417d4bcc364e76720a16b41f
  Author: Steve Sistare <steven.sistare@oracle.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M include/qapi/type-helpers.h
    M qapi/qapi-type-helpers.c

  Log Message:
  -----------
  qapi: New strv_from_str_list()

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20240227153321.467343-3-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Markus Armbruster <armbru@redhat.com>


  Commit: 018d5fb1f91c7f316b4b8501a78e7219bb9fb614
      
https://github.com/qemu/qemu/commit/018d5fb1f91c7f316b4b8501a78e7219bb9fb614
  Author: Steve Sistare <steven.sistare@oracle.com>
  Date:   2024-03-04 (Mon, 04 Mar 2024)

  Changed paths:
    M migration/exec.c

  Log Message:
  -----------
  migration: simplify exec migration functions

Simplify the exec migration code by using list utility functions.

As a side effect, this also fixes a minor memory leak.  On function return,
"g_auto(GStrv) argv" frees argv and each element, which is wrong, because
the function does not own the individual elements.  To compensate, the code
uses g_steal_pointer which NULLs argv and prevents the destructor from
running, but argv is leaked.

Fixes: cbab4face57b ("migration: convert exec backend ...")
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Message-ID: <20240227153321.467343-4-armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>


  Commit: c90cfb5294e50b803ebd79d1e76fb94bb91e4375
      
https://github.com/qemu/qemu/commit/c90cfb5294e50b803ebd79d1e76fb94bb91e4375
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M docs/devel/migration/features.rst
    A docs/devel/migration/mapped-ram.rst
    M include/exec/ramblock.h
    M include/io/channel.h
    M include/migration/qemu-file-types.h
    M include/qemu/bitops.h
    M io/channel-file.c
    M io/channel.c
    M migration/fd.c
    M migration/fd.h
    M migration/file.c
    M migration/file.h
    M migration/migration.c
    M migration/multifd-zlib.c
    M migration/multifd-zstd.c
    M migration/multifd.c
    M migration/multifd.h
    M migration/options.c
    M migration/options.h
    M migration/qemu-file.c
    M migration/qemu-file.h
    M migration/ram.c
    M migration/ram.h
    M migration/savevm.c
    M migration/trace-events
    M qapi/migration.json
    M tests/qtest/migration-test.c

  Log Message:
  -----------
  Merge tag 'migration-next-pull-request' of https://gitlab.com/peterx/qemu 
into staging

Migartion pull request for 20240304

- Bryan's fix on multifd compression level API
- Fabiano's mapped-ram series (base + multifd only)
- Steve's amend on cpr document in qapi/

# -----BEGIN PGP SIGNATURE-----
#
# iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCZeUjKhIccGV0ZXJ4QHJl
# ZGhhdC5jb20ACgkQO1/MzfOr1wbv5QD/ZexBUsmZA5qyxgGvZ2yvlUBEGNOvtmKY
# kRdiYPU7khMA/0N43rn4LcqKCoq4+T+EAnYizGjIyhH/7BRUyn4DUxgO
# =AeEn
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 04 Mar 2024 01:26:02 GMT
# gpg:                using EDDSA key B9184DC20CC457DACF7DD1A93B5FCCCDF3ABD706
# gpg:                issuer "peterx@redhat.com"
# gpg: Good signature from "Peter Xu <xzpeter@gmail.com>" [marginal]
# gpg:                 aka "Peter Xu <peterx@redhat.com>" [marginal]
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: B918 4DC2 0CC4 57DA CF7D  D1A9 3B5F CCCD F3AB D706

* tag 'migration-next-pull-request' of https://gitlab.com/peterx/qemu: (27 
commits)
  migration/multifd: Document two places for mapped-ram
  tests/qtest/migration: Add a multifd + mapped-ram migration test
  migration/multifd: Add mapped-ram support to fd: URI
  migration/multifd: Support incoming mapped-ram stream format
  migration/multifd: Support outgoing mapped-ram stream format
  migration/multifd: Prepare multifd sync for mapped-ram migration
  migration/multifd: Add incoming QIOChannelFile support
  migration/multifd: Add outgoing QIOChannelFile support
  migration/multifd: Add a wrapper for channels_created
  migration/multifd: Allow receiving pages without packets
  migration/multifd: Allow multifd without packets
  migration/multifd: Decouple recv method from pages
  migration/multifd: Rename MultiFDSend|RecvParams::data to compress_data
  tests/qtest/migration: Add tests for mapped-ram file-based migration
  migration/ram: Add incoming 'mapped-ram' migration
  migration/ram: Add outgoing 'mapped-ram' migration
  migration: Add mapped-ram URI compatibility check
  migration/ram: Introduce 'mapped-ram' migration capability
  migration/qemu-file: add utility methods for working with seekable channels
  io: fsync before closing a file channel
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

# Conflicts:
#       migration/ram.c


  Commit: 7d4e29ef805f7ebc03e547bb8ae82a86ee69c41b
      
https://github.com/qemu/qemu/commit/7d4e29ef805f7ebc03e547bb8ae82a86ee69c41b
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M docs/devel/qapi-code-gen.rst
    M docs/devel/writing-monitor-commands.rst
    M include/qapi/type-helpers.h
    M include/qapi/util.h
    M migration/exec.c
    M qapi/block-core.json
    M qapi/block-export.json
    M qapi/block.json
    M qapi/char.json
    M qapi/dump.json
    M qapi/machine-target.json
    M qapi/machine.json
    M qapi/migration.json
    M qapi/misc-target.json
    M qapi/misc.json
    M qapi/net.json
    M qapi/qapi-type-helpers.c
    M qapi/qdev.json
    M qapi/qom.json
    M qapi/run-state.json
    M qapi/tpm.json
    M qapi/transaction.json
    M qapi/ui.json
    M qapi/yank.json
    M qga/qapi-schema.json
    M scripts/qapi/parser.py
    M tests/qapi-schema/doc-good.json
    M tests/qapi-schema/doc-good.out
    M tests/qapi-schema/doc-good.txt
    M tests/qapi-schema/doc-invalid-return.err
    A tests/qapi-schema/doc-invalid-return2.err
    A tests/qapi-schema/doc-invalid-return2.json
    A tests/qapi-schema/doc-invalid-return2.out
    M tests/qapi-schema/meson.build

  Log Message:
  -----------
  Merge tag 'pull-qapi-2024-03-04' of https://repo.or.cz/qemu/armbru into 
staging

QAPI patches patches for 2024-03-04

# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmXlaSISHGFybWJydUBy
# ZWRoYXQuY29tAAoJEDhwtADrkYZTdZ8P/iMgqLoAFkCCjwfkUc/rqZUezK52Ynr7
# LYwOPI/xcYD7EnVogdRgFgjWFNoivQLP5yKsU/eRTk29pwdDzTscFm/0ztTQX/Gb
# ypWV+GBcu5J8mKbp1KF5w68aDD8Bat4WRfEgDQ1DV7v6CoMiUzTiF3CGXkYzqK5Y
# kYNq97vdEkBFvFdOl/7scs/XXN2jG27egDhMp68RTxnPHlXZiAO9/2Bul3uVe3x0
# fzQ2ViYv0qLnjE/PwENDqqE3Thv3Sxp5iEeQQ6GWi07EVh07UtHpOM3RYyrTU0Sb
# VrTApSrg0oxlkOuR0CBd9Fi+timtbokBL0DWyUpXNTfIEZfLtA9H+8riUg3EOcDp
# r7a4SI/27VdPxX6Kc6zA3bi+/j1o7CLTW2LGEwuZs52nmixoo1HTWPIFdyh13g/V
# QjNbun0fViHb0FVLiyDlXF/7Y+EWUWIyqwwGqbvve1DyUHQmo3CUQAKGOpkeKSBe
# 4eGciVDgpBoKhtw9Kv6LCDj2cwZKC8DxBMibf7GHkOnAsX2mnyuHcey7HvYNCoF+
# yYz7oIEXdlL2eWqg7CfBZK7lniCDln50RI4Ll1v+J4r1v1kRZGMLesTYXCdNc4ku
# yb4kpU4t22/RODffLE7K+fc3Onwze3fcfxlZMN66F+wFtk4KdPR2aQBE66bB8J99
# vuSKlTbT4cGL
# =s9AR
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 04 Mar 2024 06:24:34 GMT
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "armbru@redhat.com"
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full]
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* tag 'pull-qapi-2024-03-04' of https://repo.or.cz/qemu/armbru:
  migration: simplify exec migration functions
  qapi: New strv_from_str_list()
  qapi: New QAPI_LIST_LENGTH()
  docs/devel/writing-monitor-commands: Minor improvements
  docs/devel/writing-monitor-commands: Repair a decade of rot
  qapi: Reject "Returns" section when command doesn't return anything
  qga/qapi-schema: Fix guest-set-memory-blocks documentation
  qga/qapi-schema: Tweak documentation of fsfreeze commands
  qga/qapi-schema: Clean up "Returns" sections
  qga/qapi-schema: Delete useless "Returns" sections
  qga/qapi-schema: Move error documentation to new "Errors" sections
  qapi/yank: Tweak @yank's error description for consistency
  qapi: Clean up "Returns" sections
  qapi: Delete useless "Returns" sections
  qapi: Move error documentation to new "Errors" sections
  qapi: New documentation section tag "Errors"
  qapi: Slightly clearer error message for invalid "Returns" section
  qapi: Memorize since & returns sections

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/4eac9dfbd72d...7d4e29ef805f

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications



reply via email to

[Prev in Thread] Current Thread [Next in Thread]