Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: c5f28995b8fe52be02f400765694203bc6b94904
      
https://github.com/qemu/qemu/commit/c5f28995b8fe52be02f400765694203bc6b94904
  Author: Vitaly Kuznetsov <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/vpc.c

  Log Message:
  -----------
  vpc: Split off vpc_ignore_current_size() helper

In preparation to making changes to the logic deciding whether CHS or
'current_size' need to be used in determining the image size, split off
vpc_ignore_current_size() helper.

No functional change intended.

Signed-off-by: Vitaly Kuznetsov <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 558d8eb7f32dda8634e0d3e82ac36e00bf61c9ee
      
https://github.com/qemu/qemu/commit/558d8eb7f32dda8634e0d3e82ac36e00bf61c9ee
  Author: Vitaly Kuznetsov <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/vpc.c

  Log Message:
  -----------
  vpc: Read images exported from Azure correctly

It was found that 'qemu-nbd' is not able to work with some disk images
exported from Azure. Looking at the 512b footer (which contains VPC
metadata):

00000000  63 6f 6e 65 63 74 69 78  00 00 00 02 00 01 00 00  |conectix........|
00000010  ff ff ff ff ff ff ff ff  2e c7 9b 96 77 61 00 00  |............wa..|
00000020  00 07 00 00 57 69 32 6b  00 00 00 01 40 00 00 00  |....Wi2k....@...|
00000030  00 00 00 01 40 00 00 00  28 a2 10 3f 00 00 00 02  |....@...(..?....|
00000040  ff ff e7 47 8c 54 df 94  bd 35 71 4c 94 5f e5 44  |...G.T...5qL._.D|
00000050  44 53 92 1a 00 00 00 00  00 00 00 00 00 00 00 00  |DS..............|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

we can see that Azure uses a different 'Creator application' --
'wa\0\0' (offset 0x1c, likely reads as 'Windows Azure') and QEMU uses this
field to determine how it can get image size. Apparently, Azure uses 'new'
method, just like Hyper-V.

Overall, it seems that only VPC and old QEMUs need to be ignored as all new
creator apps seem to have reliable current_size. Invert the logic and make
'current_size' method the default to avoid adding every new creator app to
the list.

Signed-off-by: Vitaly Kuznetsov <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 84d388c22b8e34981539fd3c69f84099f1824f1f
      
https://github.com/qemu/qemu/commit/84d388c22b8e34981539fd3c69f84099f1824f1f
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/block-backend.c
    M include/system/block-backend-io.h

  Log Message:
  -----------
  block: Improve blk_get_attached_dev_id() docstring

Expose the method docstring in the header, and mention
returned value must be free'd by caller.

Reported-by: Fabiano Rosas <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 23ea425c14d3b89a002e0127b17456eee3102ab7
      
https://github.com/qemu/qemu/commit/23ea425c14d3b89a002e0127b17456eee3102ab7
  Author: Fabiano Rosas <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/block-backend.c

  Log Message:
  -----------
  block: Fix leak in send_qmp_error_event

ASAN detected a leak when running the ahci-test
/ahci/io/dma/lba28/retry:

Direct leak of 35 byte(s) in 1 object(s) allocated from:
    #0 in malloc
    #1 in __vasprintf_internal
    #2 in vasprintf
    #3 in g_vasprintf
    #4 in g_strdup_vprintf
    #5 in g_strdup_printf
    #6 in object_get_canonical_path ../qom/object.c:2096:19
    #7 in blk_get_attached_dev_id_or_path ../block/block-backend.c:1033:12
    #8 in blk_get_attached_dev_path ../block/block-backend.c:1047:12
    #9 in send_qmp_error_event ../block/block-backend.c:2140:36
    #10 in blk_error_action ../block/block-backend.c:2172:9
    #11 in ide_handle_rw_error ../hw/ide/core.c:875:5
    #12 in ide_dma_cb ../hw/ide/core.c:894:13
    #13 in dma_complete ../system/dma-helpers.c:107:9
    #14 in dma_blk_cb ../system/dma-helpers.c:129:9
    #15 in blk_aio_complete ../block/block-backend.c:1552:9
    #16 in blk_aio_write_entry ../block/block-backend.c:1619:5
    #17 in coroutine_trampoline ../util/coroutine-ucontext.c:175:9

Plug the leak by freeing the device path string.

Signed-off-by: Fabiano Rosas <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
[PMD: Use g_autofree]
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 5bf10468b68816377264e557e91186a2ee129c95
      
https://github.com/qemu/qemu/commit/5bf10468b68816377264e557e91186a2ee129c95
  Author: Peter Xu <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M scripts/qemu-gdb.py

  Log Message:
  -----------
  scripts/qemu-gdb: Always do full stack dump for python errors

It's easier for either debugging plugin errors, or issue reports.

Signed-off-by: Peter Xu <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: f4e343b6559eda19efe972b9dcd52e479320e388
      
https://github.com/qemu/qemu/commit/f4e343b6559eda19efe972b9dcd52e479320e388
  Author: Peter Xu <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M scripts/qemugdb/coroutine.py

  Log Message:
  -----------
  scripts/qemu-gdb: Simplify fs_base fetching for coroutines

There're a bunch of code trying to fetch fs_base in different ways.  IIUC
the simplest way instead is "$fs_base".  It also has the benefit that it'll
work for both live gdb session or coredumps.

Signed-off-by: Peter Xu <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 772f86839f777148089e0b248a78986406ee3660
      
https://github.com/qemu/qemu/commit/772f86839f777148089e0b248a78986406ee3660
  Author: Peter Xu <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M scripts/qemugdb/coroutine.py

  Log Message:
  -----------
  scripts/qemu-gdb: Support coroutine dumps in coredumps

Dumping coroutines don't yet work with coredumps.  Let's make it work.

We still kept most of the old code because they can be either more
flexible, or prettier.  Only add the fallbacks when they stop working.

Currently the raw unwind is pretty ugly, but it works, like this:

  (gdb) qemu bt
  #0  process_incoming_migration_co (opaque=0x0) at ../migration/migration.c:788
  #1  0x000055ae6c0dc4d9 in coroutine_trampoline (i0=-1711718576, i1=21934) at 
../util/coroutine-ucontext.c:175
  #2  0x00007f9f59d72f40 in ??? () at /lib64/libc.so.6
  #3  0x00007ffd549214a0 in ??? ()
  #4  0x0000000000000000 in ??? ()
  Coroutine at 0x7f9f4c57c748:
  #0  0x55ae6c0dc9a8 in qemu_coroutine_switch<+120> () at 
../util/coroutine-ucontext.c:321
  #1  0x55ae6c0da2f8 in qemu_aio_coroutine_enter<+356> () at 
../util/qemu-coroutine.c:293
  #2  0x55ae6c0da3f1 in qemu_coroutine_enter<+34> () at 
../util/qemu-coroutine.c:316
  #3  0x55ae6baf775e in migration_incoming_process<+43> () at 
../migration/migration.c:876
  #4  0x55ae6baf7ab4 in migration_ioc_process_incoming<+490> () at 
../migration/migration.c:1008
  #5  0x55ae6bae9ae7 in migration_channel_process_incoming<+145> () at 
../migration/channel.c:45
  #6  0x55ae6bb18e35 in socket_accept_incoming_migration<+118> () at 
../migration/socket.c:132
  #7  0x55ae6be939ef in qio_net_listener_channel_func<+131> () at 
../io/net-listener.c:54
  #8  0x55ae6be8ce1a in qio_channel_fd_source_dispatch<+78> () at 
../io/channel-watch.c:84
  #9  0x7f9f5b26728c in g_main_context_dispatch_unlocked.lto_priv<+315> ()
  #10  0x7f9f5b267555 in g_main_context_dispatch<+36> ()
  #11  0x55ae6c0d91a7 in glib_pollfds_poll<+90> () at ../util/main-loop.c:287
  #12  0x55ae6c0d9235 in os_host_main_loop_wait<+128> () at 
../util/main-loop.c:310
  #13  0x55ae6c0d9364 in main_loop_wait<+203> () at ../util/main-loop.c:589
  #14  0x55ae6bac212a in qemu_main_loop<+41> () at ../system/runstate.c:835
  #15  0x55ae6bfdf522 in qemu_default_main<+19> () at ../system/main.c:37
  #16  0x55ae6bfdf55f in main<+40> () at ../system/main.c:48
  #17  0x7f9f59d42248 in __libc_start_call_main<+119> ()
  #18  0x7f9f59d4230b in __libc_start_main_impl<+138> ()

Signed-off-by: Peter Xu <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 107c551de0d7bc3aa8e926c557b66b9549616f42
      
https://github.com/qemu/qemu/commit/107c551de0d7bc3aa8e926c557b66b9549616f42
  Author: Peter Krempa <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/block-backend.c

  Log Message:
  -----------
  block-backend: Fix argument order when calling 
'qapi_event_send_block_io_error()'

Commit 7452162adec25c10 introduced 'qom-path' argument to BLOCK_IO_ERROR
event but when the event is instantiated in 'send_qmp_error_event()' the
arguments for 'device' and 'qom_path' in
qapi_event_send_block_io_error() were reversed :

Generated code for sending event:

  void qapi_event_send_block_io_error(const char *qom_path,
                                      const char *device,
                                      const char *node_name,
                                      IoOperationType operation,
                                      [...]

Call inside send_qmp_error_event():

     qapi_event_send_block_io_error(blk_name(blk),
                                    blk_get_attached_dev_path(blk),
                                    bs ? bdrv_get_node_name(bs) : NULL, optype,
                                    [...]

This results into reporting the QOM path as the device alias and vice
versa which in turn breaks libvirt, which expects the device alias being
either a valid alias or empty (which would make libvirt do the lookup by
node-name instead).

Cc: [email protected]
Fixes: 7452162adec2 ("qapi: add qom-path to BLOCK_IO_ERROR event")
Signed-off-by: Peter Krempa <[email protected]>
Message-ID: 
<09728d784888b38d7a8f09ee5e9e9c542c875e1e.1737973614.git.pkre...@redhat.com>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: aec81049c2daa8a97b89e59f03733b21ae0f8c2d
      
https://github.com/qemu/qemu/commit/aec81049c2daa8a97b89e59f03733b21ae0f8c2d
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block.c
    M block/monitor/block-hmp-cmds.c
    M block/qapi.c
    M include/block/block-global-state.h
    M qapi/block-core.json
    M tests/qemu-iotests/184.out
    M tests/qemu-iotests/191.out
    M tests/qemu-iotests/273.out

  Log Message:
  -----------
  block: Add 'active' field to BlockDeviceInfo

This allows querying from QMP (and also HMP) whether an image is
currently active or inactive (in the sense of BDRV_O_INACTIVE).

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: a6490ec9d56b9e95a13918813585a3a9891710bc
      
https://github.com/qemu/qemu/commit/a6490ec9d56b9e95a13918813585a3a9891710bc
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Allow inactivating already inactive nodes

What we wanted to catch with the assertion is cases where the recursion
finds that a child was inactive before its parent. This should never
happen. But if the user tries to inactivate an image that is already
inactive, that's harmless and we don't want to fail the assertion.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: e80210ffb24c4e47650344ba77ce3ed354af596c
      
https://github.com/qemu/qemu/commit/e80210ffb24c4e47650344ba77ce3ed354af596c
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  block: Inactivate external snapshot overlays when necessary

Putting an active block node on top of an inactive one is strictly
speaking an invalid configuration and the next patch will turn it into a
hard error.

However, taking a snapshot while disk images are inactive after
completing migration has an important use case: After migrating to a
file, taking an external snapshot is what is needed to take a full VM
snapshot.

In order for this to keep working after the later patches, change
creating a snapshot such that it automatically inactivates an overlay
that is added on top of an already inactive node.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: c2a189976e211c9ff782538d5a5ed5e5cffeccd6
      
https://github.com/qemu/qemu/commit/c2a189976e211c9ff782538d5a5ed5e5cffeccd6
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M migration/block-active.c
    M migration/migration.c
    M migration/migration.h

  Log Message:
  -----------
  migration/block-active: Remove global active flag

Block devices have an individual active state, a single global flag
can't cover this correctly. This becomes more important as we allow
users to manually manage which nodes are active or inactive.

Now that it's allowed to call bdrv_inactivate_all() even when some
nodes are already inactive, we can remove the flag and just
unconditionally call bdrv_inactivate_all() and, more importantly,
bdrv_activate_all() before we make use of the nodes.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 9b81361aedcc47905de5e91f68221de89c6f5467
      
https://github.com/qemu/qemu/commit/9b81361aedcc47905de5e91f68221de89c6f5467
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Don't attach inactive child to active node

An active node makes unrestricted use of its children and would possibly
run into assertion failures when it operates on an inactive child node.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 8c2c72a33581987af8d8c484d03af3cd69b9e10a
      
https://github.com/qemu/qemu/commit/8c2c72a33581987af8d8c484d03af3cd69b9e10a
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block.c
    M block/block-backend.c

  Log Message:
  -----------
  block: Fix crash on block_resize on inactive node

In order for block_resize to fail gracefully on an inactive node instead
of crashing with an assertion failure in bdrv_co_write_req_prepare()
(called from bdrv_co_truncate()), we need to check for inactive nodes
also when they are attached as a root node and make sure that
BLK_PERM_RESIZE isn't among the permissions allowed for inactive nodes.
To this effect, don't enumerate the permissions that are incompatible
with inactive nodes any more, but allow only BLK_PERM_CONSISTENT_READ
for them.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: faecd16fe5c65a25b5b55b5edbe4322cec5a9d96
      
https://github.com/qemu/qemu/commit/faecd16fe5c65a25b5b55b5edbe4322cec5a9d96
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block.c
    M include/block/block-common.h
    M qapi/block-core.json

  Log Message:
  -----------
  block: Add option to create inactive nodes

In QEMU, nodes are automatically created inactive while expecting an
incoming migration (i.e. RUN_STATE_INMIGRATE). In qemu-storage-daemon,
the notion of runstates doesn't exist. It also wouldn't necessarily make
sense to introduce it because a single daemon can serve multiple VMs
that can be in different states.

Therefore, allow the user to explicitly open images as inactive with a
new option. The default is as before: Nodes are usually active, except
when created during RUN_STATE_INMIGRATE.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 8cd37207f8a90c5f995283ecf95f1cb5f7518a77
      
https://github.com/qemu/qemu/commit/8cd37207f8a90c5f995283ecf95f1cb5f7518a77
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block.c
    M blockdev.c
    M include/block/block-global-state.h
    M qapi/block-core.json

  Log Message:
  -----------
  block: Add blockdev-set-active QMP command

The system emulator tries to automatically activate and inactivate block
nodes at the right point during migration. However, there are still
cases where it's necessary that the user can do this manually.

Images are only activated on the destination VM of a migration when the
VM is actually resumed. If the VM was paused, this doesn't happen
automatically. The user may want to perform some operation on a block
device (e.g. taking a snapshot or starting a block job) without also
resuming the VM yet. This is an example where a manual command is
necessary.

Another example is VM migration when the image files are opened by an
external qemu-storage-daemon instance on each side. In this case, the
process that needs to hand over the images isn't even part of the
migration and can't know when the migration completes. Management tools
need a way to explicitly inactivate images on the source and activate
them on the destination.

This adds a new blockdev-set-active QMP command that lets the user
change the status of individual nodes (this is necessary in
qemu-storage-daemon because it could be serving multiple VMs and only
one of them migrates at a time). For convenience, operating on all
devices (like QEMU does automatically during migration) is offered as an
option, too, and can be used in the context of single VM.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: c1c5c7cc4ef6c45ca769c640566fd40d2cb7d5c1
      
https://github.com/qemu/qemu/commit/c1c5c7cc4ef6c45ca769c640566fd40d2cb7d5c1
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/block-backend.c

  Log Message:
  -----------
  block: Support inactive nodes in blk_insert_bs()

Device models have a relatively complex way to set up their block
backends, in which blk_attach_dev() sets blk->disable_perm = true.
We want to support inactive images in exports, too, so that
qemu-storage-daemon can be used with migration. Because they don't use
blk_attach_dev(), they need another way to set this flag. The most
convenient is to do this automatically when an inactive node is attached
to a BlockBackend that can be inactivated.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 69f28176ca0af850db23a1c6364f0c8525b20801
      
https://github.com/qemu/qemu/commit/69f28176ca0af850db23a1c6364f0c8525b20801
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/export/export.c

  Log Message:
  -----------
  block/export: Don't ignore image activation error in blk_exp_add()

Currently, block exports can't handle inactive images correctly.
Incoming write requests would run into assertion failures. Make sure
that we return an error when creating an export can't activate the
image.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 2849092a0024405e74c96f0a5ec41bb182ec8538
      
https://github.com/qemu/qemu/commit/2849092a0024405e74c96f0a5ec41bb182ec8538
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Drain nodes before inactivating them

So far the assumption has always been that if we try to inactivate a
node, it is already idle. This doesn't hold true any more if we allow
inactivating exported nodes because we can't know when new external
requests come in.

Drain the node around setting BDRV_O_INACTIVE so that requests can't
start operating on an active node and then in the middle it suddenly
becomes inactive. With this change, it's enough for exports to check
for new requests that they operate on an active node (or, like reads,
are allowed even on an inactive node).

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 1600ef01ab1296ca8230daa6bc41ba983751f646
      
https://github.com/qemu/qemu/commit/1600ef01ab1296ca8230daa6bc41ba983751f646
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/export/export.c
    M include/block/export.h
    M qapi/block-export.json

  Log Message:
  -----------
  block/export: Add option to allow export of inactive nodes

Add an option in BlockExportOptions to allow creating an export on an
inactive node without activating the node. This mode needs to be
explicitly supported by the export type (so that it doesn't perform any
operations that are forbidden for inactive nodes), so this patch alone
doesn't allow this option to be successfully used yet.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 2e73a17c68f4d80023dc616e596e8c1f3ea8dd75
      
https://github.com/qemu/qemu/commit/2e73a17c68f4d80023dc616e596e8c1f3ea8dd75
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M nbd/server.c

  Log Message:
  -----------
  nbd/server: Support inactive nodes

In order to support running an NBD export on inactive nodes, we must
make sure to return errors for any operations that aren't allowed on
inactive nodes. Reads are the only operation we know we need for
inactive images, so to err on the side of caution, return errors for
everything else, even if some operations could possibly be okay.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: ed26db83673f4a190332d2a378e2f6e342b8904d
      
https://github.com/qemu/qemu/commit/ed26db83673f4a190332d2a378e2f6e342b8904d
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M tests/qemu-iotests/041
    M tests/qemu-iotests/165
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/tests/copy-before-write
    M tests/qemu-iotests/tests/migrate-bitmaps-test

  Log Message:
  -----------
  iotests: Add filter_qtest()

The open-coded form of this filter has been copied into enough tests
that it's better to move it into iotests.py.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 3ea437ab3d561ca79b95a34c5128e370de4738e3
      
https://github.com/qemu/qemu/commit/3ea437ab3d561ca79b95a34c5128e370de4738e3
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    A tests/qemu-iotests/tests/qsd-migrate
    A tests/qemu-iotests/tests/qsd-migrate.out

  Log Message:
  -----------
  iotests: Add qsd-migrate case

Test that it's possible to migrate a VM that uses an image on shared
storage through qemu-storage-daemon.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: bbf105ef3cc48fff282789e9bf56b7a81e1407bd
      
https://github.com/qemu/qemu/commit/bbf105ef3cc48fff282789e9bf56b7a81e1407bd
  Author: Kevin Wolf <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M tests/qemu-iotests/iotests.py
    A tests/qemu-iotests/tests/inactive-node-nbd
    A tests/qemu-iotests/tests/inactive-node-nbd.out

  Log Message:
  -----------
  iotests: Add (NBD-based) tests for inactive nodes

This tests different types of operations on inactive block nodes
(including graph changes, block jobs and NBD exports) to make sure that
users manually activating and inactivating nodes doesn't break things.

Support for inactive nodes in other export types will have to come with
separate test cases because they have different dependencies like blkio
or root permissions and we don't want to disable this basic test when
they are not fulfilled.

Signed-off-by: Kevin Wolf <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: fc4e394b2887e15d5f83994e4fc7b26c895c627a
      
https://github.com/qemu/qemu/commit/fc4e394b2887e15d5f83994e4fc7b26c895c627a
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M block/replication.c
    M blockjob.c
    M hw/block/virtio-blk.c
    M hw/scsi/virtio-scsi.c
    M include/block/block-common.h

  Log Message:
  -----------
  block: remove unused BLOCK_OP_TYPE_DATAPLANE

BLOCK_OP_TYPE_DATAPLANE prevents BlockDriverState from being used by
virtio-blk/virtio-scsi with IOThread. Commit b112a65c52aa ("block:
declare blockjobs and dataplane friends!") eliminated the main reason
for this blocker in 2014.

Nowadays the block layer supports I/O from multiple AioContexts, so
there is even less reason to block IOThread users. Any legitimate
reasons related to interference would probably also apply to
non-IOThread users.

The only remaining users are bdrv_op_unblock(BLOCK_OP_TYPE_DATAPLANE)
calls after bdrv_op_block_all(). If we remove BLOCK_OP_TYPE_DATAPLANE
their behavior doesn't change.

Existing bdrv_op_block_all() callers that don't explicitly unblock
BLOCK_OP_TYPE_DATAPLANE seem to do so simply because no one bothered to
rather than because it is necessary to keep BLOCK_OP_TYPE_DATAPLANE
blocked.

Signed-off-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 5a3c49dedf1e9e5e6a8f3e63952e2e546b6c8433
      
https://github.com/qemu/qemu/commit/5a3c49dedf1e9e5e6a8f3e63952e2e546b6c8433
  Author: Peter Maydell <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M docs/about/deprecated.rst
    M target/arm/cpu.c
    M target/arm/cpu.h
    M target/arm/tcg/cpu32.c

  Log Message:
  -----------
  target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation

The pxa2xx CPUs are now only useful with user-mode emulation, because
we dropped all the machine types that used them in 9.2.  (Technically
you could alse use "-cpu pxa270" with a board model like versatilepb
which doesn't sanity-check the CPU type, but that has never been a
supported config.)

To use them (or iwMMXt emulation) with QEMU user-mode you would need
to explicitly select them with the -cpu option or the QEMU_CPU
environment variable.  A google search finds no examples of anybody
doing this in the last decade; I don't believe the GCC folks are
using QEMU to test their iwMMXt codegen either.  In fact, GCC is in
the process of dropping support for iwMMXT entirely.

The iwMMXt emulation is thousands of lines of code in QEMU, and
is now the only bit of Arm insn decode which doesn't use decodetree.
We have no way to test or validate changes to it. This code is
just dead weight that is almost certainly not being used by anybody.
Mark it as deprecated.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: [email protected]


  Commit: 86f847a39aef93bcfbea65a702ba76762ae54d61
      
https://github.com/qemu/qemu/commit/86f847a39aef93bcfbea65a702ba76762ae54d61
  Author: Peter Maydell <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M tests/tcg/arm/Makefile.target
    M tests/tcg/arm/README
    R tests/tcg/arm/test-arm-iwmmxt.S

  Log Message:
  -----------
  tests/tcg/arm: Remove test-arm-iwmmxt test

The test-arm-iwmmmxt test isn't testing what it thinks it's testing.

If you run it with a CPU type that supports iwMMXt then it will crash
immediately with a SIGILL, because (even with -marm) GCC will link it
against startup code that is in Thumb mode, and no iwMMXt CPU has
Thumb:

00010338 <_start>:
   10338:       f04f 0b00       mov.w   fp, #0
   1033c:       f04f 0e00       mov.w   lr, #0

If you run it with a CPU type which does *not* support iwMMXt, which
is what 'make check-tcg' does, then QEMU will not try to handle the
insns as iwMMXt.  Instead the translator turns them into illegal
instructions.  Then in the linux-user cpu_loop() code we identify
them as FPA11 instructions inside emulate_arm_fpa11(), because the
FPA11 happened to use the same coprocessor number as these iwMMXt
insns.  So we execute a completely different set of FPA11 insns,
which means we don't crash, but we will print garbage to stdout.
Then the test binary always exits with a 0 return code, so 'make
check-tcg' thinks the test passes.

Modern gnueabihf toolchains assume in their startup code that the CPU
is not so old as to not support Thumb, so there's no way to get them
to generate a binary that actually does what the test wants.  Since
we're deprecating iwMMXt emulation anyway, it's not worth trying to
salvage the test case to get it to really test the iwMMXt insns.

Delete the test entirely.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: [email protected]


  Commit: 7623676948d35cdbb31fd976f96277e3f1673e52
      
https://github.com/qemu/qemu/commit/7623676948d35cdbb31fd976f96277e3f1673e52
  Author: Peter Maydell <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M target/arm/tcg/translate-a64.c

  Log Message:
  -----------
  target/arm: Drop unused AArch64DecodeTable typedefs

We removed the old table-based decoder in favour of decodetree, but
we left a couple of typedefs that are now unused; delete them.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: [email protected]


  Commit: cbb95d496810023a485a3cfc1a096733b055ce89
      
https://github.com/qemu/qemu/commit/cbb95d496810023a485a3cfc1a096733b055ce89
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M hw/arm/boot.c
    M hw/arm/virt.c
    M include/hw/arm/boot.h

  Log Message:
  -----------
  hw/arm/boot: Propagate vCPU to arm_load_dtb()

In heterogeneous setup the first vCPU might not be
the one expected, better pass it explicitly.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>


  Commit: eead29c0e7f1d7b320247dc89891c9137eafe85c
      
https://github.com/qemu/qemu/commit/eead29c0e7f1d7b320247dc89891c9137eafe85c
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M hw/arm/fsl-imx6.c

  Log Message:
  -----------
  hw/arm/fsl-imx6: Add local 'mpcore/gic' variables

The A9MPCore forward the IRQs from its internal GIC.
To make the code clearer, add the 'mpcore' and 'gic'
variables.

Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>


  Commit: 4033d1d56e3689a4733b41b3f9297900ac6e2053
      
https://github.com/qemu/qemu/commit/4033d1d56e3689a4733b41b3f9297900ac6e2053
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M hw/arm/fsl-imx6ul.c

  Log Message:
  -----------
  hw/arm/fsl-imx6ul: Add local 'mpcore/gic' variables

The A7MPCore forward the IRQs from its internal GIC.
To make the code clearer, add the 'mpcore' and 'gic'
variables. Rename 'd' variable as 'cpu'.

Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>


  Commit: 04c58c3b20030db145308be26a7df98d02847ab9
      
https://github.com/qemu/qemu/commit/04c58c3b20030db145308be26a7df98d02847ab9
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M hw/arm/fsl-imx7.c

  Log Message:
  -----------
  hw/arm/fsl-imx7: Add local 'mpcore/gic' variables

The A7MPCore forward the IRQs from its internal GIC.
To make the code clearer, add the 'mpcore' and 'gic'
variables.

Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>


  Commit: f09613965664e268b00dfc7b4253065e6a0543a9
      
https://github.com/qemu/qemu/commit/f09613965664e268b00dfc7b4253065e6a0543a9
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M hw/cpu/realview_mpcore.c

  Log Message:
  -----------
  hw/cpu/arm: Alias 'num-cpu' property on TYPE_REALVIEW_MPCORE

No need to duplicate and forward the 'num-cpu' property from
TYPE_ARM11MPCORE_PRIV to TYPE_REALVIEW_MPCORE, alias it with
QOM object_property_add_alias().

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>


  Commit: 3272ddee8caf65f31c131dfca2cf1c133edd745c
      
https://github.com/qemu/qemu/commit/3272ddee8caf65f31c131dfca2cf1c133edd745c
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M hw/cpu/a15mpcore.c
    M hw/cpu/a9mpcore.c
    M hw/cpu/arm11mpcore.c
    M hw/cpu/realview_mpcore.c

  Log Message:
  -----------
  hw/cpu/arm: Declare CPU QOM types using DEFINE_TYPES() macro

When multiple QOM types are registered in the same file,
it is simpler to use the the DEFINE_TYPES() macro. In
particular because type array declared with such macro
are easier to review.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>


  Commit: 76723b8ed7b8274a4e30cdf0a9f3e7c47ebe251a
      
https://github.com/qemu/qemu/commit/76723b8ed7b8274a4e30cdf0a9f3e7c47ebe251a
  Author: Andrew Yuan <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M hw/net/cadence_gem.c

  Log Message:
  -----------
  hw/net/cadence_gem:  Fix the mask/compare/disable-mask logic

Our current handling of the mask/compare logic in the Cadence
GEM ethernet device is wrong:
 (1) we load the same byte twice from rx_buf when
     creating the compare value
 (2) we ignore the DISABLE_MASK flag

The "Cadence IP for Gigabit Ethernet MAC Part Number: IP7014 IP Rev:
R1p12 - Doc Rev: 1.3 User Guide" states that if the DISABLE_MASK bit
in type2_compare_x_word_1 is set, the mask_value field in
type2_compare_x_word_0 is used as an additional 2 byte Compare Value.

Correct these bugs:
 * in the !disable_mask codepath, use lduw_le_p() so we
   correctly load a 16-bit value for comparison
 * in the disable_mask codepath, we load a full 4-byte value
   from rx_buf for the comparison, set the compare value to
   the whole of the cr0 register (i.e. the concatenation of
   the mask and compare fields), and set mask to 0xffffffff
   to force a 32-bit comparison

Signed-off-by: Andrew Yuan <[email protected]>
Message-id: [email protected]
Suggested-by: Philippe Mathieu-Daudé <[email protected]>
[PMM: Expand commit message and comment]
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>


  Commit: 751002e74a8e3fc2dd388d57a93e11d3624af6f6
      
https://github.com/qemu/qemu/commit/751002e74a8e3fc2dd388d57a93e11d3624af6f6
  Author: Peter Maydell <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M docs/about/deprecated.rst
    M system/vl.c

  Log Message:
  -----------
  qemu-options: Deprecate -old-param command line option

The '-old-param' command line option is specific to Arm targets; it
is very briefly documented as "old param mode".  What this option
actually does is change the behaviour when directly booting a guest
kernel, so that command line arguments are passed to the kernel using
the extremely old "param_struct" ABI, rather than the newer ATAGS or
even newer DTB mechanisms.

This support was added back in 2007 to support an old vendor kernel
on the akita/terrier board types:
 https://mail.gnu.org/archive/html/qemu-devel/2007-07/msg00344.html
Even then, it was an out-of-date mechanism from the kernel's
point of view -- the kernel has had a comment since 2001 marking
it as deprecated. As of mid-2024, the kernel only retained
param_struct support for the RiscPC and Footbridge platforms:
 
https://lore.kernel.org/linux-arm-kernel/[email protected]/

None of the board types QEMU supports need param_struct support;
mark this option as deprecated.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Message-id: [email protected]


  Commit: 27a8d899c7a100fd5aa040a8b993bb257687c393
      
https://github.com/qemu/qemu/commit/27a8d899c7a100fd5aa040a8b993bb257687c393
  Author: Khem Raj <[email protected]>
  Date:   2025-02-07 (Fri, 07 Feb 2025)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: Do not define struct sched_attr if libc headers do

glibc 2.41+ has added [1] definitions for sched_setattr and
sched_getattr functions and struct sched_attr.  Therefore, it needs
to be checked for here as well before defining sched_attr, to avoid
a compilation failure.

Define sched_attr conditionally only when SCHED_ATTR_SIZE_VER0 is
not defined.

[1] 
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=21571ca0d70302909cf72707b2a7736cf12190a0;hp=298bc488fdc047da37482f4003023cb9adef78f8

Signed-off-by: Khem Raj <[email protected]>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2799
Cc: [email protected]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>


  Commit: 0fa0b5edaaa84a967f96c62f38ddd2d5c08a975a
      
https://github.com/qemu/qemu/commit/0fa0b5edaaa84a967f96c62f38ddd2d5c08a975a
  Author: Alex Bennée <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M MAINTAINERS
    M tests/docker/Makefile.include
    A tests/docker/test-rust

  Log Message:
  -----------
  tests/docker: replicate the check-rust-tools-nightly CI job

This allows people to run the test locally:

  make docker-test-rust@fedora-rust-nightly

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 059d06c8a84352a64da963fbe70b978e3f225af0
      
https://github.com/qemu/qemu/commit/059d06c8a84352a64da963fbe70b978e3f225af0
  Author: Alex Bennée <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M tests/qtest/libqos/virtio-pci-modern.c
    M tests/qtest/libqos/virtio-pci.c

  Log Message:
  -----------
  tests/qtest: don't attempt to clock_step while waiting for virtio ISR

This replicates the changes from 92cb8f8bf6 (tests/qtest: remove
clock_steps from virtio tests) as there are no timers in the virtio
code. We still busy wait and timeout though.

Reviewed-by: Thomas Huth <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: ff6c3b1a16ac2ee570447660526eea531d748396
      
https://github.com/qemu/qemu/commit/ff6c3b1a16ac2ee570447660526eea531d748396
  Author: Alex Bennée <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

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

  Log Message:
  -----------
  tests/qtest: don't step clock at start of npcm7xx periodic IRQ test

Until there are timers enabled the semantics of clock_step_next() will
fail. Since d524441a36 (system/qtest: properly feedback results of
clock_[step|set]) we will signal a FAIL if time doesn't advance.

Reviewed-by: Hao Wu <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 1e00ebfd8012061c1186fbf368b4216ac6e299c4
      
https://github.com/qemu/qemu/commit/1e00ebfd8012061c1186fbf368b4216ac6e299c4
  Author: Alex Bennée <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M system/qtest.c

  Log Message:
  -----------
  tests/qtest: simplify qtest_process_inbuf

Don't both creating a GString to temporarily hold our qtest command.
Instead do a simpler g_strndup and use autofree to clean up
afterwards.

Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 31ef3c333db3b1293b65da0e8fe602ad5ebcd698
      
https://github.com/qemu/qemu/commit/31ef3c333db3b1293b65da0e8fe602ad5ebcd698
  Author: Alex Bennée <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M hw/ppc/spapr_rtas.c
    M hw/riscv/riscv_hart.c
    M include/system/qtest.h
    M system/qtest.c

  Log Message:
  -----------
  tests/qtest: rename qtest_send_prefix and roll-up into qtest_send

qtest_send_prefix never actually sent something over the chardev, all
it does is print the timestamp to the QTEST_LOG when enabled. So
rename the function, make it static, remove the unused CharDev and
simplify all the call sites by handling that directly with
qtest_send (and qtest_log_send).

Reviewed-by: Thomas Huth <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 14fa0e6b2065bf693e4bdfc3fa0a84e1b8b5ffe1
      
https://github.com/qemu/qemu/commit/14fa0e6b2065bf693e4bdfc3fa0a84e1b8b5ffe1
  Author: Alex Bennée <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M system/qtest.c

  Log Message:
  -----------
  tests/qtest: tighten up the checks on clock_step

It is invalid to call clock_step with an implied time to step forward
as if no timers are running we won't be able to advance.

Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: a08eac97615e20facfadc0c27ef116c12b2163b2
      
https://github.com/qemu/qemu/commit/a08eac97615e20facfadc0c27ef116c12b2163b2
  Author: Alex Bennée <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M util/qemu-timer.c

  Log Message:
  -----------
  Revert "util/timer: avoid deadlock when shutting down"

This reverts commit bc02be4508d8753d1f6071b77d10f4661587df6f.

Now we catch attempts to clock_step to the next timer when none are
enabled we can revert the previous attempt to prevent deadlock. As
long as a new target time is given we will move time forward even if
no timers will fire. This is desirable for tests which are checking
that nothing changes when things are disabled.

Previously most tests got away with it because --enable-slirp always
has a timer running while the test is active.

Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: bc2a1f1a45eb9d52d0e22fea93589bab1a6e95be
      
https://github.com/qemu/qemu/commit/bc2a1f1a45eb9d52d0e22fea93589bab1a6e95be
  Author: Fabiano Rosas <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M tests/qtest/meson.build
    M tests/qtest/migration-test.c
    M tests/qtest/migration/compression-tests.c
    M tests/qtest/migration/cpr-tests.c
    M tests/qtest/migration/file-tests.c
    M tests/qtest/migration/framework.h
    M tests/qtest/migration/misc-tests.c
    M tests/qtest/migration/postcopy-tests.c
    M tests/qtest/migration/precopy-tests.c
    M tests/qtest/migration/tls-tests.c

  Log Message:
  -----------
  tests/qtest/migration: Add --full option

Add a new command line option to allow selecting between running the
full set of tests or a smaller set of tests. The default will be to
run the small set (i.e. no comand line option provided) so we can
reduce the amount of tests run by default. Only hosts which support
KVM for the target architecture being tested will run the complete set
of tests.

Adjust the meson.build file to pass in the --full option when
appropriate.

(for now, set the option unconditionally until the next patch actually
creates the small set)

Use cases:

configure 
--target-list=aarch64-softmmu,ppc64-softmmu,s390x-softmmu,x86_64-softmmu

                        | before - 615s/244 tests  | after - 244s/100 tests
------------------------+--------------------------+-----------------------------
make check              | full set for all archs   | full set for the KVM arch,
make check-qtest        |                          | small set for the rest
                        |                          |
qemu-system-$ARCH       | full set for $ARCH       | small set for $ARCH, KVM or
./migration-test        |                          | TCG automatically chosen
                        |                          |
qemu-system-$ARCH       | N/A                      | full set for $ARCH, KVM or
./migration-test --full |                          | TCG automatically chosen
                        |                          |
migration-compat-x86_64 | full set for x86_64      | small set for x86_64
CI job                  |                          |
------------------------+--------------------------+-----------------------------

Signed-off-by: Fabiano Rosas <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 43ab3fb375ebb55c5b2ee7b88945f1466e7e2d5f
      
https://github.com/qemu/qemu/commit/43ab3fb375ebb55c5b2ee7b88945f1466e7e2d5f
  Author: Fabiano Rosas <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M tests/qtest/migration-test.c
    M tests/qtest/migration/compression-tests.c
    M tests/qtest/migration/cpr-tests.c
    M tests/qtest/migration/file-tests.c
    M tests/qtest/migration/misc-tests.c
    M tests/qtest/migration/postcopy-tests.c
    M tests/qtest/migration/precopy-tests.c
    M tests/qtest/migration/tls-tests.c

  Log Message:
  -----------
  tests/qtest/migration: Pick smoke tests

Choose a few tests per group and move them from the full set to the
smoke set.

Signed-off-by: Fabiano Rosas <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 9853485dd420a567500019752d011cc8d38f7199
      
https://github.com/qemu/qemu/commit/9853485dd420a567500019752d011cc8d38f7199
  Author: Ilya Leoshkevich <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M gdbstub/user.c

  Log Message:
  -----------
  gdbstub: Allow the %d placeholder in the socket path

Just like for QEMU_LOG_FILENAME, replace %d with PID in the GDB socket
path. This allows running multi-process applications with, e.g.,
export QEMU_GDB=/tmp/qemu-%d.sock. Currently this is not possible,
since the first process will cause the subsequent ones to fail due to
not being able to bind() the GDB socket.

Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Warner Losh <[email protected]>
Signed-off-by: Ilya Leoshkevich <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: fccb744f41c69fec6fd92225fe907c6e69de5d44
      
https://github.com/qemu/qemu/commit/fccb744f41c69fec6fd92225fe907c6e69de5d44
  Author: Ilya Leoshkevich <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M gdbstub/user.c
    M stubs/meson.build
    A stubs/monitor-fd.c
    M util/meson.build

  Log Message:
  -----------
  gdbstub: Try unlinking the unix socket before binding

In case an emulated process execve()s another emulated process, bind()
will fail, because the socket already exists. So try deleting it. Use
the existing unix_listen() function which does this. Link qemu-user
with qemu-sockets.c and add the monitor_get_fd() stub.

Note that it is not possible to handle this in do_execv(): deleting
gdbserver_user_state.socket_path before safe_execve() is not correct,
because the latter may fail, and afterwards we may lose control.

Signed-off-by: Ilya Leoshkevich <[email protected]>
Reviewed-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 08916fd4b6b308941568ecd7305455121ce7c267
      
https://github.com/qemu/qemu/commit/08916fd4b6b308941568ecd7305455121ce7c267
  Author: Ilya Leoshkevich <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M bsd-user/signal-common.h
    M bsd-user/signal.c
    A include/user/signal.h
    M linux-user/signal-common.h
    M linux-user/signal.c
    M linux-user/syscall.c

  Log Message:
  -----------
  user: Introduce user/signal.h

gdbstub needs target_to_host_signal(), so move its declaration to a
public header.

Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Warner Losh <[email protected]>
Signed-off-by: Ilya Leoshkevich <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 2b3ccf5f0db7c75ba990da7e6223c3f7319480c0
      
https://github.com/qemu/qemu/commit/2b3ccf5f0db7c75ba990da7e6223c3f7319480c0
  Author: Ilya Leoshkevich <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M bsd-user/signal.c
    M include/user/signal.h
    M linux-user/signal.c

  Log Message:
  -----------
  user: Introduce host_interrupt_signal

Attaching to the gdbstub of a running process requires stopping its
threads. For threads that run on a CPU, cpu_exit() is enough, but the
only way to grab attention of a thread that is stuck in a long-running
syscall is to interrupt it with a signal.

Reserve a host realtime signal for this, just like it's already done
for TARGET_SIGABRT on Linux. This may reduce the number of available
guest realtime signals by one, but this is acceptable, since there are
quite a lot of them, and it's unlikely that there are apps that need
them all.

Set signal_pending for the safe_sycall machinery to prevent invoking
the syscall. This is a lie, since we don't queue a guest signal, but
process_pending_signals() can handle the absence of pending signals.
The syscall returns with QEMU_ERESTARTSYS errno, which arranges for
the automatic restart. This is important, because it helps avoiding
disturbing poorly written guests.

Reviewed-by: Warner Losh <[email protected]>
Signed-off-by: Ilya Leoshkevich <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: a33dcfe771c7c2460f2a6809c3b73a5d0772396f
      
https://github.com/qemu/qemu/commit/a33dcfe771c7c2460f2a6809c3b73a5d0772396f
  Author: Ilya Leoshkevich <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M include/qemu/osdep.h
    M util/oslib-posix.c

  Log Message:
  -----------
  osdep: Introduce qemu_kill_thread()

Add a function for sending signals to individual threads. It does not make
sense on Windows, so do not provide an implementation, so that if someone
uses it by accident, they will get a linker error.

Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Warner Losh <[email protected]>
Signed-off-by: Ilya Leoshkevich <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: d156d5d1df12a73e06092dc5fa6595d6f16f8521
      
https://github.com/qemu/qemu/commit/d156d5d1df12a73e06092dc5fa6595d6f16f8521
  Author: Ilya Leoshkevich <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M bsd-user/main.c
    M gdbstub/user.c
    M linux-user/main.c

  Log Message:
  -----------
  gdbstub: Allow late attachment

Allow debugging individual processes in multi-process applications by
starting them with export QEMU_GDB=/tmp/qemu-%d.sock,suspend=n.
Currently one would have to attach to every process to ensure the app
makes progress.

In case suspend=n is not specified, the flow remains unchanged. If it
is specified, then accepting the client connection is delegated to a
thread. In the future this machinery may be reused for handling
reconnections and interruptions.

On accepting a connection, the thread schedules gdb_handlesig() on the
first CPU and wakes it up with host_interrupt_signal. Note that the
result of this gdb_handlesig() invocation is handled, as opposed to
many other existing call sites. These other call sites probably need to
be fixed separately.

Signed-off-by: Ilya Leoshkevich <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 628d64222e6bef249d23ce3147cbfb47259f2ede
      
https://github.com/qemu/qemu/commit/628d64222e6bef249d23ce3147cbfb47259f2ede
  Author: Ilya Leoshkevich <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M docs/user/main.rst

  Log Message:
  -----------
  docs/user: Document the %d placeholder and suspend=n QEMU_GDB features

Reviewed-by: Alex Bennée <[email protected]>
Signed-off-by: Ilya Leoshkevich <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 24c61663dcec0e87bb4206a7623f0e222e188b47
      
https://github.com/qemu/qemu/commit/24c61663dcec0e87bb4206a7623f0e222e188b47
  Author: Ilya Leoshkevich <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M tests/guest-debug/run-test.py
    M tests/tcg/multiarch/Makefile.target
    A tests/tcg/multiarch/gdbstub/late-attach.py
    A tests/tcg/multiarch/late-attach.c

  Log Message:
  -----------
  tests/tcg: Add late gdbstub attach test

Add a small test to prevent regressions.
Make sure that host_interrupt_signal is not visible to the guest.

Reviewed-by: Alex Bennée <[email protected]>
Signed-off-by: Ilya Leoshkevich <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 4f1d01851270ac7457a83a7615a40bf518d54602
      
https://github.com/qemu/qemu/commit/4f1d01851270ac7457a83a7615a40bf518d54602
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M docs/about/deprecated.rst
    M hw/arm/boot.c
    M hw/arm/fsl-imx6.c
    M hw/arm/fsl-imx6ul.c
    M hw/arm/fsl-imx7.c
    M hw/arm/virt.c
    M hw/cpu/a15mpcore.c
    M hw/cpu/a9mpcore.c
    M hw/cpu/arm11mpcore.c
    M hw/cpu/realview_mpcore.c
    M hw/net/cadence_gem.c
    M include/hw/arm/boot.h
    M linux-user/syscall.c
    M system/vl.c
    M target/arm/cpu.c
    M target/arm/cpu.h
    M target/arm/tcg/cpu32.c
    M target/arm/tcg/translate-a64.c
    M tests/tcg/arm/Makefile.target
    M tests/tcg/arm/README
    R tests/tcg/arm/test-arm-iwmmxt.S

  Log Message:
  -----------
  Merge tag 'pull-target-arm-20250210' of 
https://git.linaro.org/people/pmaydell/qemu-arm into staging

target-arm queue:
 * Deprecate pxa2xx CPUs, iwMMXt emulation, -old-param option
 * Drop unused AArch64DecodeTable typedefs
 * Minor code cleanups
 * hw/net/cadence_gem:  Fix the mask/compare/disable-mask logic
 * linux-user: Do not define struct sched_attr if libc headers do

 # -----BEGIN PGP SIGNATURE-----
 #
 # iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmeqH/sZHHBldGVyLm1h
 # eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3lW6D/4r4SyxAzrjIQRLh3xydADN
 # A9EsQ44Or/M7jJ7uzR5nkLldlHdKTccVZFj17BlK6DnklsTUVSUoxpHtzYTHE2Ar
 # Q8iqV4dqoyDrYpqHWNQQvwQCBLbcj0CFQ1VjieG656m4uhImoeVMiH3xbFvMwqj0
 # KpIWL/+jaRs5jgpnN7Ig4Zq3gVHVZWyOOjzIKF/l4hFchK4eao0oAWdWo/TtGPHB
 # WyqkO1YZoZGBlT/7WXyKE5YXoXbd8m079NXcHmH6sy1/fSNXQ7qIlHGV/36kiJo1
 # WnDgZ0KUOEl4thaeq731xtgGcwt9C9Qx8g9bJP42os7EzQZBtvXxJXWgQKpvpNVH
 # Hmpsj0ed7oI1LH5DEPkqvYOEnnvEFt3skMbblhIZufnrAnojk9Q64v/Z1LNEIuuC
 # j5sZrFZsKPsA2uNzsmqXyJxWwnU6IT5YNBZAzALFTwE8dNL/VMXfRYhhUEy0Ay3C
 # jVXHk+sfOKo83YNswffagBeb/tRFDApgvRySxxL9TCONGl0HNkXqSuE+hssF8jyr
 # AnZ3zxSrmWKZizuotvFwaP0bxP0Sa/yeR1lR6E1xu+iEEJKJ4dE5xpX4E3uf6tHk
 # cfQQXFrhOzEwGn4qLDuqcgvhxRecZL7kNiFYidynKafIBw///J1cpaDYxxwh9v6O
 # TZuJliw0uCo6z0sXxVIn1w==
 # =MS2g
 # -----END PGP SIGNATURE-----
 # gpg: Signature made Mon 10 Feb 2025 10:49:15 EST
 # gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
 # gpg:                issuer "[email protected]"
 # gpg: Good signature from "Peter Maydell <[email protected]>" [full]
 # gpg:                 aka "Peter Maydell <[email protected]>" [full]
 # gpg:                 aka "Peter Maydell <[email protected]>" 
[full]
 # gpg:                 aka "Peter Maydell <[email protected]>" [unknown]
 # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* tag 'pull-target-arm-20250210' of 
https://git.linaro.org/people/pmaydell/qemu-arm:
  linux-user: Do not define struct sched_attr if libc headers do
  qemu-options: Deprecate -old-param command line option
  hw/net/cadence_gem:  Fix the mask/compare/disable-mask logic
  hw/cpu/arm: Declare CPU QOM types using DEFINE_TYPES() macro
  hw/cpu/arm: Alias 'num-cpu' property on TYPE_REALVIEW_MPCORE
  hw/arm/fsl-imx7: Add local 'mpcore/gic' variables
  hw/arm/fsl-imx6ul: Add local 'mpcore/gic' variables
  hw/arm/fsl-imx6: Add local 'mpcore/gic' variables
  hw/arm/boot: Propagate vCPU to arm_load_dtb()
  target/arm: Drop unused AArch64DecodeTable typedefs
  tests/tcg/arm: Remove test-arm-iwmmxt test
  target/arm: deprecate the pxa2xx CPUs and iwMMXt emulation

Conflicts:
- The iwMMXt deprecation notice conflicted with the 32-bit host
  operating system deprecation notice. Add both notices.

Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: f2ec48fefd172a8dd20cb0073087d659aca9578c
      
https://github.com/qemu/qemu/commit/f2ec48fefd172a8dd20cb0073087d659aca9578c
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M block.c
    M block/block-backend.c
    M block/export/export.c
    M block/monitor/block-hmp-cmds.c
    M block/qapi.c
    M block/replication.c
    M block/vpc.c
    M blockdev.c
    M blockjob.c
    M hw/block/virtio-blk.c
    M hw/scsi/virtio-scsi.c
    M include/block/block-common.h
    M include/block/block-global-state.h
    M include/block/export.h
    M include/system/block-backend-io.h
    M migration/block-active.c
    M migration/migration.c
    M migration/migration.h
    M nbd/server.c
    M qapi/block-core.json
    M qapi/block-export.json
    M scripts/qemu-gdb.py
    M scripts/qemugdb/coroutine.py
    M tests/qemu-iotests/041
    M tests/qemu-iotests/165
    M tests/qemu-iotests/184.out
    M tests/qemu-iotests/191.out
    M tests/qemu-iotests/273.out
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/tests/copy-before-write
    A tests/qemu-iotests/tests/inactive-node-nbd
    A tests/qemu-iotests/tests/inactive-node-nbd.out
    M tests/qemu-iotests/tests/migrate-bitmaps-test
    A tests/qemu-iotests/tests/qsd-migrate
    A tests/qemu-iotests/tests/qsd-migrate.out

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

Block layer patches

- Managing inactive nodes (enables QSD migration with shared storage)
- Fix swapped values for BLOCK_IO_ERROR 'device' and 'qom-path'
- vpc: Read images exported from Azure correctly
- scripts/qemu-gdb: Support coroutine dumps in coredumps
- Minor cleanups

# -----BEGIN PGP SIGNATURE-----
#
# iQJFBAABCAAvFiEE3D3rFZqa+V09dFb+fwmycsiPL9YFAmek34IRHGt3b2xmQHJl
# ZGhhdC5jb20ACgkQfwmycsiPL9bDpxAAnTvwmdazAXG0g9GzqvrEB/+6rStjAsqE
# 9MTWV4WxyN41d0RXxN8CYKb8CXSiTRyw6r3CSGNYEI2eShe9e934PriSkZm41HyX
# n9Yh5YxqGZqitzvPtx62Ii/1KG+PcjQbfHuK1p4+rlKa0yQ2eGlio1JIIrZrCkBZ
# ikZcQUrhIyD0XV8hTQ2+Ysa+ZN6itjnlTQIG3gS3m8f8WR7kyUXD8YFMQFJFyjVx
# NrAIpLnc/ln9+5PZR9tje8U7XEn2KCgI5pgGaQnrd0h0G1H4ig8ogzYYnKTLhjU/
# AmQpS8np8Tyg6S1UZTiekEq0VuAhThEQc5b3sGbmHWH/R2ABMStyf18oCBAkPzZ7
# s6h+3XzTKKY2Q5Q3ZG/ANkUJjTNBhdj1fcaARvbSWsqsuk5CWX/I3jzvgihFtCSs
# eGu+b/bLeW6P7hu4qPHBcgLHuB1Fc7Rd2t4BoIGM1wcO2CeC9DzUKOiIMZOEJIh0
# GGqCkEWDHgckDTakD4/vSqm0UDKt6FSlQC9ga/ILBY3IB5HpHoArY58selymy28i
# X7MgAvbjdsmNuUuXDZZOiObcFt3j8jlmwPJpPyzXPQIiPX1RXeBPRhVAEeZCKn6Z
# tfHr72SJdMeVOGXVTvOrJ2iW+4g03rPdmkDFCUhpOwo62RODq7ahvCIXsNf3nEFR
# rSB3T1M/8EM=
# =iQLP
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 06 Feb 2025 11:12:50 EST
# gpg:                using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Kevin Wolf <[email protected]>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* tag 'for-upstream' of https://repo.or.cz/qemu/kevin: (25 commits)
  block: remove unused BLOCK_OP_TYPE_DATAPLANE
  iotests: Add (NBD-based) tests for inactive nodes
  iotests: Add qsd-migrate case
  iotests: Add filter_qtest()
  nbd/server: Support inactive nodes
  block/export: Add option to allow export of inactive nodes
  block: Drain nodes before inactivating them
  block/export: Don't ignore image activation error in blk_exp_add()
  block: Support inactive nodes in blk_insert_bs()
  block: Add blockdev-set-active QMP command
  block: Add option to create inactive nodes
  block: Fix crash on block_resize on inactive node
  block: Don't attach inactive child to active node
  migration/block-active: Remove global active flag
  block: Inactivate external snapshot overlays when necessary
  block: Allow inactivating already inactive nodes
  block: Add 'active' field to BlockDeviceInfo
  block-backend: Fix argument order when calling 
'qapi_event_send_block_io_error()'
  scripts/qemu-gdb: Support coroutine dumps in coredumps
  scripts/qemu-gdb: Simplify fs_base fetching for coroutines
  ...

Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: ffaf7f0376f8040ce9068d71ae9ae8722505c42e
      
https://github.com/qemu/qemu/commit/ffaf7f0376f8040ce9068d71ae9ae8722505c42e
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M MAINTAINERS
    M bsd-user/main.c
    M bsd-user/signal-common.h
    M bsd-user/signal.c
    M docs/user/main.rst
    M gdbstub/user.c
    M hw/ppc/spapr_rtas.c
    M hw/riscv/riscv_hart.c
    M include/qemu/osdep.h
    M include/system/qtest.h
    A include/user/signal.h
    M linux-user/main.c
    M linux-user/signal-common.h
    M linux-user/signal.c
    M linux-user/syscall.c
    M stubs/meson.build
    A stubs/monitor-fd.c
    M system/qtest.c
    M tests/docker/Makefile.include
    A tests/docker/test-rust
    M tests/guest-debug/run-test.py
    M tests/qtest/libqos/virtio-pci-modern.c
    M tests/qtest/libqos/virtio-pci.c
    M tests/qtest/meson.build
    M tests/qtest/migration-test.c
    M tests/qtest/migration/compression-tests.c
    M tests/qtest/migration/cpr-tests.c
    M tests/qtest/migration/file-tests.c
    M tests/qtest/migration/framework.h
    M tests/qtest/migration/misc-tests.c
    M tests/qtest/migration/postcopy-tests.c
    M tests/qtest/migration/precopy-tests.c
    M tests/qtest/migration/tls-tests.c
    M tests/qtest/npcm7xx_timer-test.c
    M tests/tcg/multiarch/Makefile.target
    A tests/tcg/multiarch/gdbstub/late-attach.py
    A tests/tcg/multiarch/late-attach.c
    M util/meson.build
    M util/oslib-posix.c
    M util/qemu-timer.c

  Log Message:
  -----------
  Merge tag 'pull-10.0-testing-and-gdstub-updates-100225-1' of 
https://gitlab.com/stsquad/qemu into staging

testing and gdbstub updates:

  - add a check-rust test to docker builds
  - re-factor the qtest logic to be cleaner
  - fix tests to not clock_step when no timers enabled
  - roll-up log prefix into qtest_send
  - cleaner error reporting when qtest_clock_set fails
  - revert old deadlock fix now tests are updated
  - only run full set of migration tests under HW acceleration
  - support late attachment to user-mode gdbstubs

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmeqBSsACgkQ+9DbCVqe
# KkQS/Af+K0hpdGc1msiuMsqmuESBvhoQniYZFLN1/pwe2KpG8i/+fq2fsCuxJhJ1
# 2TzPH7aj54p9MGCZf2k9JLhO22XldN+oezZMc1crhoWK0AtrWhnLs58I2oEPIsUo
# NmGO6Zfm98ge89o2y8GCvd0QXAtUf+jduDKnW0mfnOnw+w/mky5KzWS7/1091VGW
# 42LSY4KnqgdLSqLyuLBOrgADEjB1ChWS4/bSC+kEYSGrmNQB+n1KeIzzlJBGpOr0
# Z9yzmhMCm7TWdkFNPmnVfYH/7ZUNcpv6PtQSpkku4f6b/gybyvJBknHpM4i+Gpb5
# 87wSjljrCpdNm/9KFRjiJuUWdS/jCg==
# =UF0n
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 10 Feb 2025 08:54:51 EST
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) 
<[email protected]>" [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-10.0-testing-and-gdstub-updates-100225-1' of 
https://gitlab.com/stsquad/qemu:
  tests/tcg: Add late gdbstub attach test
  docs/user: Document the %d placeholder and suspend=n QEMU_GDB features
  gdbstub: Allow late attachment
  osdep: Introduce qemu_kill_thread()
  user: Introduce host_interrupt_signal
  user: Introduce user/signal.h
  gdbstub: Try unlinking the unix socket before binding
  gdbstub: Allow the %d placeholder in the socket path
  tests/qtest/migration: Pick smoke tests
  tests/qtest/migration: Add --full option
  Revert "util/timer: avoid deadlock when shutting down"
  tests/qtest: tighten up the checks on clock_step
  tests/qtest: rename qtest_send_prefix and roll-up into qtest_send
  tests/qtest: simplify qtest_process_inbuf
  tests/qtest: don't step clock at start of npcm7xx periodic IRQ test
  tests/qtest: don't attempt to clock_step while waiting for virtio ISR
  tests/docker: replicate the check-rust-tools-nightly CI job

Signed-off-by: Stefan Hajnoczi <[email protected]>


Compare: https://github.com/qemu/qemu/compare/54e91d1523b4...ffaf7f0376f8

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

Reply via email to