qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] d8a0f0: migration/doc: Add contents


From: Alex Bennée
Subject: [Qemu-commits] [qemu/qemu] d8a0f0: migration/doc: Add contents
Date: Tue, 31 Oct 2023 16:31:22 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: d8a0f05478e9474dee4df3fe9ce402beab7c12be
      
https://github.com/qemu/qemu/commit/d8a0f05478e9474dee4df3fe9ce402beab7c12be
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration/doc: Add contents

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018112827.1325-2-quintela@redhat.com>


  Commit: 1aefe2ca14235c475056816fc8c491f11291b332
      
https://github.com/qemu/qemu/commit/1aefe2ca14235c475056816fc8c491f11291b332
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration/doc: Add documentation for backwards compatiblity

State what are the requeriments to get migration working between qemu
versions.  And once there explain how one is supposed to implement a
new feature/default value and not break migration.

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Acked-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018112827.1325-3-quintela@redhat.com>


  Commit: 593c28c02c819abfb1191a451e038fead7bc5c07
      
https://github.com/qemu/qemu/commit/593c28c02c819abfb1191a451e038fead7bc5c07
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration/doc: How to migrate when hosts have different features

Sometimes devices have different features depending of things outside
of qemu.  For instance the kernel.  Document how to handle that cases.

Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018112827.1325-4-quintela@redhat.com>


  Commit: e77326179d61585457f88ba0c5152cea5bbaabf0
      
https://github.com/qemu/qemu/commit/e77326179d61585457f88ba0c5152cea5bbaabf0
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration/doc: We broke backwards compatibility

When we detect that we have broken backwards compatibility in a
released version, we can't do anything for that version.  But once we
fix that bug on the next released version, we can "mitigate" that
problem when migrating to new versions to give a way out of that
machine until it does a hard reboot.

Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018112827.1325-5-quintela@redhat.com>


  Commit: 413d64fedcc8e7f83b19ab4b79e3fd1f871f3564
      
https://github.com/qemu/qemu/commit/413d64fedcc8e7f83b19ab4b79e3fd1f871f3564
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

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

  Log Message:
  -----------
  migration: Receiving a zero page non zero is an error

We don't allow non zero compressed pages since:

commit 3edcd7e6ebae3ef0ac178eed5f4225803159562d
Author: Peter Lieven <pl@kamp.de>
Date:   Tue Mar 26 10:58:35 2013 +0100

    migration: search for zero instead of dup pages

RDMA case is a bit more complicated, but they don't handle it since:

commit a1febc4950f2c6232c002f401d7cd409f6fa6a88
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Aug 29 11:46:14 2016 -0700

    cutils: Export only buffer_is_zero

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019085259.13307-2-quintela@redhat.com>


  Commit: 7091dabeb41806132428ffe96164c8425854ea27
      
https://github.com/qemu/qemu/commit/7091dabeb41806132428ffe96164c8425854ea27
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram.c
    M migration/ram.h
    M migration/rdma.c

  Log Message:
  -----------
  migration: Rename ram_handle_compressed() to ram_handle_zero()

Now that we know it only handles zero, we can remove the ch parameter.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019085259.13307-3-quintela@redhat.com>


  Commit: d869f6297522894ef6c184dbe47b923360faf9e5
      
https://github.com/qemu/qemu/commit/d869f6297522894ef6c184dbe47b923360faf9e5
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/options.c

  Log Message:
  -----------
  migration: Give one error if trying to set MULTIFD and XBZRLE

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-2-quintela@redhat.com>


  Commit: 0e195629969125e3a168a7e06e3c49d939c36ead
      
https://github.com/qemu/qemu/commit/0e195629969125e3a168a7e06e3c49d939c36ead
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/options.c

  Log Message:
  -----------
  migration: Give one error if trying to set COMPRESSION and XBZRLE

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-3-quintela@redhat.com>


  Commit: 4e400f9091d496c513fcd513753a2d681be57a3b
      
https://github.com/qemu/qemu/commit/4e400f9091d496c513fcd513753a2d681be57a3b
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Remove save_page_use_compression()

After previous patch, we disable the posiblity that we use compression
together with xbzrle.  So we can use directly migrate_compress().

Once there, now we don't need the rs parameter, so remove it.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-4-quintela@redhat.com>


  Commit: 83df387df7fbd4fb76f3beae56f925dead5bba5a
      
https://github.com/qemu/qemu/commit/83df387df7fbd4fb76f3beae56f925dead5bba5a
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram-compress.c
    M migration/ram-compress.h
    M migration/ram.c

  Log Message:
  -----------
  migration: Make compress_data_with_multithreads return bool

Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-5-quintela@redhat.com>


  Commit: b6e19b6de82987606b0cfe5c120dc1952ec582a5
      
https://github.com/qemu/qemu/commit/b6e19b6de82987606b0cfe5c120dc1952ec582a5
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram-compress.c

  Log Message:
  -----------
  migration: Simplify compress_page_with_multithread()

Move the goto to a while true.

Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-6-quintela@redhat.com>


  Commit: 250b1d7ef62b26fde8dc0f8dacad406807d82f1a
      
https://github.com/qemu/qemu/commit/250b1d7ef62b26fde8dc0f8dacad406807d82f1a
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram-compress.c
    M migration/ram.c

  Log Message:
  -----------
  migration: Move busy++ to migrate_with_multithread

And now we can simplify save_compress_page().

Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-7-quintela@redhat.com>


  Commit: fb36fb275f455642599ac882fd5a96a8b00b062e
      
https://github.com/qemu/qemu/commit/fb36fb275f455642599ac882fd5a96a8b00b062e
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram-compress.c
    M migration/ram-compress.h
    M migration/ram.c
    M migration/ram.h

  Log Message:
  -----------
  migration: Create compress_update_rates()

So we can move more compression_counters stuff to ram-compress.c.
Create compression_counters struct to add the stuff that was on
MigrationState.

Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-8-quintela@redhat.com>


  Commit: 742ec5f338593f3bc9d526577d24976eb658dcc5
      
https://github.com/qemu/qemu/commit/742ec5f338593f3bc9d526577d24976eb658dcc5
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram-compress.h
    M migration/ram.c

  Log Message:
  -----------
  migration: Export send_queued_data()

This function is only used for compression.  So we rename it as
compress_send_queued_data().  We put it on ram-compress.h because we
are moving it later to ram-compress.c.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-9-quintela@redhat.com>


  Commit: 8020bc9a77086d4beebaa1d6d9a862fcc66d854f
      
https://github.com/qemu/qemu/commit/8020bc9a77086d4beebaa1d6d9a862fcc66d854f
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram-compress.c
    M migration/ram-compress.h
    M migration/ram.c

  Log Message:
  -----------
  migration: Move ram_flush_compressed_data() to ram-compress.c

As we export it, rename it compress_flush_data().

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-10-quintela@redhat.com>


  Commit: f639cfe515b159c86fbb6c7a10d2146ca1b99b23
      
https://github.com/qemu/qemu/commit/f639cfe515b159c86fbb6c7a10d2146ca1b99b23
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram-compress.c
    M migration/ram-compress.h

  Log Message:
  -----------
  migration: Merge flush_compressed_data() and compress_flush_data()

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-11-quintela@redhat.com>


  Commit: 8258f2fa06f71c7a48b95c39c896626564fe3474
      
https://github.com/qemu/qemu/commit/8258f2fa06f71c7a48b95c39c896626564fe3474
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram-compress.c
    M migration/ram-compress.h
    M migration/ram.c

  Log Message:
  -----------
  migration: Rename ram_compressed_pages() to compress_ram_pages()

We are moving to have all functions exported from ram-compress.c to
start with compress_.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-12-quintela@redhat.com>


  Commit: bc3d41a9f62905629d6da98f68cc15069d2374c6
      
https://github.com/qemu/qemu/commit/bc3d41a9f62905629d6da98f68cc15069d2374c6
  Author: Thomas Huth <thuth@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/ram: Fix compilation with -Wshadow=local

Rename the variable here to avoid that it shadows a variable from
the beginning of the function scope. With this change the code now
successfully compiles with -Wshadow=local.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231024092220.55305-1-thuth@redhat.com>


  Commit: 4d8bdc2ae043a572a2ec6f8788123935a2de0943
      
https://github.com/qemu/qemu/commit/4d8bdc2ae043a572a2ec6f8788123935a2de0943
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M include/migration/vmstate.h
    M migration/savevm.c
    M migration/vmstate.c

  Log Message:
  -----------
  migration: rename vmstate_save_needed->vmstate_section_needed

The function is used on save at this point. The following commits will
use it on load.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231024084043.2926316-5-marcandre.lureau@redhat.com>


  Commit: cd4c0da6dbeac5cc986a4a553c722cbf4b3d0300
      
https://github.com/qemu/qemu/commit/cd4c0da6dbeac5cc986a4a553c722cbf4b3d0300
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M migration/vmstate.c

  Log Message:
  -----------
  migration: set file error on subsection loading

commit 13cde50889237 ("vmstate: Return error in case of error") sets
QemuFile error to stop reading from it and report to the caller (checked
by unit tests). We should do the same on subsection loading error.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231024084043.2926316-8-marcandre.lureau@redhat.com>


  Commit: bf1695c2523510ff8945d88c971b25baac66543d
      
https://github.com/qemu/qemu/commit/bf1695c2523510ff8945d88c971b25baac66543d
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/183
    M tests/qemu-iotests/common.filter

  Log Message:
  -----------
  qemu-iotests: Filter warnings about block migration being deprecated

Create a new filter that removes the two warnings for test 183.

Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-2-quintela@redhat.com>


  Commit: 40101f320d6bf504663327cd12e99f36555a1f56
      
https://github.com/qemu/qemu/commit/40101f320d6bf504663327cd12e99f36555a1f56
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: migrate 'inc' command option is deprecated.

Use blockdev-mirror with NBD instead.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-3-quintela@redhat.com>


  Commit: 8846b5bfca761d599974482c21fa6da3d3c13a70
      
https://github.com/qemu/qemu/commit/8846b5bfca761d599974482c21fa6da3d3c13a70
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: migrate 'blk' command option is deprecated.

Use blocked-mirror with NBD instead.

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-4-quintela@redhat.com>


  Commit: 66db46ca83b8fb72f089e33be12e1a55b3b17eb6
      
https://github.com/qemu/qemu/commit/66db46ca83b8fb72f089e33be12e1a55b3b17eb6
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M migration/block.c
    M migration/options.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: Deprecate block migration

It is obsolete.  It is better to use driver-mirror with NBD instead.

CC: Kevin Wolf <kwolf@redhat.com>
CC: Eric Blake <eblake@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Hanna Czenczek <hreitz@redhat.com>

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-5-quintela@redhat.com>


  Commit: 864128df465a8b041e089475e903be8d7d0d06ef
      
https://github.com/qemu/qemu/commit/864128df465a8b041e089475e903be8d7d0d06ef
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M migration/options.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: Deprecate old compression method

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-6-quintela@redhat.com>


  Commit: a2326705e5a6bb21338b3d84f1b0e0b4f46cbc82
      
https://github.com/qemu/qemu/commit/a2326705e5a6bb21338b3d84f1b0e0b4f46cbc82
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Stop migration immediately in RDMA error paths

In multiple places, RDMA errors are handled in a strange way, where it only
sets qemu_file_set_error() but not stop the migration immediately.

It's not obvious what will happen later if there is already an error.  Make
all such failures stop migration immediately.

Cc: Zhijian Li (Fujitsu) <lizhijian@fujitsu.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Juan Quintela <quintela@redhat.com>
Cc: Fabiano Rosas <farosas@suse.de>
Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231024163933.516546-1-peterx@redhat.com>


  Commit: cc8bf57d56ef22a66711100f5d94861a627e9b9f
      
https://github.com/qemu/qemu/commit/cc8bf57d56ef22a66711100f5d94861a627e9b9f
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/qemu-file.c

  Log Message:
  -----------
  qemu-file: Don't increment qemu_file_transferred at qemu_file_fill_buffer

We only call qemu_file_transferred_* on the sending side. Remove the
increment at qemu_file_fill_buffer() and add asserts to
qemu_file_transferred* functions.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-2-quintela@redhat.com>


  Commit: 2d897237e01a7ed0dd8b9ac3b3a8234900145350
      
https://github.com/qemu/qemu/commit/2d897237e01a7ed0dd8b9ac3b3a8234900145350
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

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

  Log Message:
  -----------
  qemu_file: Use a stat64 for qemu_file_transferred

This way we can read it from any thread.
I checked that it gives the same value as the current one.  We never
use two qemu_files at the same time.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-3-quintela@redhat.com>


  Commit: 5e2652185b6a08fcf5c1acc2d81b59ddb9c7855d
      
https://github.com/qemu/qemu/commit/5e2652185b6a08fcf5c1acc2d81b59ddb9c7855d
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/qemu-file.c

  Log Message:
  -----------
  qemu_file: total_transferred is not used anymore

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-4-quintela@redhat.com>


  Commit: 737840e2c6ea76896ffd8d3f5474fd4a4aee62d6
      
https://github.com/qemu/qemu/commit/737840e2c6ea76896ffd8d3f5474fd4a4aee62d6
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/migration-stats.c

  Log Message:
  -----------
  migration: Use the number of transferred bytes directly

We only use migration_transferred_bytes() to calculate the rate_limit,
for that we don't need to flush whatever is on the qemu_file buffer.
Remember that the buffer is really small (normal case is 32K if we use
iov's can be 64 * TARGET_PAGE_SIZE), so this is not relevant to
calculations.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-5-quintela@redhat.com>


  Commit: e833cad7e7ed4ee2b48237ff1a6a4ee95280b6ac
      
https://github.com/qemu/qemu/commit/e833cad7e7ed4ee2b48237ff1a6a4ee95280b6ac
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

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

  Log Message:
  -----------
  qemu_file: Remove unused qemu_file_transferred()

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-6-quintela@redhat.com>


  Commit: e9c0eed7c2c20f65904ffb33fc7b47a229ed5106
      
https://github.com/qemu/qemu/commit/e9c0eed7c2c20f65904ffb33fc7b47a229ed5106
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/block.c
    M migration/qemu-file.c
    M migration/qemu-file.h
    M migration/savevm.c
    M migration/vmstate.c

  Log Message:
  -----------
  qemu-file: Remove _noflush from qemu_file_transferred_noflush()

qemu_file_transferred() don't exist anymore, so we can reuse the name.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>

Message-ID: <20231025091117.6342-7-quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: f57e5a6ce50f10941399014c628db8713c2bc3f9
      
https://github.com/qemu/qemu/commit/f57e5a6ce50f10941399014c628db8713c2bc3f9
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/migration-stats.c
    M migration/migration-stats.h
    M migration/migration.c

  Log Message:
  -----------
  migration: migration_transferred_bytes() don't need the QEMUFile

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-8-quintela@redhat.com>


  Commit: 0743f41fd293b033de289c52faa45d06a5b1d544
      
https://github.com/qemu/qemu/commit/0743f41fd293b033de289c52faa45d06a5b1d544
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/migration-stats.c
    M migration/migration-stats.h
    M migration/migration.c

  Log Message:
  -----------
  migration: migration_rate_limit_reset() don't need the QEMUFile

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-9-quintela@redhat.com>


  Commit: fc55cf318a19c385c25843865788ffdd05cde607
      
https://github.com/qemu/qemu/commit/fc55cf318a19c385c25843865788ffdd05cde607
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/qemu-file.c

  Log Message:
  -----------
  qemu-file: Simplify qemu_file_get_error()

If we pass a NULL error is the same that returning directly the value.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-10-quintela@redhat.com>


  Commit: 897fd8bdce6c0939e0c35ae8fda4af09b5e5fb40
      
https://github.com/qemu/qemu/commit/897fd8bdce6c0939e0c35ae8fda4af09b5e5fb40
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

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

  Log Message:
  -----------
  migration: Use migration_transferred_bytes()

There are only two differnces with the old value:

- the amount of QEMUFile that hasn't yet been flushed.  It can be
  discussed what is more exact, the new or the old one.
- the amount of transferred bytes that we forgot to account for (the
  newer is better, i.e. exact).

Notice that this two values are used to:
a - present to the user
b - calculate the rate_limit

So a few KB here and there is not going to make a difference.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-11-quintela@redhat.com>


  Commit: 0f8596180a304182d4fcf8686b73355de9f37a5d
      
https://github.com/qemu/qemu/commit/0f8596180a304182d4fcf8686b73355de9f37a5d
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/migration-stats.h
    M migration/multifd.c
    M migration/ram.c

  Log Message:
  -----------
  migration: Remove transferred atomic counter

After last commit, it is a write only variable.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-12-quintela@redhat.com>


  Commit: be07a0ed22cf10ede7330efbb4818f5896cd6fe3
      
https://github.com/qemu/qemu/commit/be07a0ed22cf10ede7330efbb4818f5896cd6fe3
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M migration/colo.c
    M migration/migration.c
    M migration/qemu-file.c
    M migration/qemu-file.h
    M migration/ram.c
    M migration/rdma.c
    M migration/savevm.c

  Log Message:
  -----------
  qemu-file: Make qemu_fflush() return errors

This let us simplify code of this shape.

   qemu_fflush(f);
   int ret = qemu_file_get_error(f);
   if (ret) {
      return ret;
   }

into:

   int ret = qemu_fflush(f);
   if (ret) {
      return ret;
   }

I updated all callers where there is any error check.
qemu_fclose() don't need to check for f->last_error because
qemu_fflush() returns it at the beggining of the function.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>

Message-ID: <20231025091117.6342-13-quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 8b097fd6b06ec295faefd4f30f96f8709abc9605
      
https://github.com/qemu/qemu/commit/8b097fd6b06ec295faefd4f30f96f8709abc9605
  Author: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: rebase: stop when reaching EOF of old backing file

In case when we're rebasing within one backing chain, and when target image
is larger than old backing file, bdrv_is_allocated_above() ends up setting
*pnum = 0.  As a result, target offset isn't getting incremented, and we
get stuck in an infinite for loop.  Let's detect this case and proceed
further down the loop body, as the offsets beyond the old backing size need
to be explicitly zeroed.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Message-ID: <20230919165804.439110-2-andrey.drobyshev@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 827171c3180533f4ad0bc338ea166f401bb5d348
      
https://github.com/qemu/qemu/commit/827171c3180533f4ad0bc338ea166f401bb5d348
  Author: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/024
    M tests/qemu-iotests/024.out

  Log Message:
  -----------
  qemu-iotests: 024: add rebasing test case for overlay_size > backing_size

Before previous commit, rebase was getting infitely stuck in case of
rebasing within the same backing chain and when overlay_size > backing_size.
Let's add this case to the rebasing test 024 to make sure it doesn't
break again.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Message-ID: <20230919165804.439110-3-andrey.drobyshev@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: ce8b8f9fe79b09fe6c1d207274b60fcb6a6e08a9
      
https://github.com/qemu/qemu/commit/ce8b8f9fe79b09fe6c1d207274b60fcb6a6e08a9
  Author: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: rebase: use backing files' BlockBackend for buffer alignment

Since commit bb1c05973cf ("qemu-img: Use qemu_blockalign"), buffers for
the data read from the old and new backing files are aligned using
BlockDriverState (or BlockBackend later on) referring to the target image.
However, this isn't quite right, because buf_new is only being used for
reading from the new backing, while buf_old is being used for both reading
from the old backing and writing to the target.  Let's take that into account
and use more appropriate values as alignments.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Message-ID: <20230919165804.439110-4-andrey.drobyshev@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: c20c8ae70063a88964c14e651fd901d1290d26b2
      
https://github.com/qemu/qemu/commit/c20c8ae70063a88964c14e651fd901d1290d26b2
  Author: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: add chunk size parameter to compare_buffers()

Add @chsize param to the function which, if non-zero, would represent
the chunk size to be used for comparison.  If it's zero, then
BDRV_SECTOR_SIZE is used as default chunk size, which is the previous
behaviour.

In particular, we're going to use this param in img_rebase() to make the
write requests aligned to a predefined alignment value.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Message-ID: <20230919165804.439110-5-andrey.drobyshev@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 12df580b3b7f1c3d08254d4e50e787fe1cae56b4
      
https://github.com/qemu/qemu/commit/12df580b3b7f1c3d08254d4e50e787fe1cae56b4
  Author: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: rebase: avoid unnecessary COW operations

When rebasing an image from one backing file to another, we need to
compare data from old and new backings.  If the diff between that data
happens to be unaligned to the target cluster size, we might end up
doing partial writes, which would lead to copy-on-write and additional IO.

Consider the following simple case (virtual_size == cluster_size == 64K):

base <-- inc1 <-- inc2

qemu-io -c "write -P 0xaa 0 32K" base.qcow2
qemu-io -c "write -P 0xcc 32K 32K" base.qcow2
qemu-io -c "write -P 0xbb 0 32K" inc1.qcow2
qemu-io -c "write -P 0xcc 32K 32K" inc1.qcow2
qemu-img rebase -f qcow2 -b base.qcow2 -F qcow2 inc2.qcow2

While doing rebase, we'll write a half of the cluster to inc2, and block
layer will have to read the 2nd half of the same cluster from the base image
inc1 while doing this write operation, although the whole cluster is already
read earlier to perform data comparison.

In order to avoid these unnecessary IO cycles, let's make sure every
write request is aligned to the overlay subcluster boundaries.  Using
subcluster size is universal as for the images which don't have them
this size equals to the cluster size. so in any case we end up aligning
to the smallest unit of allocation.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Message-ID: <20230919165804.439110-6-andrey.drobyshev@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: f93e65ee5175a8f8449913553100747aaafecc4d
      
https://github.com/qemu/qemu/commit/f93e65ee5175a8f8449913553100747aaafecc4d
  Author: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/024
    M tests/qemu-iotests/024.out
    M tests/qemu-iotests/271
    M tests/qemu-iotests/271.out

  Log Message:
  -----------
  iotests/{024, 271}: add testcases for qemu-img rebase

As the previous commit changes the logic of "qemu-img rebase" (it's using
write alignment now), let's add a couple more test cases which would
ensure it works correctly.  In particular, the following scenarios:

024: add test case for rebase within one backing chain when the overlay
     cluster size > backings cluster size;
271: add test case for rebase images that contain subclusters.  Check
     that no extra allocations are being made.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Message-ID: <20230919165804.439110-7-andrey.drobyshev@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 26ea27898b2b4e322ab932fb61de8f32cd9e4d72
      
https://github.com/qemu/qemu/commit/26ea27898b2b4e322ab932fb61de8f32cd9e4d72
  Author: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M docs/tools/qemu-img.rst
    M qemu-img-cmds.hx
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: add compression option to rebase subcommand

If we rebase an image whose backing file has compressed clusters, we
might end up wasting disk space since the copied clusters are now
uncompressed.  In order to have better control over this, let's add
"--compress" option to the "qemu-img rebase" command.

Note that this option affects only the clusters which are actually being
copied from the original backing file.  The clusters which were
uncompressed in the target image will remain so.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Message-ID: <20230919165804.439110-8-andrey.drobyshev@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 87fe52ceca697e2ff8d42e881538219ced86f760
      
https://github.com/qemu/qemu/commit/87fe52ceca697e2ff8d42e881538219ced86f760
  Author: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/271
    M tests/qemu-iotests/271.out
    A tests/qemu-iotests/314
    A tests/qemu-iotests/314.out

  Log Message:
  -----------
  iotests: add tests for "qemu-img rebase" with compression

The test cases considered so far:

314 (new test suite):

1. Check that compression mode isn't compatible with "-f raw" (raw
   format doesn't support compression).
2. Check that rebasing an image onto no backing file preserves the data
   and writes the copied clusters actually compressed.
3. Same as 2, but with a raw backing file (i.e. the clusters copied from the
   backing are originally uncompressed -- we check they end up compressed
   after being merged).
4. Remove a single delta from a backing chain, perform the same checks
   as in 2.
5. Check that even when backing and overlay are initially uncompressed,
   copied clusters end up compressed when rebase with compression is
   performed.

271:

1. Check that when target image has subclusters, rebase with compression
   will make an entire cluster containing the written subcluster
   compressed.

Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Message-ID: <20230919165804.439110-9-andrey.drobyshev@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: fed824501501518b1ad3dc08a39f8f855508190d
      
https://github.com/qemu/qemu/commit/fed824501501518b1ad3dc08a39f8f855508190d
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/qapi-sysemu.c

  Log Message:
  -----------
  block: Fix locking in media change monitor commands

blk_insert_bs() requires that the caller holds the AioContext lock for
the node to be inserted. Since commit c066e808e11, neglecting to do so
causes a crash when the child has to be moved to a different AioContext
to attach it to the BlockBackend.

This fixes qmp_blockdev_insert_anon_medium(), which is called for the
QMP commands 'blockdev-insert-medium' and 'blockdev-change-medium', to
correctly take the lock.

Cc: qemu-stable@nongnu.org
Fixes: https://issues.redhat.com/browse/RHEL-3922
Fixes: c066e808e11a5c181b625537b6c78e0de27a4801
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231013153302.39234-2-kwolf@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 3be5762294bb03f6a8a284ada6cca7af3a3aeb20
      
https://github.com/qemu/qemu/commit/3be5762294bb03f6a8a284ada6cca7af3a3aeb20
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/118

  Log Message:
  -----------
  iotests: Test media change with iothreads

iotests case 118 already tests all relevant operations for media change
with multiple devices, however never with iothreads. This changes the
test so that the virtio-scsi tests run with an iothread.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231013153302.39234-3-kwolf@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 67446e605dc2cc3e14a4d212bc97e6a2038e8f6a
      
https://github.com/qemu/qemu/commit/67446e605dc2cc3e14a4d212bc97e6a2038e8f6a
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M blockjob.c

  Log Message:
  -----------
  blockjob: drop AioContext lock before calling bdrv_graph_wrlock()

Same rationale as in 31b2ddfea3 ("graph-lock: Unlock the AioContext
while polling"). Otherwise, a deadlock can happen.

The alternative would be to pass a BlockDriverState along to
bdrv_graph_wrlock(), but there is no BlockDriverState readily
available and it's also better conceptually, because the lock is held
for the job.

The function is always called with the job's AioContext lock held, via
one of the .abort, .clean, .free or .prepare job driver functions.
Thus, it's safe to drop it.

While mirror_exit_common() does hold a second AioContext lock while
calling block_job_remove_all_bdrv(), that is for the main thread's
AioContext and does not need to be dropped (bdrv_graph_wrlock(bs) also
skips dropping the lock if bdrv_get_aio_context(bs) ==
qemu_get_aio_context()).

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231019131936.414246-2-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: e462c6d27d0175a67cd373b3027ea5276d25dd4e
      
https://github.com/qemu/qemu/commit/e462c6d27d0175a67cd373b3027ea5276d25dd4e
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: avoid potential deadlock during bdrv_graph_wrlock() in bdrv_close()

by passing the BlockDriverState along, so the held AioContext can be
dropped before polling. See commit 31b2ddfea3 ("graph-lock: Unlock the
AioContext while polling") which introduced this functionality for
more information.

The only way to reach bdrv_close() is via bdrv_unref() and for calling
that the BlockDriverState's AioContext lock is supposed to be held.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231019131936.414246-3-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 302823854b078f0525cf1babcc4fc9ff7b7d5f71
      
https://github.com/qemu/qemu/commit/302823854b078f0525cf1babcc4fc9ff7b7d5f71
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  blockdev: mirror: avoid potential deadlock when using iothread

The bdrv_getlength() function is a generated co-wrapper and uses
AIO_WAIT_WHILE() to wait for the spawned coroutine. AIO_WAIT_WHILE()
expects the lock to be acquired exactly once.

Fix a case where it may be acquired twice. This can happen when the
source node is explicitly specified as the @replaces parameter or if the
source node is a filter node.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231019131936.414246-4-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 05c223cef7b50bcd07a388d45b45bdeb517c4082
      
https://github.com/qemu/qemu/commit/05c223cef7b50bcd07a388d45b45bdeb517c4082
  Author: Thomas Huth <thuth@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M tests/vm/openbsd

  Log Message:
  -----------
  tests/vm/openbsd: Use the system dtc package

We can use the pre-packaged libfdt from the dtc package to avoid
that we have to compile this code each time again and again.

While we're at it, the "--python=python3" does not seemt to be
necessary anymore, so we can drop it.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20231016154049.37147-1-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-2-alex.bennee@linaro.org>


  Commit: 580731dcc87eb27a2b0dc20ec331f1ce51864c97
      
https://github.com/qemu/qemu/commit/580731dcc87eb27a2b0dc20ec331f1ce51864c97
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M tests/tcg/Makefile.target
    M tests/tcg/aarch64/Makefile.target
    M tests/tcg/arm/Makefile.target
    M tests/tcg/cris/Makefile.target
    M tests/tcg/hexagon/Makefile.target
    M tests/tcg/i386/Makefile.target
    M tests/tcg/minilib/Makefile.target
    M tests/tcg/mips/Makefile.target
    M tests/tcg/mips/hello-mips.c

  Log Message:
  -----------
  tests/tcg: Add -fno-stack-protector

A build of GCC 13.2 will have stack protector enabled by default if it
was configured with --enable-default-ssp option. For such a compiler,
it is necessary to explicitly disable stack protector when linking
without standard libraries.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230731091042.139159-3-akihiko.odaki@daynix.com>
[AJB: fix comment string typo]
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-3-alex.bennee@linaro.org>


  Commit: aa39c4c098190e49eaf8854046dcc1827770f890
      
https://github.com/qemu/qemu/commit/aa39c4c098190e49eaf8854046dcc1827770f890
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    M .gitlab-ci.d/container-cross.yml
    M tests/docker/dockerfiles/debian-all-test-cross.docker
    A tests/docker/dockerfiles/debian-legacy-test-cross.docker

  Log Message:
  -----------
  gitlab: split alpha testing into a legacy container

The current bookworm compiler doesn't build the static binaries due to
bug #1054412 and it might be awhile before it gets fixed. The problem
of keeping older architecture compilers running isn't going to go away
so lets prepare the ground. Create a legacy container and move some
tests around so the others can get upgraded.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-4-alex.bennee@linaro.org>


  Commit: 6f6c399976933d3c77cb0f516d5d8bbfc0fad2b0
      
https://github.com/qemu/qemu/commit/6f6c399976933d3c77cb0f516d5d8bbfc0fad2b0
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml

  Log Message:
  -----------
  gitlab: clean-up build-soft-softmmu job

Having dropped alpha we also now drop xtensa as we don't have the
compiler in this image. It's not all doom and gloom though as a number
of other targets have gained softmmu TCG tests so we can add them. We
will take care of the other targets with their own containers in
future commits.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-5-alex.bennee@linaro.org>


  Commit: cb8715bf0ce2d8347729bbaf19e236be95d58084
      
https://github.com/qemu/qemu/commit/cb8715bf0ce2d8347729bbaf19e236be95d58084
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    M .gitlab-ci.d/container-cross.yml
    M tests/docker/Makefile.include
    M tests/docker/dockerfiles/debian-loongarch-cross.docker

  Log Message:
  -----------
  gitlab: add build-loongarch to matrix

We have the compiler and with a few updates a container that can build
QEMU so we should at least run the check-tcg smoke tests.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-6-alex.bennee@linaro.org>


  Commit: d004e27b4e10dbe4741e81fa5f8ef9b7ea23818d
      
https://github.com/qemu/qemu/commit/d004e27b4e10dbe4741e81fa5f8ef9b7ea23818d
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    R tests/docker/dockerfiles/debian-alpha-cross.docker

  Log Message:
  -----------
  tests/docker: use debian-legacy-test-cross for alpha

Maintaining two sets of containers for test building is silly. While
it makes sense for the QEMU cross-compile targets to have their own
fat containers built by lcitool we might as well merge the other
random debian based compilers into the same one used on gitlab.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-7-alex.bennee@linaro.org>


  Commit: 4e76d98ae962dc22408ac99f2e1c3bf2bce2ef9c
      
https://github.com/qemu/qemu/commit/4e76d98ae962dc22408ac99f2e1c3bf2bce2ef9c
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    M tests/docker/dockerfiles/debian-all-test-cross.docker
    M tests/docker/dockerfiles/debian-legacy-test-cross.docker
    R tests/docker/dockerfiles/debian-sh4-cross.docker

  Log Message:
  -----------
  tests/docker: move sh4 to use debian-legacy-test-cross

sh4 is another target which doesn't work with bookworm compilers. To
keep on buster move across to the debian-legacy-test-cross image and
update accordingly.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20231030135715.800164-1-alex.bennee@linaro.org>


  Commit: eb4cb4ed1f62ca01ebb23f5fdf89751a2486c96d
      
https://github.com/qemu/qemu/commit/eb4cb4ed1f62ca01ebb23f5fdf89751a2486c96d
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    R tests/docker/dockerfiles/debian-powerpc-test-cross.docker

  Log Message:
  -----------
  tests/docker: use debian-all-test-cross for power

Maintaining two sets of containers for test building is silly. While
it makes sense for the QEMU cross-compile targets to have their own
fat containers built by lcitool we might as well merge the other
random debian based compilers into the same one used on gitlab.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-9-alex.bennee@linaro.org>


  Commit: 95f5bf952106f659b16d920dd74d118a4d36b0da
      
https://github.com/qemu/qemu/commit/95f5bf952106f659b16d920dd74d118a4d36b0da
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    R tests/docker/dockerfiles/debian-hppa-cross.docker

  Log Message:
  -----------
  tests/docker: use debian-all-test-cross for hppa

Maintaining two sets of containers for test building is silly. While
it makes sense for the QEMU cross-compile targets to have their own
fat containers built by lcitool we might as well merge the other
random debian based compilers into the same one used on gitlab.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-10-alex.bennee@linaro.org>


  Commit: 9d9a573612802a0da653add70a2b3de75fcdc1d0
      
https://github.com/qemu/qemu/commit/9d9a573612802a0da653add70a2b3de75fcdc1d0
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    R tests/docker/dockerfiles/debian-m68k-cross.docker

  Log Message:
  -----------
  tests/docker: use debian-all-test-cross for m68k

Maintaining two sets of containers for test building is silly. While
it makes sense for the QEMU cross-compile targets to have their own
fat containers built by lcitool we might as well merge the other
random debian based compilers into the same one used on gitlab.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-11-alex.bennee@linaro.org>


  Commit: 92a3165e1a755ede53a08422eb0983d3e151073c
      
https://github.com/qemu/qemu/commit/92a3165e1a755ede53a08422eb0983d3e151073c
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    R tests/docker/dockerfiles/debian-mips64-cross.docker

  Log Message:
  -----------
  tests/docker: use debian-all-test-cross for mips64

Maintaining two sets of containers for test building is silly. While
it makes sense for the QEMU cross-compile targets to have their own
fat containers built by lcitool we might as well merge the other
random debian based compilers into the same one used on gitlab.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-12-alex.bennee@linaro.org>


  Commit: b09bb6d1b82031969ca3a6e11b4168f55d83cdfa
      
https://github.com/qemu/qemu/commit/b09bb6d1b82031969ca3a6e11b4168f55d83cdfa
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    R tests/docker/dockerfiles/debian-mips-cross.docker

  Log Message:
  -----------
  tests/docker: use debian-all-test-cross for mips

Maintaining two sets of containers for test building is silly. While
it makes sense for the QEMU cross-compile targets to have their own
fat containers built by lcitool we might as well merge the other
random debian based compilers into the same one used on gitlab.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-13-alex.bennee@linaro.org>


  Commit: 26025d8e3689567121af3bfcd1dd73059b703790
      
https://github.com/qemu/qemu/commit/26025d8e3689567121af3bfcd1dd73059b703790
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    R tests/docker/dockerfiles/debian-riscv64-test-cross.docker

  Log Message:
  -----------
  tests/docker: use debian-all-test-cross for riscv64

Maintaining two sets of containers for test building is silly. While
it makes sense for the QEMU cross-compile targets to have their own
fat containers built by lcitool we might as well merge the other
random debian based compilers into the same one used on gitlab.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-14-alex.bennee@linaro.org>


  Commit: 7ccb4153fe7b977a0e3724676a7ab4543b58e496
      
https://github.com/qemu/qemu/commit/7ccb4153fe7b977a0e3724676a7ab4543b58e496
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M configure
    M tests/docker/Makefile.include
    R tests/docker/dockerfiles/debian-sparc64-cross.docker

  Log Message:
  -----------
  tests/docker: use debian-all-test-cross for sparc64

Maintaining two sets of containers for test building is silly. While
it makes sense for the QEMU cross-compile targets to have their own
fat containers built by lcitool we might as well merge the other
random debian based compilers into the same one used on gitlab.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-15-alex.bennee@linaro.org>


  Commit: aba77ac5dba609ccf17d2214a0f17b9a79cefad6
      
https://github.com/qemu/qemu/commit/aba77ac5dba609ccf17d2214a0f17b9a79cefad6
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M tests/docker/dockerfiles/debian-all-test-cross.docker

  Log Message:
  -----------
  tests/docker: upgrade debian-all-test-cross to bookworm

This requires a few more tweaks than usual as:

  - the default sources format has changed
  - bring in python3-tomli from the repos
  - split base install from cross compilers
  - also include libclang-rt-dev for sanitiser builds

Acked-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-16-alex.bennee@linaro.org>


  Commit: dbd6623ce726878f4cbbad4a1af160fcd1d2fe7b
      
https://github.com/qemu/qemu/commit/dbd6623ce726878f4cbbad4a1af160fcd1d2fe7b
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M gdbstub/gdbstub.c

  Log Message:
  -----------
  gdbstub: Check if gdb_regs is NULL

cpu->gdb_regs may be NULL if no coprocessor is registered.

Fixes: 73c392c26b ("gdbstub: Replace gdb_regs with an array")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20231029145033.592566-17-alex.bennee@linaro.org>
Message-Id: <20231019101030.128431-2-akihiko.odaki@daynix.com>
Tested-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>


  Commit: 2eb71a0c20a6a77be128a76c1ef8fb5dc7028a8b
      
https://github.com/qemu/qemu/commit/2eb71a0c20a6a77be128a76c1ef8fb5dc7028a8b
  Author: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M semihosting/config.c

  Log Message:
  -----------
  semihosting: fix memleak at semihosting_arg_fallback

We duplicate "cmd" as strtok may modify its argument, but we forgot
to free it later. Furthermore, add_semihosting_arg doesn't take
responsibility for this memory either (it strdup's the argument).

Signed-off-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: 
<03d81c56bfc3d08224e4106efca5949d8894cfa5.1697801632.git.quic_mathbern@quicinc.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-18-alex.bennee@linaro.org>


  Commit: 946bf79e40a6296a46fa7cc4d8c06313ac012a95
      
https://github.com/qemu/qemu/commit/946bf79e40a6296a46fa7cc4d8c06313ac012a95
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M accel/tcg/plugin-gen.c

  Log Message:
  -----------
  plugins: Remove an extra parameter

copy_call() has an unused parameter so remove it.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20231019101030.128431-7-akihiko.odaki@daynix.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20231029145033.592566-19-alex.bennee@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>


  Commit: 7f4527626910f21c9e4421236ee7a6383eb3ce2b
      
https://github.com/qemu/qemu/commit/7f4527626910f21c9e4421236ee7a6383eb3ce2b
  Author: Cong Liu <liucong2@kylinos.cn>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M contrib/plugins/lockstep.c

  Log Message:
  -----------
  contrib/plugins: Close file descriptor on error return

This patch closes the file descriptor fd on error return to avoid
resource leak.

Fixes: ec7ee95db909 ("contrib/plugins: fix coverity warning in lockstep")
Signed-off-by: Cong Liu <liucong2@kylinos.cn>
Message-Id: <20231018025225.1640122-1-liucong2@kylinos.cn>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-20-alex.bennee@linaro.org>


  Commit: ccee48aa736b97f0ce4ab04ad41815f0e575d526
      
https://github.com/qemu/qemu/commit/ccee48aa736b97f0ce4ab04ad41815f0e575d526
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/blkio.c
    M block/io_uring.c
    M block/linux-aio.c
    M block/nvme.c
    M block/plug.c
    M hw/block/dataplane/xen-block.c
    M hw/block/virtio-blk.c
    M hw/scsi/virtio-scsi.c
    M include/sysemu/block-backend-io.h

  Log Message:
  -----------
  block: rename blk_io_plug_call() API to defer_call()

Prepare to move the blk_io_plug_call() API out of the block layer so
that other subsystems call use this deferred call mechanism. Rename it
to defer_call() but leave the code in block/plug.c.

The next commit will move the code out of the block layer.

Suggested-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230913200045.1024233-2-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 433fcea40c31ff355f84da22a46977c2a1b596c3
      
https://github.com/qemu/qemu/commit/433fcea40c31ff355f84da22a46977c2a1b596c3
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M MAINTAINERS
    M block/blkio.c
    M block/io_uring.c
    M block/linux-aio.c
    M block/meson.build
    M block/nvme.c
    R block/plug.c
    M hw/block/dataplane/xen-block.c
    M hw/block/virtio-blk.c
    M hw/scsi/virtio-scsi.c
    A include/qemu/defer-call.h
    M include/sysemu/block-backend-io.h
    A util/defer-call.c
    M util/meson.build

  Log Message:
  -----------
  util/defer-call: move defer_call() to util/

The networking subsystem may wish to use defer_call(), so move the code
to util/ where it can be reused.

As a reminder of what defer_call() does:

This API defers a function call within a defer_call_begin()/defer_call_end()
section, allowing multiple calls to batch up. This is a performance
optimization that is used in the block layer to submit several I/O requests
at once instead of individually:

  defer_call_begin(); <-- start of section
  ...
  defer_call(my_func, my_obj); <-- deferred my_func(my_obj) call
  defer_call(my_func, my_obj); <-- another
  defer_call(my_func, my_obj); <-- another
  ...
  defer_call_end(); <-- end of section, my_func(my_obj) is called once

Suggested-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230913200045.1024233-3-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 84d61e5f36a73ed24742b7c7cf7b811e456dd024
      
https://github.com/qemu/qemu/commit/84d61e5f36a73ed24742b7c7cf7b811e456dd024
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/io_uring.c
    M block/linux-aio.c
    M hw/virtio/trace-events
    M hw/virtio/virtio.c
    M util/thread-pool.c

  Log Message:
  -----------
  virtio: use defer_call() in virtio_irqfd_notify()

virtio-blk and virtio-scsi invoke virtio_irqfd_notify() to send Used
Buffer Notifications from an IOThread. This involves an eventfd
write(2) syscall. Calling this repeatedly when completing multiple I/O
requests in a row is wasteful.

Use the defer_call() API to batch together virtio_irqfd_notify() calls
made during thread pool (aio=threads), Linux AIO (aio=native), and
io_uring (aio=io_uring) completion processing.

Behavior is unchanged for emulated devices that do not use
defer_call_begin()/defer_call_end() since defer_call() immediately
invokes the callback when called outside a
defer_call_begin()/defer_call_end() region.

fio rw=randread bs=4k iodepth=64 numjobs=8 IOPS increases by ~9% with a
single IOThread and 8 vCPUs. iodepth=1 decreases by ~1% but this could
be noise. Detailed performance data and configuration specifics are
available here:
https://gitlab.com/stefanha/virt-playbooks/-/tree/blk_io_plug-irqfd

This duplicates the BH that virtio-blk uses for batching. The next
commit will remove it.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230913200045.1024233-4-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 073458da5619c8914a91440ef243d1e2b888c1b7
      
https://github.com/qemu/qemu/commit/073458da5619c8914a91440ef243d1e2b888c1b7
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M hw/block/dataplane/virtio-blk.c

  Log Message:
  -----------
  virtio-blk: remove batch notification BH

There is a batching mechanism for virtio-blk Used Buffer Notifications
that is no longer needed because the previous commit added batching to
virtio_notify_irqfd().

Note that this mechanism was rarely used in practice because it is only
enabled when EVENT_IDX is not negotiated by the driver. Modern drivers
enable EVENT_IDX.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230913200045.1024233-5-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 61a3a5a76a993b74c85f92585b10250d12323c38
      
https://github.com/qemu/qemu/commit/61a3a5a76a993b74c85f92585b10250d12323c38
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M blockdev.c
    M blockjob.c
    M include/block/blockjob.h
    M include/block/blockjob_int.h
    M job.c
    M qapi/block-core.json
    M qapi/job.json

  Log Message:
  -----------
  blockjob: introduce block-job-change QMP command

which will allow changing job-type-specific options after job
creation.

In the JobVerbTable, the same allow bits as for set-speed are used,
because set-speed can be considered an existing change command.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-ID: <20231031135431.393137-2-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: c45d0e1af0b9e8fa0b0abc30bd6a4ef8d37964b4
      
https://github.com/qemu/qemu/commit/c45d0e1af0b9e8fa0b0abc30bd6a4ef8d37964b4
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/mirror.c

  Log Message:
  -----------
  block/mirror: set actively_synced even after the job is ready

In preparation to allow switching from background to active mode. This
ensures that setting actively_synced will not be missed when the
switch happens after the job is ready.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-ID: <20231031135431.393137-3-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 058cfca5645a9ed7cb2bdb77d15f2eacaf343694
      
https://github.com/qemu/qemu/commit/058cfca5645a9ed7cb2bdb77d15f2eacaf343694
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/mirror.c

  Log Message:
  -----------
  block/mirror: move dirty bitmap to filter

In preparation to allow switching to active mode without draining.
Initialization of the bitmap in mirror_dirty_init() still happens with
the original/backing BlockDriverState, which should be fine, because
the mirror top has the same length.

Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231031135431.393137-4-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 7b32ad2242d6bcb1d5840466bf846fada8ca42e8
      
https://github.com/qemu/qemu/commit/7b32ad2242d6bcb1d5840466bf846fada8ca42e8
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/mirror.c

  Log Message:
  -----------
  block/mirror: determine copy_to_target only once

In preparation to allow changing the copy_mode via QMP. When running
in an iothread, it could be that copy_mode is changed from the main
thread in between reading copy_mode in bdrv_mirror_top_pwritev() and
reading copy_mode in bdrv_mirror_top_do_write(), so they might end up
disagreeing about whether copy_to_target is true or false. Avoid that
scenario by determining copy_to_target only once and passing it to
bdrv_mirror_top_do_write() as an argument.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-ID: <20231031135431.393137-5-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 2d400d15a02dca3b7b90761b2f0bb2322e99e11a
      
https://github.com/qemu/qemu/commit/2d400d15a02dca3b7b90761b2f0bb2322e99e11a
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/mirror.c
    M qapi/block-core.json

  Log Message:
  -----------
  mirror: implement mirror_change method

which allows switching the @copy-mode from 'background' to
'write-blocking'.

This is useful for management applications, so they can start out in
background mode to avoid limiting guest write speed and switch to
active mode when certain criteria are fulfilled.

In presence of an iothread, the copy_mode member is now shared between
the iothread and the main thread, so turn accesses to it atomic.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231031135431.393137-6-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: d67c54d05fe05cf1b6a3b2cf36cc3832d2a0ce05
      
https://github.com/qemu/qemu/commit/d67c54d05fe05cf1b6a3b2cf36cc3832d2a0ce05
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/monitor/block-hmp-cmds.c
    M blockjob.c
    M qapi/block-core.json

  Log Message:
  -----------
  qapi/block-core: use JobType for BlockJobInfo's type

In preparation to turn BlockJobInfo into a union with @type as the
discriminator. That requires it to be an enum. Even without that
requirement, it's nicer to have an enum instead of a str here.

No functional change is intended.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20231031135431.393137-7-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 701efc9f2d68707e20eb6f1f9e7781aa639cf0cb
      
https://github.com/qemu/qemu/commit/701efc9f2d68707e20eb6f1f9e7781aa639cf0cb
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M qapi/block-core.json

  Log Message:
  -----------
  qapi/block-core: turn BlockJobInfo into a union

In preparation to additionally return job-type-specific information.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-ID: <20231031135431.393137-8-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 59fd82544dea5042deb02c26f61d6f39bd187c02
      
https://github.com/qemu/qemu/commit/59fd82544dea5042deb02c26f61d6f39bd187c02
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M blockjob.c
    M include/block/blockjob_int.h

  Log Message:
  -----------
  blockjob: query driver-specific info via a new 'query' driver method

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231031135431.393137-9-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 76cb2f2491abcf191439ea5052999afed514b3da
      
https://github.com/qemu/qemu/commit/76cb2f2491abcf191439ea5052999afed514b3da
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M block/mirror.c
    M qapi/block-core.json
    M tests/qemu-iotests/109.out

  Log Message:
  -----------
  mirror: return mirror-specific information upon query

To start out, only actively-synced is returned.

For example, this is useful for jobs that started out in background
mode and switched to active mode. Once actively-synced is true, it's
clear that the mode switch has been completed. Note that completion of
the switch might happen much earlier, e.g. if the switch happens
before the job is ready, once all background operations have finished.
It's assumed that whether the disks are actively-synced or not is more
interesting than whether the mode switch completed. That information
can still be added if required in the future.

In presence of an iothread, the actively_synced member is now shared
between the iothread and the main thread, so turn accesses to it
atomic.

Requires to adapt the output for iotest 109.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231031135431.393137-10-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 900e7d413d630ebd3f5d64bae0e6249621ec0c7f
      
https://github.com/qemu/qemu/commit/900e7d413d630ebd3f5d64bae0e6249621ec0c7f
  Author: Fiona Ebner <f.ebner@proxmox.com>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    A tests/qemu-iotests/tests/mirror-change-copy-mode
    A tests/qemu-iotests/tests/mirror-change-copy-mode.out

  Log Message:
  -----------
  iotests: add test for changing mirror's copy_mode

One part of the test is using a throttled source to ensure that there
are no obvious issues when changing the copy_mode while there are
ongoing requests (source and target images are compared at the very
end).

The other part of the test is using a throttled target to ensure that
the change to active mode actually happened. This is done by hitting
the throttling limit, issuing a synchronous write and then immediately
verifying the target side. QSD is used, because otherwise, a
synchronous write would hang there.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231031135431.393137-11-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: f13b978cc7ac5548fca8fc0c1d8491596a446ca5
      
https://github.com/qemu/qemu/commit/f13b978cc7ac5548fca8fc0c1d8491596a446ca5
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M docs/devel/migration.rst
    M include/migration/vmstate.h
    M migration/block.c
    M migration/colo.c
    M migration/migration-hmp-cmds.c
    M migration/migration-stats.c
    M migration/migration-stats.h
    M migration/migration.c
    M migration/multifd.c
    M migration/options.c
    M migration/qemu-file.c
    M migration/qemu-file.h
    M migration/ram-compress.c
    M migration/ram-compress.h
    M migration/ram.c
    M migration/ram.h
    M migration/rdma.c
    M migration/savevm.c
    M migration/vmstate.c
    M qapi/migration.json
    M tests/qemu-iotests/183
    M tests/qemu-iotests/common.filter

  Log Message:
  -----------
  Merge tag 'migration-20231031-pull-request' of 
https://gitlab.com/juan.quintela/qemu into staging

Migration Pull request (20231031)

Hi

This is repeat of the Migration PULL for 20231020.
- I removed vmstate_register(big problems with s390x)
- I added yet more countes (juan)

CI: https://gitlab.com/juan.quintela/qemu/-/pipelines/1055797950

Please apply.

Thanks, Juan.

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmVAwmYACgkQ9IfvGFhy
# 1yPJ9g//f8Up+5Az0DmJMWwRe+08vLa3ZRCSh5aCRJguFVfMZSVxRNuoikQ/C/Gz
# 1ePB+Q8H0NcP86FF7pifhtLU0uE9L4At4Z+vOQP1+n67p7aush050kKQxyDYIfO2
# 3tO2HkfHvC/R3S5FtqQtE1Y0/MpHdj1vgV9bNidPorA6EZ01KEEfWw3soptuD14I
# LPvXA8BG5mOvB7R55MymTAej3ZDmOUQlZotsE2KmlkOfzYoqTtApkLtW03/WH8b8
# fAYJ0ghYpesRTO1rF61n1peLMUr+/HRLqGJmhLDSEZZlB5tnUYeiLR9dRJ1/1+o2
# zNjLr6X2hnia6Kb0UibRoAcyyy8lSLp79Zt5nhDneuTSQxeYhNh6EecxAzKvd/02
# vfE/reOEkZn7KzYH/MvlD5P6XmwrT5aV9cqmyC/8BkNnipHAtJ2Av1H4ONdnahuK
# hOhLRAGE7SINtgo8jdauQNor1QAsIX19nvYk9p7ta5VAysrDSbuD+9Yq7HtUErlP
# 585z5BPGfaP2GwIXPNJNcqXwPh0InInGASqEWmYSlu8GF3Ic0KNWWrC5bwSn7tHL
# I7qaMrCHxvWGYx6cRzzp08EqCcbOQCixrPyk8g6o3SgXHrTGKthzjPG5bLe+QXpv
# P2gblC7Fo3sUo89IwVjsRMO3nU9wBfb9skE7iZM06SILO7QD3u8=
# =r1DI
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 31 Oct 2023 18:01:26 JST
# gpg:                using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full]
# gpg:                 aka "Juan Quintela <quintela@trasno.org>" [full]
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* tag 'migration-20231031-pull-request' of 
https://gitlab.com/juan.quintela/qemu: (38 commits)
  qemu-file: Make qemu_fflush() return errors
  migration: Remove transferred atomic counter
  migration: Use migration_transferred_bytes()
  qemu-file: Simplify qemu_file_get_error()
  migration: migration_rate_limit_reset() don't need the QEMUFile
  migration: migration_transferred_bytes() don't need the QEMUFile
  qemu-file: Remove _noflush from qemu_file_transferred_noflush()
  qemu_file: Remove unused qemu_file_transferred()
  migration: Use the number of transferred bytes directly
  qemu_file: total_transferred is not used anymore
  qemu_file: Use a stat64 for qemu_file_transferred
  qemu-file: Don't increment qemu_file_transferred at qemu_file_fill_buffer
  migration: Stop migration immediately in RDMA error paths
  migration: Deprecate old compression method
  migration: Deprecate block migration
  migration: migrate 'blk' command option is deprecated.
  migration: migrate 'inc' command option is deprecated.
  qemu-iotests: Filter warnings about block migration being deprecated
  migration: set file error on subsection loading
  migration: rename vmstate_save_needed->vmstate_section_needed
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 997ef293d229983fef0187fbcd99126412bd56e4
      
https://github.com/qemu/qemu/commit/997ef293d229983fef0187fbcd99126412bd56e4
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    M .gitlab-ci.d/container-cross.yml
    M accel/tcg/plugin-gen.c
    M configure
    M contrib/plugins/lockstep.c
    M gdbstub/gdbstub.c
    M semihosting/config.c
    M tests/docker/Makefile.include
    M tests/docker/dockerfiles/debian-all-test-cross.docker
    R tests/docker/dockerfiles/debian-alpha-cross.docker
    R tests/docker/dockerfiles/debian-hppa-cross.docker
    A tests/docker/dockerfiles/debian-legacy-test-cross.docker
    M tests/docker/dockerfiles/debian-loongarch-cross.docker
    R tests/docker/dockerfiles/debian-m68k-cross.docker
    R tests/docker/dockerfiles/debian-mips-cross.docker
    R tests/docker/dockerfiles/debian-mips64-cross.docker
    R tests/docker/dockerfiles/debian-powerpc-test-cross.docker
    R tests/docker/dockerfiles/debian-riscv64-test-cross.docker
    R tests/docker/dockerfiles/debian-sh4-cross.docker
    R tests/docker/dockerfiles/debian-sparc64-cross.docker
    M tests/tcg/Makefile.target
    M tests/tcg/aarch64/Makefile.target
    M tests/tcg/arm/Makefile.target
    M tests/tcg/cris/Makefile.target
    M tests/tcg/hexagon/Makefile.target
    M tests/tcg/i386/Makefile.target
    M tests/tcg/minilib/Makefile.target
    M tests/tcg/mips/Makefile.target
    M tests/tcg/mips/hello-mips.c
    M tests/vm/openbsd

  Log Message:
  -----------
  Merge tag 'pull-halloween-omnibus-311023-2' of 
https://gitlab.com/stsquad/qemu into staging

Maintainer updates for testing, gitlab, gdbstub and plugins:

  - add dtc package to openbsd VMs
  - use -fno-stack-protector for non-stdlib tests
  - split alpha and sh4 compilers into legacy image
  - harmonise other compilers into debian-all-test-cross
  - fix NULL check in gdb_regs
  - fix memleak in semihosting
  - remove unused parameter in plugin code
  - fix fd leak in lockstep plugin

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmVBCvQACgkQ+9DbCVqe
# KkR8jAgAjFC3BE6fu80zYT0Dmeu8zh20QY/wgKQebaFfGEmPL4Bqkl2D/Rx7PhQA
# EH8fR/LAH/iXAO07+LYOB6QiyMb9PWiXS52iHyE3q11mOaM8iKkkj7a59NW8DfGC
# biSrj9o3wpz9gGkJjzTCcHC8DOMbrAuE12XnmhW7uTqqkrcTMC393dSEeyL+nrP9
# lKS5XzFyn3FOT4YIL8hAC02ObKH4LpWIO3gdWeDAo56yg24fLir9a2wYSXMaxQtN
# kDf6UtL97CIIhbNi6qrUPBB13MV8MlXno3wnb9+E4Cn5sGntGSnTyh7j6XrGqYj9
# p/Vio6ye8xP1IjlavKiBM0nnozcAhw==
# =ZOMS
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 31 Oct 2023 23:11:00 JST
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) 
<alex.bennee@linaro.org>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44

* tag 'pull-halloween-omnibus-311023-2' of https://gitlab.com/stsquad/qemu:
  contrib/plugins: Close file descriptor on error return
  plugins: Remove an extra parameter
  semihosting: fix memleak at semihosting_arg_fallback
  gdbstub: Check if gdb_regs is NULL
  tests/docker: upgrade debian-all-test-cross to bookworm
  tests/docker: use debian-all-test-cross for sparc64
  tests/docker: use debian-all-test-cross for riscv64
  tests/docker: use debian-all-test-cross for mips
  tests/docker: use debian-all-test-cross for mips64
  tests/docker: use debian-all-test-cross for m68k
  tests/docker: use debian-all-test-cross for hppa
  tests/docker: use debian-all-test-cross for power
  tests/docker: move sh4 to use debian-legacy-test-cross
  tests/docker: use debian-legacy-test-cross for alpha
  gitlab: add build-loongarch to matrix
  gitlab: clean-up build-soft-softmmu job
  gitlab: split alpha testing into a legacy container
  tests/tcg: Add -fno-stack-protector
  tests/vm/openbsd: Use the system dtc package

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 6c9ae1ce82b65faa3f266fd103729878cf11e07e
      
https://github.com/qemu/qemu/commit/6c9ae1ce82b65faa3f266fd103729878cf11e07e
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
    M MAINTAINERS
    M block.c
    M block/blkio.c
    M block/io_uring.c
    M block/linux-aio.c
    M block/meson.build
    M block/mirror.c
    M block/monitor/block-hmp-cmds.c
    M block/nvme.c
    R block/plug.c
    M block/qapi-sysemu.c
    M blockdev.c
    M blockjob.c
    M docs/tools/qemu-img.rst
    M hw/block/dataplane/virtio-blk.c
    M hw/block/dataplane/xen-block.c
    M hw/block/virtio-blk.c
    M hw/scsi/virtio-scsi.c
    M hw/virtio/trace-events
    M hw/virtio/virtio.c
    M include/block/blockjob.h
    M include/block/blockjob_int.h
    A include/qemu/defer-call.h
    M include/sysemu/block-backend-io.h
    M job.c
    M qapi/block-core.json
    M qapi/job.json
    M qemu-img-cmds.hx
    M qemu-img.c
    M tests/qemu-iotests/024
    M tests/qemu-iotests/024.out
    M tests/qemu-iotests/109.out
    M tests/qemu-iotests/118
    M tests/qemu-iotests/271
    M tests/qemu-iotests/271.out
    A tests/qemu-iotests/314
    A tests/qemu-iotests/314.out
    A tests/qemu-iotests/tests/mirror-change-copy-mode
    A tests/qemu-iotests/tests/mirror-change-copy-mode.out
    A util/defer-call.c
    M util/meson.build
    M util/thread-pool.c

  Log Message:
  -----------
  Merge tag 'for-upstream' of https://repo.or.cz/qemu/kevin into staging

Block layer patches

- virtio-blk: use blk_io_plug_call() instead of notification BH
- mirror: allow switching from background to active mode
- qemu-img rebase: add compression support
- Fix locking in media change monitor commands
- Fix a few blockjob-related deadlocks when using iothread

# -----BEGIN PGP SIGNATURE-----
#
# iQJFBAABCAAvFiEE3D3rFZqa+V09dFb+fwmycsiPL9YFAmVBTkERHGt3b2xmQHJl
# ZGhhdC5jb20ACgkQfwmycsiPL9ZiqRAAqvsWbblmEGJ7TBKYQK3f8QshJ66RxzbC
# 4eSjKHrciWNTeeIeU8r8OvFcPPoTcPXxpcmasD2gsAxG5W5N8vkPbBkW+YT4YdDJ
# pWJXrbJ15nILC4DmnR1ARVtvxKgv9zy5LSm5bjss1K+OSYJl/nx+ILjmfVZnYDF7
# z1dP/G0JxKKm4JzAIdBE3uZS+6Q5kx/wGYlJv8EQmlH3DYfsJfy6Lthe9jfw8ijg
# lSqLoQ+D0lEd6Bk4XbkUqqBxFcYBWTfU6qPZoyIO94zCTwTG9yIjmoivxmmfwQZq
# cJUTGGZjcxpJYnvcC6P13WgcWBtcD9L2kYFVH0JyjpwcSg9cCGHMF66n9pSlyEGq
# DUikwVzbTwOotwzYQyM88v4ET+2+Qdcwn8pRbv9PllEczh0kAsUAEuxSgtz4NEcN
# bZrap/16xHFybNOKkMZcmpqxspT5NXKbDODUP0IvbSYMOYpWS983nBTxwMRpyHog
# 2TFDZu4DjNiPkI2BcYM5VOKk6diNowZFShcEKvoaOLX/n9EBhP0tjoH9VUn1800F
# myHrhF2jpIf9GhErMWB7N2W3/0aK0pqdQgbpVnd1ARDdIdYkr7G/S+50D9K80b6n
# 0q2E7br4S5bcsY0HQzBL9YARSayY+lVOssLoolCWEsYzijdBQmAvs5THajFKcism
# /idI6nlp2Vs=
# =RdxS
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 01 Nov 2023 03:58:09 JST
# gpg:                using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6
# gpg:                issuer "kwolf@redhat.com"
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* tag 'for-upstream' of https://repo.or.cz/qemu/kevin: (27 commits)
  iotests: add test for changing mirror's copy_mode
  mirror: return mirror-specific information upon query
  blockjob: query driver-specific info via a new 'query' driver method
  qapi/block-core: turn BlockJobInfo into a union
  qapi/block-core: use JobType for BlockJobInfo's type
  mirror: implement mirror_change method
  block/mirror: determine copy_to_target only once
  block/mirror: move dirty bitmap to filter
  block/mirror: set actively_synced even after the job is ready
  blockjob: introduce block-job-change QMP command
  virtio-blk: remove batch notification BH
  virtio: use defer_call() in virtio_irqfd_notify()
  util/defer-call: move defer_call() to util/
  block: rename blk_io_plug_call() API to defer_call()
  blockdev: mirror: avoid potential deadlock when using iothread
  block: avoid potential deadlock during bdrv_graph_wrlock() in bdrv_close()
  blockjob: drop AioContext lock before calling bdrv_graph_wrlock()
  iotests: Test media change with iothreads
  block: Fix locking in media change monitor commands
  iotests: add tests for "qemu-img rebase" with compression
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


Compare: https://github.com/qemu/qemu/compare/516fffc9933c...6c9ae1ce82b6



reply via email to

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