Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: d0f439ddd37e1354daca3234976295189985cb04
      
https://github.com/qemu/qemu/commit/d0f439ddd37e1354daca3234976295189985cb04
  Author: Nir Soffer <[email protected]>
  Date:   2025-03-04 (Tue, 04 Mar 2025)

  Changed paths:
    M tests/qemu-iotests/302

  Log Message:
  -----------
  iotest: Unbreak 302 with python 3.13

This test depends on TarFile.addfile() to add tar member header without
writing the member data, which we write ourself using qemu-nbd. Python
3.13 changed the function in a backward incompatible way[1] to require a
file object for tarinfo with non-zero size, breaking the test:

     -[{"name": "vm.ovf", "offset": 512, "size": 6}, {"name": "disk", "offset": 
1536, "size": 393216}]
     +Traceback (most recent call last):
     +  File "/home/stefanha/qemu/tests/qemu-iotests/302", line 118, in <module>
     +    tar.addfile(disk)
     +    ~~~~~~~~~~~^^^^^^
     +  File "/usr/lib64/python3.13/tarfile.py", line 2262, in addfile
     +    raise ValueError("fileobj not provided for non zero-size regular 
file")
     +ValueError: fileobj not provided for non zero-size regular file

The new behavior makes sense for most users, but breaks our unusual
usage. Fix the test to add the member header directly using public but
undocumented attributes. This is more fragile but the test works again.

This also fixes a bug in the previous code - when calling addfile()
without a fileobject, tar.offset points to the start of the member data
instead of the end.

[1] https://github.com/python/cpython/pull/117988

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


  Commit: e2668ba1ed44ad56f2f1653ff5f53b277d534fac
      
https://github.com/qemu/qemu/commit/e2668ba1ed44ad56f2f1653ff5f53b277d534fac
  Author: Thomas Huth <[email protected]>
  Date:   2025-03-04 (Tue, 04 Mar 2025)

  Changed paths:
    M tests/qemu-iotests/162

  Log Message:
  -----------
  iotests: Stop NBD server in test 162 before starting the next one

Test 162 recently started failing for me for no obvious reasons (I
did not spot any suspicious commits in this area), but looking in
the 162.out.bad log file, there was a suspicious message at the end:

 qemu-nbd: Cannot lock pid file: Resource temporarily unavailable

And indeed, the test starts the NBD server two times, without stopping
the first server before running the second one, so the second one can
indeed fail to lock the PID file. Thus let's make sure to stop the
first server before the test continues with the second one. With this
change, the test works fine for me again.

Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Eric Blake <[email protected]>


  Commit: 57f3962bf17c088c3567d216e3eaa1b3131be5a4
      
https://github.com/qemu/qemu/commit/57f3962bf17c088c3567d216e3eaa1b3131be5a4
  Author: Vladimir Sementsov-Ogievskiy <[email protected]>
  Date:   2025-03-04 (Tue, 04 Mar 2025)

  Changed paths:
    M blockdev-nbd.c
    M qapi/block-export.json

  Log Message:
  -----------
  qapi: merge common parts of NbdServerOptions and nbd-server-start data

Instead of comment
"Keep this type consistent with the nbd-server-start arguments", we
can simply merge these things.

Note that each field of new base already has "since" tag, equal in both
original copies. So "since" information is saved.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Eric Blake <[email protected]>


  Commit: 3e1683485656c095860a8dfbe39ab2d0664b84d9
      
https://github.com/qemu/qemu/commit/3e1683485656c095860a8dfbe39ab2d0664b84d9
  Author: Eric Blake <[email protected]>
  Date:   2025-03-05 (Wed, 05 Mar 2025)

  Changed paths:
    M qemu-nbd.c

  Log Message:
  -----------
  nbd: Defer trace init until after daemonization

At least the simple trace backend works by spawning a helper thread,
and setting up an atexit() handler that coordinates completion with
the helper thread.  But since atexit registrations survive fork() but
helper threads do not, this means that qemu-nbd configured to use the
simple trace will deadlock waiting for a thread that no longer exists
when it has daemonized.

Better is to follow the example of vl.c: don't call any setup
functions that might spawn helper threads until we are in the final
process that will be doing the work worth tracing.

Tested by configuring with --enable-trace-backends=simple, then running
  qemu-nbd --fork --trace=nbd_\*,file=qemu-nbd.trace -f raw -r README.rst
followed by `nbdinfo nbd://localhost`, and observing that the trace
file is now created without hanging.

Reported-by: Thomas Huth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>


  Commit: 2ad638a3d160923ef3dbf87c73944e6e44bdc724
      
https://github.com/qemu/qemu/commit/2ad638a3d160923ef3dbf87c73944e6e44bdc724
  Author: Denis Rastyogin <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  block/qed: fix use-after-free by nullifying timer pointer after free

This error was discovered by fuzzing qemu-img.

In the QED block driver, the need_check_timer timer is freed in
bdrv_qed_detach_aio_context, but the pointer to the timer is not
set to NULL. This can lead to a use-after-free scenario
in bdrv_qed_drain_begin().

The need_check_timer pointer is set to NULL after freeing the timer.
Which helps catch this condition when checking in bdrv_qed_drain_begin().

Closes: https://gitlab.com/qemu-project/qemu/-/issues/2852
Signed-off-by: Denis Rastyogin <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: 4526687bf12624d957088cd40ee02540a5404546
      
https://github.com/qemu/qemu/commit/4526687bf12624d957088cd40ee02540a5404546
  Author: Cédric Le Goater <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/ap.c
    M hw/vfio/ccw.c
    M hw/vfio/pci.c
    M hw/vfio/platform.c

  Log Message:
  -----------
  vfio: Add property documentation

Investigate the git history to uncover when and why the VFIO
properties were introduced and update the models. This is mostly
targeting vfio-pci device, since vfio-platform, vfio-ap and vfio-ccw
devices are simpler.

Sort the properties based on the QEMU version in which they were
introduced.

Cc: Tony Krowiak <[email protected]>
Cc: Eric Farman <[email protected]>
Cc: Eric Auger <[email protected]>
Reviewed-by: Kirti Wankhede <[email protected]>
Reviewed-by: Anthony Krowiak <[email protected]>
Reviewed-by: Eric Farman <[email protected]> # vfio-ccw
Reviewed-by: Alex Williamson <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Link: https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 3f8f6ef701ac6b3691b6003025005a970b2075de
      
https://github.com/qemu/qemu/commit/3f8f6ef701ac6b3691b6003025005a970b2075de
  Author: Cédric Le Goater <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/ccw.c

  Log Message:
  -----------
  vfio/ccw: Replace warn_once_pfch() with warn_report_once()

Use the common helper warn_report_once() instead of implementing its
own.

Cc: Eric Farman <[email protected]>
Reviewed-by: Eric Farman <[email protected]>
Link: https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 9461afd2008b0820fc45a6a7bc675df1b6791e4f
      
https://github.com/qemu/qemu/commit/9461afd2008b0820fc45a6a7bc675df1b6791e4f
  Author: Alex Williamson <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/pci/pci.c
    M hw/pci/trace-events
    M include/hw/pci/pci.h
    M include/hw/pci/pci_device.h

  Log Message:
  -----------
  hw/pci: Basic support for PCI power management

The memory and IO BARs for devices are only accessible in the D0 power
state.  In other power states the PCI spec defines that the device
responds to TLPs and messages with an Unsupported Request response.

To approximate this behavior, consider the BARs as unmapped when the
device is not in the D0 power state.  This makes the BARs inaccessible
and has the additional bonus for vfio-pci that we don't attempt to DMA
map BARs for devices in a non-D0 power state.

To support this, an interface is added for devices to register the PM
capability, which allows central tracking to enforce valid transitions
and unmap BARs in non-D0 states.

NB. We currently have device models (eepro100 and pcie_pci_bridge)
that register a PM capability but do not set wmask to enable writes to
the power state field.  In order to maintain migration compatibility,
this new helper does not manage the wmask to enable guest writes to
initiate a power state change.  The contents and write access of the
PM capability are still managed by the caller.

Cc: Michael S. Tsirkin <[email protected]>
Cc: Marcel Apfelbaum <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 0681ec253141d838210b3c5e6bc0d2d71f2e111e
      
https://github.com/qemu/qemu/commit/0681ec253141d838210b3c5e6bc0d2d71f2e111e
  Author: Alex Williamson <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/net/e1000e.c
    M hw/net/eepro100.c
    M hw/net/igb.c
    M hw/nvme/ctrl.c
    M hw/pci-bridge/pcie_pci_bridge.c
    M hw/vfio/pci.c
    M hw/virtio/virtio-pci.c

  Log Message:
  -----------
  pci: Use PCI PM capability initializer

Switch callers directly initializing the PCI PM capability with
pci_add_capability() to use pci_pm_init().

Cc: Dmitry Fleytman <[email protected]>
Cc: Akihiko Odaki <[email protected]>
Cc: Jason Wang <[email protected]>
Cc: Stefan Weil <[email protected]>
Cc: Sriram Yagnaraman <[email protected]>
Cc: Keith Busch <[email protected]>
Cc: Klaus Jensen <[email protected]>
Cc: Jesper Devantier <[email protected]>
Cc: Michael S. Tsirkin <[email protected]>
Cc: Marcel Apfelbaum <[email protected]>
Cc: Cédric Le Goater <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 05c6a8eff6298675080aa2692ee05a310b3483b4
      
https://github.com/qemu/qemu/commit/05c6a8eff6298675080aa2692ee05a310b3483b4
  Author: Alex Williamson <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/pci.c
    M hw/vfio/pci.h

  Log Message:
  -----------
  vfio/pci: Delete local pm_cap

This is now redundant to PCIDevice.pm_cap.

Cc: Cédric Le Goater <[email protected]>
Reviewed-by: Zhenzhong Duan <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 8b8d08cf293b930d0f55b2d5385d8dd27e0c6b41
      
https://github.com/qemu/qemu/commit/8b8d08cf293b930d0f55b2d5385d8dd27e0c6b41
  Author: Alex Williamson <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/pci-bridge/pcie_pci_bridge.c
    M hw/virtio/virtio-pci.c
    M include/hw/pci/pcie.h

  Log Message:
  -----------
  pcie, virtio: Remove redundant pm_cap

The pm_cap on the PCIExpressDevice object can be distilled down
to the new instance on the PCIDevice object.

Cc: Michael S. Tsirkin <[email protected]>
Cc: Marcel Apfelbaum <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Reviewed-by: Zhenzhong Duan <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 518a69a598916749338de3852d41d961d4503115
      
https://github.com/qemu/qemu/commit/518a69a598916749338de3852d41d961d4503115
  Author: Alex Williamson <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/pci.c

  Log Message:
  -----------
  hw/vfio/pci: Re-order pre-reset

We want the device in the D0 power state going into reset, but the
config write can enable the BARs in the address space, which are
then removed from the address space once we clear the memory enable
bit in the command register.  Re-order to clear the command bit
first, so the power state change doesn't enable the BARs.

Cc: Cédric Le Goater <[email protected]>
Reviewed-by: Zhenzhong Duan <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 515d80d66527b105493fad2df313693a72bf7560
      
https://github.com/qemu/qemu/commit/515d80d66527b105493fad2df313693a72bf7560
  Author: Tomita Moeko <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Add myself as vfio-igd maintainer

As suggested by Cédric, I'm glad to be a maintainer of vfio-igd.

Signed-off-by: Tomita Moeko <[email protected]>
Reviewed-by: Alex Williamson <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 8d8a30d1ac7cc9b35833106d749e1b3e8675bc53
      
https://github.com/qemu/qemu/commit/8d8a30d1ac7cc9b35833106d749e1b3e8675bc53
  Author: Eric Auger <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M docs/about/deprecated.rst
    M hw/vfio/amd-xgbe.c
    M hw/vfio/calxeda-xgmac.c
    M hw/vfio/platform.c

  Log Message:
  -----------
  vfio-platform: Deprecate all forms of vfio-platform devices

As an outcome of KVM forum 2024 "vfio-platform: live and let die?"
talk, let's deprecate vfio-platform devices.

Signed-off-by: Eric Auger <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/[email protected]
[ clg: Fixed spelling in vfio-amd-xgbe section ]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: d3237d0d85e9fba79b37c776b0ddda611c338f7d
      
https://github.com/qemu/qemu/commit/d3237d0d85e9fba79b37c776b0ddda611c338f7d
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/migration/register.h

  Log Message:
  -----------
  migration: Clarify that {load, save}_cleanup handlers can run without setup

It's possible for {load,save}_cleanup SaveVMHandlers to get called without
the corresponding {load,save}_setup handler being called first.

One such example is if {load,save}_setup handler of a proceeding device
returns error.
In this case the migration core cleanup code will call all corresponding
cleanup handlers, even for these devices which haven't had its setup
handler called.

Since this behavior can generate some surprises let's clearly document it
in these SaveVMHandlers description.

Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/991636623fb780350f493b5f045cb17e13ce4c0f.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 03c6468a136b3d79e7c6bb269ac7924fa8fef634
      
https://github.com/qemu/qemu/commit/03c6468a136b3d79e7c6bb269ac7924fa8fef634
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/block/thread-pool.h
    M tests/unit/test-thread-pool.c
    M util/thread-pool.c
    M util/trace-events

  Log Message:
  -----------
  thread-pool: Remove thread_pool_submit() function

This function name conflicts with one used by a future generic thread pool
function and it was only used by one test anyway.

Update the trace event name in thread_pool_submit_aio() accordingly.

Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/6830f07777f939edaf0a2d301c39adcaaf3817f0.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: dc67daeed579ea52f045f78b88d9e5e712038ccf
      
https://github.com/qemu/qemu/commit/dc67daeed579ea52f045f78b88d9e5e712038ccf
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/block/aio.h
    M include/block/thread-pool.h
    M util/async.c
    M util/thread-pool.c
    M util/trace-events

  Log Message:
  -----------
  thread-pool: Rename AIO pool functions to *_aio() and data types to *Aio

These names conflict with ones used by future generic thread pool
equivalents.
Generic names should belong to the generic pool type, not specific (AIO)
type.

Acked-by: Fabiano Rosas <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/70f9e0fb4b01042258a1a57996c64d19779dc7f0.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: b5aa74968b27f37523c180e9c42ca007dbc7758f
      
https://github.com/qemu/qemu/commit/b5aa74968b27f37523c180e9c42ca007dbc7758f
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/block/thread-pool.h
    M util/thread-pool.c

  Log Message:
  -----------
  thread-pool: Implement generic (non-AIO) pool support

Migration code wants to manage device data sending threads in one place.

QEMU has an existing thread pool implementation, however it is limited
to queuing AIO operations only and essentially has a 1:1 mapping between
the current AioContext and the AIO ThreadPool in use.

Implement generic (non-AIO) ThreadPool by essentially wrapping Glib's
GThreadPool.

This brings a few new operations on a pool:
* thread_pool_wait() operation waits until all the submitted work requests
have finished.

* thread_pool_set_max_threads() explicitly sets the maximum thread count
in the pool.

* thread_pool_adjust_max_threads_to_work() adjusts the maximum thread count
in the pool to equal the number of still waiting in queue or unfinished work.

Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/b1efaebdbea7cb7068b8fb74148777012383e12b.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 4e55cb3cdeb099cb65f75f5d3b061e3e1319cf3b
      
https://github.com/qemu/qemu/commit/4e55cb3cdeb099cb65f75f5d3b061e3e1319cf3b
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/core/machine.c
    M include/migration/client-options.h
    M include/migration/register.h
    M migration/colo.c
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M migration/migration.h
    M migration/options.c
    M migration/savevm.c
    M migration/savevm.h
    M migration/trace-events
    M scripts/analyze-migration.py

  Log Message:
  -----------
  migration: Add MIG_CMD_SWITCHOVER_START and its load handler

This QEMU_VM_COMMAND sub-command and its switchover_start SaveVMHandler is
used to mark the switchover point in main migration stream.

It can be used to inform the destination that all pre-switchover main
migration stream data has been sent/received so it can start to process
post-switchover data that it might have received via other migration
channels like the multifd ones.

Add also the relevant MigrationState bit stream compatibility property and
its hw_compat entry.

Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Zhang Chen <[email protected]> # for the COLO part
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/311be6da85fc7e49a7598684d80aa631778dcbce.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: a30363db082a6947794be6e085ad9437798ec211
      
https://github.com/qemu/qemu/commit/a30363db082a6947794be6e085ad9437798ec211
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

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

  Log Message:
  -----------
  migration: Add qemu_loadvm_load_state_buffer() and its handler

qemu_loadvm_load_state_buffer() and its load_state_buffer
SaveVMHandler allow providing device state buffer to explicitly
specified device via its idstr and instance id.

Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/71ca753286b87831ced4afd422e2e2bed071af25.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 6a76eb4872f632974307bf12cb7f2416a77ad4a8
      
https://github.com/qemu/qemu/commit/6a76eb4872f632974307bf12cb7f2416a77ad4a8
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

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

  Log Message:
  -----------
  migration: Always take BQL for migration_incoming_state_destroy()

All callers to migration_incoming_state_destroy() other than
postcopy_ram_listen_thread() do this call with BQL held.

Since migration_incoming_state_destroy() ultimately calls "load_cleanup"
SaveVMHandlers and it will soon call BQL-sensitive code it makes sense
to always call that function under BQL rather than to have it deal with
both cases (with BQL and without BQL).
Add the necessary bql_lock() and bql_unlock() to
postcopy_ram_listen_thread().

qemu_loadvm_state_main() in postcopy_ram_listen_thread() could call
"load_state" SaveVMHandlers that are expecting BQL to be held.

In principle, the only devices that should be arriving on migration
channel serviced by postcopy_ram_listen_thread() are those that are
postcopiable and whose load handlers are safe to be called without BQL
being held.

But nothing currently prevents the source from sending data for "unsafe"
devices which would cause trouble there.
Add a TODO comment there so it's clear that it would be good to improve
handling of such (erroneous) case in the future.

Acked-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/21bb5ca337b1d5a802e697f553f37faf296b5ff4.1741193259.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 18eb55546a54e443d94a4c49286348176ad4b00a
      
https://github.com/qemu/qemu/commit/18eb55546a54e443d94a4c49286348176ad4b00a
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/qapi/error.h

  Log Message:
  -----------
  error: define g_autoptr() cleanup function for the Error type

Automatic memory management helps avoid memory safety issues.

Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/a5843c5fa64d7e5239a4316092ec0ef0d10c2320.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: b1937fd1eb8360d0dc0abb0a8da221d8edce3733
      
https://github.com/qemu/qemu/commit/b1937fd1eb8360d0dc0abb0a8da221d8edce3733
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/migration/misc.h
    M include/qemu/typedefs.h
    M migration/migration.c
    M migration/migration.h
    M migration/savevm.c
    M migration/savevm.h

  Log Message:
  -----------
  migration: Add thread pool of optional load threads

Some drivers might want to make use of auxiliary helper threads during VM
state loading, for example to make sure that their blocking (sync) I/O
operations don't block the rest of the migration process.

Add a migration core managed thread pool to facilitate this use case.

The migration core will wait for these threads to finish before
(re)starting the VM at destination.

Reviewed-by: Fabiano Rosas <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/b09fd70369b6159c75847e69f235cb908b02570c.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 8050c435b70b6805f05441a8a7cc6a3d70c3ee71
      
https://github.com/qemu/qemu/commit/8050c435b70b6805f05441a8a7cc6a3d70c3ee71
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

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

  Log Message:
  -----------
  migration/multifd: Split packet into header and RAM data

Read packet header first so in the future we will be able to
differentiate between a RAM multifd packet and a device state multifd
packet.

Since these two are of different size we can't read the packet body until
we know which packet type it is.

Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/832ad055fe447561ac1ad565d61658660cb3f63f.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: f588f3c46ae278661cdad5f1198a455e3ec9f910
      
https://github.com/qemu/qemu/commit/f588f3c46ae278661cdad5f1198a455e3ec9f910
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

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

  Log Message:
  -----------
  migration/multifd: Device state transfer support - receive side

Add a basic support for receiving device state via multifd channels -
channels that are shared with RAM transfers.

Depending whether MULTIFD_FLAG_DEVICE_STATE flag is present or not in the
packet header either device state (MultiFDPacketDeviceState_t) or RAM
data (existing MultiFDPacket_t) is read.

The received device state data is provided to
qemu_loadvm_load_state_buffer() function for processing in the
device's load_state_buffer handler.

Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/9b86f806c134e7815ecce0eee84f0e0e34aa0146.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: d19cc4dca0b21af95fee36a2ddad34eb4bd6b67f
      
https://github.com/qemu/qemu/commit/d19cc4dca0b21af95fee36a2ddad34eb4bd6b67f
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M migration/multifd.c

  Log Message:
  -----------
  migration/multifd: Make multifd_send() thread safe

multifd_send() function is currently not thread safe, make it thread safe
by holding a lock during its execution.

This way it will be possible to safely call it concurrently from multiple
threads.

Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/dd0f3bcc02ca96a7d523ca58ea69e495a33b453b.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 7ecfab1ddd3e6678c6a0b12d348d82cfaaa406ff
      
https://github.com/qemu/qemu/commit/7ecfab1ddd3e6678c6a0b12d348d82cfaaa406ff
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

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

  Log Message:
  -----------
  migration/multifd: Add an explicit MultiFDSendData destructor

This way if there are fields there that needs explicit disposal (like, for
example, some attached buffers) they will be handled appropriately.

Add a related assert to multifd_set_payload_type() in order to make sure
that this function is only used to fill a previously empty MultiFDSendData
with some payload, not the other way around.

Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/6755205f2b95abbed251f87061feee1c0e410836.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 0525b91a0b993f95d29b2ea84155e7e4366c120e
      
https://github.com/qemu/qemu/commit/0525b91a0b993f95d29b2ea84155e7e4366c120e
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/migration/misc.h
    M migration/meson.build
    A migration/multifd-device-state.c
    M migration/multifd-nocomp.c
    M migration/multifd.c
    M migration/multifd.h

  Log Message:
  -----------
  migration/multifd: Device state transfer support - send side

A new function multifd_queue_device_state() is provided for device to queue
its state for transmission via a multifd channel.

Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/ebd55768d3e5fecb5eb3f197bad9c0c07e5bc084.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 99fab22350e4eed1d8a238ed97c77b1a5ee77dd4
      
https://github.com/qemu/qemu/commit/99fab22350e4eed1d8a238ed97c77b1a5ee77dd4
  Author: Peter Xu <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M migration/multifd-device-state.c
    M migration/multifd-nocomp.c
    M migration/multifd.c
    M migration/multifd.h

  Log Message:
  -----------
  migration/multifd: Make MultiFDSendData a struct

The newly introduced device state buffer can be used for either storing
VFIO's read() raw data, but already also possible to store generic device
states.  After noticing that device states may not easily provide a max
buffer size (also the fact that RAM MultiFDPages_t after all also want to
have flexibility on managing offset[] array), it may not be a good idea to
stick with union on MultiFDSendData.. as it won't play well with such
flexibility.

Switch MultiFDSendData to a struct.

It won't consume a lot more space in reality, after all the real buffers
were already dynamically allocated, so it's so far only about the two
structs (pages, device_state) that will be duplicated, but they're small.

With this, we can remove the pretty hard to understand alloc size logic.
Because now we can allocate offset[] together with the SendData, and
properly free it when the SendData is freed.

[MSS: Make sure to clear possible device state payload before freeing
MultiFDSendData, remove placeholders for other patches not included]

Signed-off-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Acked-by: Fabiano Rosas <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/7b02baba8e6ddb23ef7c349d312b9b631db09d7e.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: a1131aa94256d1007b4267ff9e79c3b4ada6e2b9
      
https://github.com/qemu/qemu/commit/a1131aa94256d1007b4267ff9e79c3b4ada6e2b9
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/migration/misc.h
    M migration/multifd-device-state.c

  Log Message:
  -----------
  migration/multifd: Add multifd_device_state_supported()

Since device state transfer via multifd channels requires multifd
channels with packets and is currently not compatible with multifd
compression add an appropriate query function so device can learn
whether it can actually make use of it.

Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/1ff0d98b85f470e5a33687406e877583b8fab74e.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 8305921a91a940023fe971c74eb1e06f2725ebab
      
https://github.com/qemu/qemu/commit/8305921a91a940023fe971c74eb1e06f2725ebab
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/migration/misc.h
    M include/migration/register.h
    M include/qemu/typedefs.h
    M migration/multifd-device-state.c
    M migration/savevm.c

  Log Message:
  -----------
  migration: Add save_live_complete_precopy_thread handler

This SaveVMHandler helps device provide its own asynchronous transmission
of the remaining data at the end of a precopy phase via multifd channels,
in parallel with the transfer done by save_live_complete_precopy handlers.

These threads are launched only when multifd device state transfer is
supported.

Management of these threads in done in the multifd migration code,
wrapping them in the generic thread pool.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/eac74a4ca7edd8968bbf72aa07b9041c76364a16.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 5963c219a0e60d3f20c09ba2d34671d5e9623e70
      
https://github.com/qemu/qemu/commit/5963c219a0e60d3f20c09ba2d34671d5e9623e70
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration.c
    M hw/vfio/trace-events

  Log Message:
  -----------
  vfio/migration: Add load_device_config_state_start trace event

And rename existing load_device_config_state trace event to
load_device_config_state_end for consistency since it is triggered at the
end of loading of the VFIO device config state.

This way both the start and end points of particular device config
loading operation (a long, BQL-serialized operation) are known.

Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/1b6c5a2097e64c272eb7e53f9e4cca4b79581b38.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: bd846c5d583a63eaaf836403515c4bf3748f3bb3
      
https://github.com/qemu/qemu/commit/bd846c5d583a63eaaf836403515c4bf3748f3bb3
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration.c

  Log Message:
  -----------
  vfio/migration: Convert bytes_transferred counter to atomic

So it can be safety accessed from multiple threads.

This variable type needs to be changed to unsigned long since
32-bit host platforms lack the necessary addition atomics on 64-bit
variables.

Using 32-bit counters on 32-bit host platforms should not be a problem
in practice since they can't realistically address more memory anyway.

Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/dc391771d2d9ad0f311994f0cb9e666da564aeaf.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 47c7133629cc35b417b8f32512a4715ee53bfae3
      
https://github.com/qemu/qemu/commit/47c7133629cc35b417b8f32512a4715ee53bfae3
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration.c
    M include/hw/vfio/vfio-common.h

  Log Message:
  -----------
  vfio/migration: Add vfio_add_bytes_transferred()

This way bytes_transferred can also be incremented in other translation
units than migration.c.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/d1fbc27ac2417b49892f354ba20f6c6b3f7209f8.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: eb6608619a16ab949f3cf1138638d17afa45fe4d
      
https://github.com/qemu/qemu/commit/eb6608619a16ab949f3cf1138638d17afa45fe4d
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration.c
    M include/hw/vfio/vfio-common.h

  Log Message:
  -----------
  vfio/migration: Move migration channel flags to vfio-common.h header file

This way they can also be referenced in other translation
units than migration.c.

Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/26a940f6b22c1b685818251b7a3ddbbca601b1d6.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 961165122bc8a4cf58eaaab75ff09ba8fc950a88
      
https://github.com/qemu/qemu/commit/961165122bc8a4cf58eaaab75ff09ba8fc950a88
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/meson.build
    A hw/vfio/migration-multifd.c
    A hw/vfio/migration-multifd.h
    M hw/vfio/migration.c

  Log Message:
  -----------
  vfio/migration: Multifd device state transfer support - basic types

Add basic types and flags used by VFIO multifd device state transfer
support.

Since we'll be introducing a lot of multifd transfer specific code,
add a new file migration-multifd.c to home it, wired into main VFIO
migration code (migration.c) via migration-multifd.h header file.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/4eedd529e6617f80f3d6a66d7268a0db2bc173fa.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 2efa35d34edfeca0d151de8283e52006e2c6cbd4
      
https://github.com/qemu/qemu/commit/2efa35d34edfeca0d151de8283e52006e2c6cbd4
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration-multifd.c
    M hw/vfio/migration-multifd.h

  Log Message:
  -----------
  vfio/migration: Multifd device state transfer - add support checking function

Add vfio_multifd_transfer_supported() function that tells whether the
multifd device state transfer is supported.

Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/8ce50256f341b3d47342bb217cb5fbb2deb14639.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: ff2fd1f7e23f528f03f41b5475afb173718fea07
      
https://github.com/qemu/qemu/commit/ff2fd1f7e23f528f03f41b5475afb173718fea07
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration-multifd.c
    M hw/vfio/migration-multifd.h
    M include/hw/vfio/vfio-common.h

  Log Message:
  -----------
  vfio/migration: Multifd setup/cleanup functions and associated VFIOMultifd

Add multifd setup/cleanup functions and an associated VFIOMultifd data
structure that will contain most of the receive-side data together
with its init/cleanup methods.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/c0520523053b1087787152ddf2163257d3030be0.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 6bcffb1cad5b2b45152c0faa1133c96d3f129914
      
https://github.com/qemu/qemu/commit/6bcffb1cad5b2b45152c0faa1133c96d3f129914
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration.c

  Log Message:
  -----------
  vfio/migration: Setup and cleanup multifd transfer in these general methods

Wire VFIO multifd transfer specific setup and cleanup functions into
general VFIO load/save setup and cleanup methods.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/b1f864a65fafd4fdab1f89230df52e46ae41f2ac.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 3228d311ab1882f75b04d080d33a71fc7a0bcac5
      
https://github.com/qemu/qemu/commit/3228d311ab1882f75b04d080d33a71fc7a0bcac5
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M docs/devel/migration/vfio.rst
    M hw/vfio/migration-multifd.c
    M hw/vfio/migration-multifd.h
    M hw/vfio/migration.c
    M hw/vfio/trace-events

  Log Message:
  -----------
  vfio/migration: Multifd device state transfer support - received buffers 
queuing

The multifd received data needs to be reassembled since device state
packets sent via different multifd channels can arrive out-of-order.

Therefore, each VFIO device state packet carries a header indicating its
position in the stream.
The raw device state data is saved into a VFIOStateBuffer for later
in-order loading into the device.

The last such VFIO device state packet should have
VFIO_DEVICE_STATE_CONFIG_STATE flag set and carry the device config state.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/e3bff515a8d61c582b94b409eb12a45b1a143a69.1741124640.git.maciej.szmigi...@oracle.com
[ clg: - Reordered savevm_vfio_handlers
       - Added load_state_buffer documentation ]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: c59748c1ff924963a67af9efd7e1a1ee6f82d6d6
      
https://github.com/qemu/qemu/commit/c59748c1ff924963a67af9efd7e1a1ee6f82d6d6
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M docs/devel/migration/vfio.rst
    M hw/vfio/migration-multifd.c
    M hw/vfio/migration-multifd.h
    M hw/vfio/migration.c
    M hw/vfio/trace-events

  Log Message:
  -----------
  vfio/migration: Multifd device state transfer support - load thread

Add a thread which loads the VFIO device state buffers that were received
via multifd.

Each VFIO device that has multifd device state transfer enabled has one
such thread, which is created using migration core API
qemu_loadvm_start_load_thread().

Since it's important to finish loading device state transferred via the
main migration channel (via save_live_iterate SaveVMHandler) before
starting loading the data asynchronously transferred via multifd the thread
doing the actual loading of the multifd transferred data is only started
from switchover_start SaveVMHandler.

switchover_start handler is called when MIG_CMD_SWITCHOVER_START
sub-command of QEMU_VM_COMMAND is received via the main migration channel.

This sub-command is only sent after all save_live_iterate data have already
been posted so it is safe to commence loading of the multifd-transferred
device state upon receiving it - loading of save_live_iterate data happens
synchronously in the main migration thread (much like the processing of
MIG_CMD_SWITCHOVER_START) so by the time MIG_CMD_SWITCHOVER_START is
processed all the proceeding data must have already been loaded.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/9abe612d775aaf42e31646796acd2363c723a57a.1741124640.git.maciej.szmigi...@oracle.com
[ clg: - Reordered savevm_vfio_handlers
       - Added switchover_start documentation ]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: fda70ed83d54abad6bf2d437a7c05204b0fad228
      
https://github.com/qemu/qemu/commit/fda70ed83d54abad6bf2d437a7c05204b0fad228
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M migration/qemu-file.h

  Log Message:
  -----------
  migration/qemu-file: Define g_autoptr() cleanup function for QEMUFile

Automatic memory management helps avoid memory safety issues.

Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/2fd01d773a783d572dcf538a064a98cc09e75c12.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: b659c07c534490369ca0954f0116b05c4a063065
      
https://github.com/qemu/qemu/commit/b659c07c534490369ca0954f0116b05c4a063065
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration-multifd.c
    M hw/vfio/migration.c
    M include/hw/vfio/vfio-common.h

  Log Message:
  -----------
  vfio/migration: Multifd device state transfer support - config loading support

Load device config received via multifd using the existing machinery
behind vfio_load_device_config_state().

Also, make sure to process the relevant main migration channel flags.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/5dbd3f3703ec1097da2cf82a7262233452146fee.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 6d644baef20303fa4b2b342f556e26c2262b439f
      
https://github.com/qemu/qemu/commit/6d644baef20303fa4b2b342f556e26c2262b439f
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M docs/devel/migration/vfio.rst
    M hw/vfio/migration-multifd.c
    M hw/vfio/migration-multifd.h
    M hw/vfio/migration.c
    M hw/vfio/trace-events
    M include/hw/vfio/vfio-common.h

  Log Message:
  -----------
  vfio/migration: Multifd device state transfer support - send side

Implement the multifd device state transfer via additional per-device
thread inside save_live_complete_precopy_thread handler.

Switch between doing the data transfer in the new handler and doing it
in the old save_state handler depending if VFIO multifd transfer is enabled
or not.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/4d727e2e0435e0022d50004e474077632830e08d.1741124640.git.maciej.szmigi...@oracle.com
[ clg: - Reordered savevm_vfio_handlers
       - Updated save_live_complete_precopy* documentation ]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 623af41dd331d1a57a41bc3374e3d134adb33f4c
      
https://github.com/qemu/qemu/commit/623af41dd331d1a57a41bc3374e3d134adb33f4c
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M docs/devel/migration/vfio.rst
    M hw/vfio/migration-multifd.c
    M hw/vfio/pci.c
    M include/hw/vfio/vfio-common.h

  Log Message:
  -----------
  vfio/migration: Add x-migration-multifd-transfer VFIO property

This property allows configuring whether to transfer the particular device
state via multifd channels when live migrating that device.

It defaults to AUTO, which means that VFIO device state transfer via
multifd channels is attempted in configurations that otherwise support it.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/d6dbb326e3d53c7104d62c96c9e3dd64e1c7b940.1741124640.git.maciej.szmigi...@oracle.com
[ clg: Added documentation ]
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 4c765ceaace4e7828e2790d8f4829f69989888de
      
https://github.com/qemu/qemu/commit/4c765ceaace4e7828e2790d8f4829f69989888de
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/vfio/migration-multifd.c
    M hw/vfio/pci.c

  Log Message:
  -----------
  vfio/migration: Make x-migration-multifd-transfer VFIO property mutable

DEFINE_PROP_ON_OFF_AUTO() property isn't runtime-mutable so using it
would mean that the source VM would need to decide upfront at startup
time whether it wants to do a multifd device state transfer at some
point.

Source VM can run for a long time before being migrated so it is
desirable to have a fallback mechanism to the old way of transferring
VFIO device state if it turns to be necessary.

This brings this property to the same mutability level as ordinary
migration parameters, which too can be adjusted at the run time.

Signed-off-by: Maciej S. Szmigiero <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/f2f2d66bda477da3e6cb8c0311006cff36e8651d.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 59a67e70950bcc2002d3a8d22a17743e0f70da96
      
https://github.com/qemu/qemu/commit/59a67e70950bcc2002d3a8d22a17743e0f70da96
  Author: Maciej S. Szmigiero <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/core/machine.c

  Log Message:
  -----------
  hw/core/machine: Add compat for x-migration-multifd-transfer VFIO property

Add a hw_compat entry for recently added x-migration-multifd-transfer VFIO
property.

Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Maciej S. Szmigiero <[email protected]>
Link: 
https://lore.kernel.org/qemu-devel/92c354f0457c152d1f267cc258c6967fff551cb1.1741124640.git.maciej.szmigi...@oracle.com
Signed-off-by: Cédric Le Goater <[email protected]>


  Commit: 87c8b4fc3c1c89ec52540bfb74f9b0518f247323
      
https://github.com/qemu/qemu/commit/87c8b4fc3c1c89ec52540bfb74f9b0518f247323
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M docs/about/build-platforms.rst

  Log Message:
  -----------
  docs/about/build-platforms: Correct minimum supported Python version

Fixes: ca056f4499c2 (Python: Drop support for Python 3.7)
Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>


  Commit: 5fbc8126acaf07a0294f8f94f4c244c3c5b62d5d
      
https://github.com/qemu/qemu/commit/5fbc8126acaf07a0294f8f94f4c244c3c5b62d5d
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M scripts/qapi/parser.py
    M scripts/qapi/schema.py
    M tests/qapi-schema/test-qapi.py

  Log Message:
  -----------
  qapi: Eliminate OrderedDict

We use OrderedDict to ensure dictionary order is insertion order.
Plain dict does that since Python 3.6, but it wasn't guaranteed until
3.7.  Since we have 3.7 now, replace OrderedDict by dict.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>


  Commit: e6985cc4407ddb14a27a282efc0b4c8d34534317
      
https://github.com/qemu/qemu/commit/e6985cc4407ddb14a27a282efc0b4c8d34534317
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M scripts/qapi/introspect.py

  Log Message:
  -----------
  qapi/introspect: Use @dataclass to simplify

A TODO comment in class Annotated reminds us to simplify it once we
can use @dataclass, new in Python 3.7.  We have that now, so do it.

There's a similar comment in scripts/qapi/source.py, but I can't
figure out how to use @dataclass there.  Left for another day.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>


  Commit: 744bce1bf7fecf8b8a8de484328515800f9c9639
      
https://github.com/qemu/qemu/commit/744bce1bf7fecf8b8a8de484328515800f9c9639
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/core/qdev-properties.c
    M include/hw/qdev-properties.h

  Log Message:
  -----------
  qdev: Delete unused qdev_prop_enum

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>


  Commit: e09daf1dff8f5117b3e482f1907e762470b5675c
      
https://github.com/qemu/qemu/commit/e09daf1dff8f5117b3e482f1907e762470b5675c
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/core/qdev-properties-system.c

  Log Message:
  -----------
  qdev: Change qdev_prop_pci_devfn member @name from "int32" to "str"

Properties using qdev_prop_pci_devfn initially accepted a string of
the form "DEV.FN" or "DEV" where DEV and FN are in hexadecimal.
Member @name was "pci-devfn" initially.

Commit b403298adb5 (qdev: make the non-legacy pci address property
accept an integer) changed them to additionally accept integers: bits
3..7 are DEV, and bits 0..2 are FN.  This is inaccessible externally
in device_add so far.

The commit also changed @name to "int32", and set member @legacy-name
to "pci-devfn".  Together, this kept QMP command
device-list-properties unaffected: it used @name only when
@legacy_name was null.

Commit 07d09c58dbb (qmp: Print descriptions of object properties)
quietly dumbed that down to use @name always, and the next commit
18b91a3e082q (qdev: Drop legacy_name from qdev properties) dropped
member @legacy_name.  This changed the value of @type reported by QMP
command device-list-properties from "pci-devfn" to "int32".

But "int32" is misleading: device_add actually wants QAPI type "str".
So change @name to that.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>


  Commit: c98dac169e645e7efe0b912a9acb3c5ec88b3bdf
      
https://github.com/qemu/qemu/commit/c98dac169e645e7efe0b912a9acb3c5ec88b3bdf
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M backends/tpm/tpm_util.c
    M hw/block/xen-block.c
    M hw/core/qdev-properties-system.c
    M hw/core/qdev-properties.c
    M hw/display/apple-gfx.m
    M hw/misc/xlnx-versal-trng.c
    M hw/nvme/nguid.c
    M hw/nvram/xlnx-bbram.c
    M hw/nvram/xlnx-efuse.c
    M hw/pci/pci.c
    M hw/s390x/ccw-device.c
    M hw/s390x/css.c
    M hw/s390x/s390-pci-bus.c
    M hw/vfio/pci-quirks.c
    M include/hw/qdev-properties.h
    M target/riscv/cpu.c
    M target/sparc/cpu.c

  Log Message:
  -----------
  qdev: Rename PropertyInfo member @name to @type

PropertyInfo member @name becomes ObjectProperty member @type, while
Property member @name becomes ObjectProperty member @name.  Rename the
former.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
[One missed instance of @type fixed]


  Commit: ff30d3b1ac7777dd6048fb7932fedce51f3ea89d
      
https://github.com/qemu/qemu/commit/ff30d3b1ac7777dd6048fb7932fedce51f3ea89d
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/core/qdev-properties-system.c
    M hw/misc/xlnx-versal-trng.c
    M hw/s390x/ccw-device.c
    M hw/s390x/s390-pci-bus.c
    M hw/vfio/pci-quirks.c
    M target/riscv/cpu.c

  Log Message:
  -----------
  qdev: Change values of PropertyInfo member @type to be QAPI types

PropertyInfo member @type is externally visible via QMP
device-list-properties and qom-list-properies.

Its meaning is not documented at its definition.

It gets passed as @type argument to object_property_add() and
object_class_property_add().  This argument's documentation isn't of
much help, either:

 * @type: the type name of the property.  This namespace is pretty loosely
 *   defined.  Sub namespaces are constructed by using a prefix and then
 *   to angle brackets.  For instance, the type 'virtio-net-pci' in the
 *   'link' namespace would be 'link<virtio-net-pci>'.

The two QMP commands document it as

 # @type: the type of the property.  This will typically come in one of
 #     four forms:
 #
 #     1) A primitive type such as 'u8', 'u16', 'bool', 'str', or
 #        'double'.  These types are mapped to the appropriate JSON
 #        type.
 #
 #     2) A child type in the form 'child<subtype>' where subtype is a
 #        qdev device type name.  Child properties create the
 #        composition tree.
 #
 #     3) A link type in the form 'link<subtype>' where subtype is a
 #        qdev device type name.  Link properties form the device model
 #        graph.

"Typically come in one of four forms" followed by three items inspires
the level of trust that is appropriate here.

Clean up a bunch of funnies:

* qdev_prop_fdc_drive_type.type is "FdcDriveType".  Its .enum_table
  refers to QAPI type "FloppyDriveType".  So use that.

* qdev_prop_reserved_region is "reserved_region".  Its only user is an
  array property called "reserved-regions".  Its .set() visits str.
  So change @type to "str".

* trng_prop_fault_event_set.type is "uint32:bits".  Its .set() visits
  uint32, so change @type to "uint32".  If we believe mentioning it's
  actually bits is useful, the proper place would be .description.

* ccw_loadparm.type is "ccw_loadparm".  It's users are properties
  called "loadparm".  Its .set() visits str.  So change @type to
  "str".

* qdev_prop_nv_gpudirect_clique.type is "uint4".  Its set() visits
  uint8, so change @type to "uint8".  If we believe mentioning the
  range is useful, the proper place would be .description.

* s390_pci_fid_propinfo.type is "zpci_fid".  Its .set() visits uint32.
  So change type to that, and move the "zpci_fid" to .description.
  This is admittedly a lousy description, but it's still an
  improvement; for instance, output of -device zpci,help changes from

      fid=<zpci_fid>

  to

      fid=<uint32>           - zpci_fid

* Similarly for a raft of PropertyInfo in target/riscv/cpu.c.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
[Commit message typo fixed]


  Commit: 0b9d12b03cc178c479f94413d580e8b7b37f44f9
      
https://github.com/qemu/qemu/commit/0b9d12b03cc178c479f94413d580e8b7b37f44f9
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/core/qdev-properties-system.c

  Log Message:
  -----------
  qdev: Improve PropertyInfo member @description for enum properties

Consistently use format "DESCRIPTION (VALUE/VALUE...)".

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>


  Commit: 45e5b49360224019eddd307e34ea5625e4e730bf
      
https://github.com/qemu/qemu/commit/45e5b49360224019eddd307e34ea5625e4e730bf
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/block/xen-block.c
    M hw/core/qdev-properties-system.c
    M hw/core/qdev-properties.c
    M hw/s390x/ccw-device.c
    M target/sparc/cpu.c

  Log Message:
  -----------
  qdev: Improve a few more PropertyInfo @description members

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>


  Commit: 71ba2613ad470b6397868ae7333cd255e467be68
      
https://github.com/qemu/qemu/commit/71ba2613ad470b6397868ae7333cd255e467be68
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M docs/devel/qapi-code-gen.rst

  Log Message:
  -----------
  docs/devel/qapi-code-gen: Discourage use of 'prefix'

QAPI's 'prefix' feature can make the connection between enumeration
type and its constants less than obvious.  It's best used with
restraint.  Commit 7bbadc60b5..64f5e9db77 eliminated most uses.
Discourage new ones.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>


  Commit: 82c4d8a3b4e390dbb2601e11e07d291e760def7f
      
https://github.com/qemu/qemu/commit/82c4d8a3b4e390dbb2601e11e07d291e760def7f
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M block/create.c
    M bsd-user/qemu.h
    M include/block/block_int-common.h
    M include/block/graph-lock.h
    M include/exec/page-protection.h
    R include/qemu/clang-tsa.h
    M include/qemu/compiler.h
    M include/qemu/thread.h
    M tests/unit/test-bdrv-drain.c
    M tests/unit/test-block-iothread.c
    M util/qemu-thread-posix.c

  Log Message:
  -----------
  qemu/compiler: Absorb 'clang-tsa.h'

We already have "qemu/compiler.h" for compiler-specific arrangements,
automatically included by "qemu/osdep.h" for each source file. No
need to explicitly include a header for a Clang particularity.

Suggested-by: Pierrick Bouvier <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Reviewed-by: Alex Bennée <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 46a2cfc448931aeeb86bd721fa64e48ec0594299
      
https://github.com/qemu/qemu/commit/46a2cfc448931aeeb86bd721fa64e48ec0594299
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/hw/core/cpu.h
    M target/microblaze/gdbstub.c
    M target/openrisc/gdbstub.c

  Log Message:
  -----------
  gdbstub: Clarify no more than @gdb_num_core_regs can be accessed

Both CPUClass::gdb_read_register() and CPUClass::gdb_write_register()
handlers are called from common gdbstub code, and won't be called with
register index over CPUClass::gdb_num_core_regs:

  int gdb_read_register(CPUState *cpu, GByteArray *buf, int reg)
  {
      CPUClass *cc = CPU_GET_CLASS(cpu);

      if (reg < cc->gdb_num_core_regs) {
          return cc->gdb_read_register(cpu, buf, reg);
      }
      ...
  }

  static int gdb_write_register(CPUState *cpu, uint8_t *mem_buf, int reg)
  {
      CPUClass *cc = CPU_GET_CLASS(cpu);

      if (reg < cc->gdb_num_core_regs) {
          return cc->gdb_write_register(cpu, mem_buf, reg);
      }
      ...
  }

Clarify that in CPUClass docstring, and remove unreachable code on
the microblaze and openrisc implementations.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 270dbee10cd31b86f0a3a8a2691026bdb0b9a071
      
https://github.com/qemu/qemu/commit/270dbee10cd31b86f0a3a8a2691026bdb0b9a071
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M accel/stubs/tcg-stub.c
    M gdbstub/system.c

  Log Message:
  -----------
  gdbstub: Check for TCG before calling tb_flush()

Use the tcg_enabled() check so the compiler can elide
the call when TCG isn't available, allowing to remove
the tb_flush() stub.

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


  Commit: 0e86d7a71e8b5af201f2066a56071d3e23f4693c
      
https://github.com/qemu/qemu/commit/0e86d7a71e8b5af201f2066a56071d3e23f4693c
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M cpu-target.c
    M hw/core/cpu-common.c

  Log Message:
  -----------
  cpus: Cache CPUClass early in instance_init() handler

Cache CPUClass as early as possible, when the instance
is initialized.

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


  Commit: 6042c47cddae04d0c1f0c750968f66a553611f40
      
https://github.com/qemu/qemu/commit/6042c47cddae04d0c1f0c750968f66a553611f40
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M cpu-target.c
    M hw/core/cpu-common.c

  Log Message:
  -----------
  cpus: Keep default fields initialization in cpu_common_initfn()

cpu_common_initfn() is our target agnostic initializer,
while cpu_exec_initfn() is the target specific one.

The %as and %num_ases fields are not target specific,
so initialize them in the common helper.

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


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

  Changed paths:
    M accel/accel-target.c

  Log Message:
  -----------
  accel/accel: Make TYPE_ACCEL abstract

There is no generic acceleration, we have to use specific
implementations. Make the base class abstract.

Fixes: b14a0b7469fa ("accel: Use QOM classes for accel types")
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Cornelia Huck <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>


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

  Changed paths:
    M hw/core/cpu-common.c

  Log Message:
  -----------
  accel/tcg: Remove pointless initialization of cflags_next_tb

cflags_next_tb is always re-initialized in the CPU Reset()
handler in cpu_common_reset_hold(), no need to initialize
it in cpu_common_initfn().

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


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

  Changed paths:
    M accel/tcg/cpu-exec-common.c
    M accel/tcg/cpu-exec.c

  Log Message:
  -----------
  accel/tcg: Build tcg_flags helpers as common code

While cpu-exec.c is build for each target,tcg_flags helpers
aren't target specific. Move them to cpu-exec-common.c to
build them once.

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


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

  Changed paths:
    M accel/tcg/internal-common.h
    M accel/tcg/user-exec-stub.c
    M include/exec/exec-all.h

  Log Message:
  -----------
  accel/tcg: Restrict tlb_init() / destroy() to TCG

Move CPU TLB related methods to accel/tcg/ scope,
in "internal-common.h".

Suggested-by: Richard Henderson <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


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

  Changed paths:
    M accel/tcg/icount-common.c
    M accel/tcg/internal-common.h
    M include/system/cpus.h
    M system/globals.c

  Log Message:
  -----------
  accel/tcg: Restrict 'icount_align_option' global to TCG

Since commit 740b1759734 ("cpu-timers, icount: new modules")
we don't need to expose icount_align_option to all the
system code, we can restrict it to TCG. Since it is used as
a boolean, declare it as 'bool' type.

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


  Commit: 1501743654692ae6acf98ed8ec162b256eb54a64
      
https://github.com/qemu/qemu/commit/1501743654692ae6acf98ed8ec162b256eb54a64
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M MAINTAINERS
    M accel/tcg/cpu-exec.c
    M accel/tcg/cputlb.c
    M accel/tcg/translate-all.c
    M accel/tcg/user-exec.c
    M accel/tcg/watchpoint.c
    M bsd-user/signal.c
    M hw/mips/jazz.c
    A include/accel/tcg/cpu-ops.h
    R include/hw/core/tcg-cpu-ops.h
    M linux-user/signal.c
    M system/physmem.c
    M target/alpha/cpu.c
    M target/arm/cpu.c
    M target/arm/tcg/cpu-v7m.c
    M target/arm/tcg/cpu32.c
    M target/arm/tcg/mte_helper.c
    M target/arm/tcg/sve_helper.c
    M target/avr/cpu.c
    M target/avr/helper.c
    M target/hexagon/cpu.c
    M target/hppa/cpu.c
    M target/i386/tcg/tcg-cpu.c
    M target/loongarch/cpu.c
    M target/m68k/cpu.c
    M target/microblaze/cpu.c
    M target/mips/cpu.c
    M target/openrisc/cpu.c
    M target/ppc/cpu_init.c
    M target/riscv/cpu_helper.c
    M target/riscv/tcg/tcg-cpu.c
    M target/rx/cpu.c
    M target/s390x/cpu.c
    M target/s390x/tcg/mem_helper.c
    M target/sh4/cpu.c
    M target/sparc/cpu.c
    M target/tricore/cpu.c
    M target/xtensa/cpu.c

  Log Message:
  -----------
  accel/tcg: Rename 'hw/core/tcg-cpu-ops.h' -> 'accel/tcg/cpu-ops.h'

TCGCPUOps structure makes more sense in the accelerator context
rather than hardware emulation. Move it under the accel/tcg/ scope.

Mechanical change doing:

 $  sed -i -e 's,hw/core/tcg-cpu-ops.h,accel/tcg/cpu-ops.h,g' \
   $(git grep -l hw/core/tcg-cpu-ops.h)

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


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

  Changed paths:
    M MAINTAINERS
    M accel/accel-target.c
    M cpu-target.c
    A include/accel/accel-cpu-target.h
    R include/hw/core/accel-cpu.h
    M target/i386/hvf/hvf-cpu.c
    M target/i386/kvm/kvm-cpu.c
    M target/i386/tcg/tcg-cpu.c
    M target/ppc/kvm.c
    M target/riscv/kvm/kvm-cpu.c
    M target/riscv/tcg/tcg-cpu.c

  Log Message:
  -----------
  accel: Rename 'hw/core/accel-cpu.h' -> 'accel/accel-cpu-target.h'

AccelCPUClass is for accelerator to initialize target specific
features of a vCPU. Not really related to hardware emulation,
rename "hw/core/accel-cpu.h" as "accel/accel-cpu-target.h"
(using the explicit -target suffix).

More importantly, target specific header often access the
target specific definitions which are in each target/FOO/cpu.h
header, usually included generically as "cpu.h" relative to
target/FOO/. However, there is already a "cpu.h" in hw/core/
which takes precedence. This change allows "accel-cpu-target.h"
to include a target "cpu.h".

Mechanical change doing:

 $  git mv include/hw/core/accel-cpu.h \
           include/accel/accel-cpu-target.h
 $  sed -i -e 's,hw/core/accel-cpu.h,accel/accel-cpu-target.h,' \
   $(git grep -l hw/core/accel-cpu.h)

and renaming header guard 'ACCEL_CPU_TARGET_H'.

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


  Commit: 0f66536a012b2d1b02818bbb2d24485205fc2f64
      
https://github.com/qemu/qemu/commit/0f66536a012b2d1b02818bbb2d24485205fc2f64
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M accel/accel-system.c
    M accel/hvf/hvf-accel-ops.c
    M accel/kvm/kvm-accel-ops.c
    M accel/qtest/qtest.c
    M accel/tcg/cpu-exec-common.c
    M accel/tcg/cpu-exec.c
    M accel/tcg/monitor.c
    M accel/tcg/tcg-accel-ops.c
    M accel/tcg/translate-all.c
    M accel/xen/xen-all.c
    M cpu-common.c
    M cpu-target.c
    M gdbstub/system.c
    M include/qemu/typedefs.h
    M include/system/accel-ops.h
    M include/system/cpus.h
    M system/cpus.c
    M target/i386/nvmm/nvmm-accel-ops.c
    M target/i386/whpx/whpx-accel-ops.c

  Log Message:
  -----------
  accel: Forward-declare AccelOpsClass in 'qemu/typedefs.h'

The heavily imported "system/cpus.h" header includes "accel-ops.h"
to get AccelOpsClass type declaration. Reduce headers pressure by
forward declaring it in "qemu/typedefs.h", where we already
declare the AccelCPUState type.

Reduce "system/cpus.h" inclusions by only including
"system/accel-ops.h" when necessary.

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


  Commit: 217e72024c12c95e7b5f74fde74206951e706b9e
      
https://github.com/qemu/qemu/commit/217e72024c12c95e7b5f74fde74206951e706b9e
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/accel/accel-cpu-target.h

  Log Message:
  -----------
  accel/accel-cpu-target.h: Include missing 'cpu.h' header

CPU_RESOLVING_TYPE is declared per target in "cpu.h". Include
it (along with "qom/object.h") to avoid when moving code around:

  include/accel/accel-cpu-target.h:26:50: error: expected ')'
     26 | DECLARE_CLASS_CHECKERS(AccelCPUClass, ACCEL_CPU, TYPE_ACCEL_CPU)
        |                                                  ^
  include/accel/accel-cpu-target.h:23:33: note: expanded from macro 
'TYPE_ACCEL_CPU'
     23 | #define TYPE_ACCEL_CPU "accel-" CPU_RESOLVING_TYPE
        |                                 ^
  include/accel/accel-cpu-target.h:26:1: note: to match this '('
     26 | DECLARE_CLASS_CHECKERS(AccelCPUClass, ACCEL_CPU, TYPE_ACCEL_CPU)
        | ^
  include/qom/object.h:196:14: note: expanded from macro 
'DECLARE_CLASS_CHECKERS'
    196 |     { return OBJECT_GET_CLASS(ClassType, obj, TYPENAME); } \
        |              ^
  include/qom/object.h:558:5: note: expanded from macro 'OBJECT_GET_CLASS'
    558 |     OBJECT_CLASS_CHECK(class, object_get_class(OBJECT(obj)), name)
        |     ^
  include/qom/object.h:544:74: note: expanded from macro 'OBJECT_CLASS_CHECK'
    544 |     ((class_type 
*)object_class_dynamic_cast_assert(OBJECT_CLASS(class), (name), \
        |                                                                       
   ^

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Acked-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


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

  Changed paths:
    M accel/tcg/user-exec.c

  Log Message:
  -----------
  accel/tcg: Include missing bswap headers in user-exec.c

Commit 35c653c4029 ("tcg: Add 128-bit guest memory
primitives") introduced the use of bswap128() which is
declared in "qemu/int128.h", commit de95016dfbf ("accel/tcg:
Implement helper_{ld,st}*_mmu for user-only") introduced the
other bswap*() uses, which are declared in "qemu/bswap.h".
Include the missing headers.

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


  Commit: 964a4f2c2972ec9c7574b87541d6070ef5d22f4f
      
https://github.com/qemu/qemu/commit/964a4f2c2972ec9c7574b87541d6070ef5d22f4f
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M cpu-target.c

  Log Message:
  -----------
  accel/tcg: Take mmap lock in the whole cpu_memory_rw_debug() function

Simplify user implementation of cpu_memory_rw_debug() by
taking the mmap lock globally. See commit 87ab2704296
("linux-user: Allow gdbstub to ignore page protection")
for why this lock is necessary.

Suggested-by: Richard Henderson <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


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

  Changed paths:
    M cpu-target.c

  Log Message:
  -----------
  accel/tcg: Avoid using lock_user() in cpu_memory_rw_debug()

We checked the page flags with page_get_flags(), so
locking the page is superfluous. Remove the lock_user()
calls and directly use g2h() in place.

Suggested-by: Richard Henderson <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 585d4b122914b7be170eef147a0269cc233f0adc
      
https://github.com/qemu/qemu/commit/585d4b122914b7be170eef147a0269cc233f0adc
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M accel/tcg/user-exec.c
    M cpu-target.c

  Log Message:
  -----------
  accel/tcg: Move cpu_memory_rw_debug() user implementation to user-exec.c

cpu_memory_rw_debug() system implementation is defined in
system/physmem.c. Move the user one to accel/tcg/user-exec.c
to simplify cpu-target.c maintenance.

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


  Commit: 6eeff37b43d496deadd4cb4697f9f3f5b50d0926
      
https://github.com/qemu/qemu/commit/6eeff37b43d496deadd4cb4697f9f3f5b50d0926
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M accel/kvm/kvm-cpus.h

  Log Message:
  -----------
  accel/kvm: Remove unused 'system/cpus.h' header in kvm-cpus.h

Missed in commit b86f59c7155 ("accel: replace struct CpusAccel
with AccelOpsClass") which removed the single CpusAccel use.

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


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

  Changed paths:
    M cpu-target.c

  Log Message:
  -----------
  cpus: Fix style in cpu-target.c

Fix style on code we are going to modify.

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


  Commit: 530c7139f64aa0e45b61ce9abecb7df8c55b3f12
      
https://github.com/qemu/qemu/commit/530c7139f64aa0e45b61ce9abecb7df8c55b3f12
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M cpu-target.c

  Log Message:
  -----------
  cpus: Restrict cpu_common_post_load() code to TCG

CPU_INTERRUPT_EXIT was removed in commit 3098dba01c7
("Use a dedicated function to request exit from execution
loop"), tlb_flush() and tb_flush() are related to TCG
accelerator.

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


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

  Changed paths:
    M MAINTAINERS
    M cpu-target.c
    M hw/core/cpu-system.c
    A hw/core/cpu-user.c
    M hw/core/meson.build

  Log Message:
  -----------
  cpus: Have cpu_class_init_props() per user / system emulation

Rather than maintaining a mix of system / user code for CPU
class properties, move system properties to cpu-system.c
and user ones to the new cpu-user.c unit.

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


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

  Changed paths:
    M cpu-target.c
    M hw/core/cpu-system.c
    M hw/core/cpu-user.c

  Log Message:
  -----------
  cpus: Have cpu_exec_initfn() per user / system emulation

Slighly simplify cpu-target.c again by extracting cpu_exec_initfn()
to cpu-{system,user}.c, adding an empty stub for user emulation.

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


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

  Changed paths:
    M include/hw/core/cpu.h

  Log Message:
  -----------
  cpus: Restrict cpu_get_memory_mapping() to system emulation

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


  Commit: 2beb871dc20b57fc4b1ec2285dfc2145baf9df80
      
https://github.com/qemu/qemu/commit/2beb871dc20b57fc4b1ec2285dfc2145baf9df80
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M hw/core/generic-loader.c

  Log Message:
  -----------
  hw/core/generic-loader: Do not open-code cpu_set_pc()

Directly call cpu_set_pc() instead of open-coding it.

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


  Commit: 607854ae7c55bb00fbe58e80aa661887cd3eb256
      
https://github.com/qemu/qemu/commit/607854ae7c55bb00fbe58e80aa661887cd3eb256
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/microblaze/translate.c

  Log Message:
  -----------
  target/microblaze: Explode MO_TExx -> MO_TE | MO_xx

Extract the implicit MO_TE definition in order to replace
it by runtime variable in the next commit.

Mechanical change using:

  $ for n in UW UL UQ UO SW SL SQ; do \
      sed -i -e "s/MO_TE$n/MO_TE | MO_$n/" \
           $(git grep -l MO_TE$n target/microblaze); \
    done

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Alistair Francis <[email protected]>
Message-Id: <[email protected]>


  Commit: 401bd7d340a4558995e8f61bd2050174e043ef20
      
https://github.com/qemu/qemu/commit/401bd7d340a4558995e8f61bd2050174e043ef20
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/microblaze/translate.c

  Log Message:
  -----------
  target/microblaze: Set MO_TE once in do_load() / do_store()

All callers of do_load() / do_store() set MO_TE flag.
Set it once in the callees.

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


  Commit: 2c9e8ddd769959e899206b4cdea466ba5845e0bc
      
https://github.com/qemu/qemu/commit/2c9e8ddd769959e899206b4cdea466ba5845e0bc
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/microblaze/translate.c

  Log Message:
  -----------
  target/microblaze: Introduce mo_endian() helper

mo_endian() returns the target endianness, currently static.

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


  Commit: 415aae543edad19eda8f66955dde386c7fd7c680
      
https://github.com/qemu/qemu/commit/415aae543edad19eda8f66955dde386c7fd7c680
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/microblaze/cpu.h
    M target/microblaze/translate.c

  Log Message:
  -----------
  target/microblaze: Consider endianness while translating code

Consider the CPU ENDI bit, swap instructions when the CPU
endianness doesn't match the binary one.

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


  Commit: 40b839cb840ce032c8f048325b486d3284f1b68f
      
https://github.com/qemu/qemu/commit/40b839cb840ce032c8f048325b486d3284f1b68f
  Author: Phil Dennis-Jordan <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/i386/hvf/x86_decode.c

  Log Message:
  -----------
  target/i386/hvf: Variable type fixup in decoder

decode_bytes reads 1, 2, 4, or 8 bytes at a time. The destination
variable should therefore be a uint64_t, not a target_ulong.

Signed-off-by: Phil Dennis-Jordan <[email protected]>
Fixes: ff2de1668c9 ("i386: hvf: remove addr_t")
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>


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

  Changed paths:
    M hw/openrisc/openrisc_sim.c
    M hw/openrisc/virt.c
    M target/openrisc/cpu.c

  Log Message:
  -----------
  target/openrisc: Call cpu_openrisc_clock_init() in cpu_realize()

OpenRISC timer is architecturally tied to the CPU.

It doesn't belong to the machine init() code to
instanciate it: move its creation when a vCPU is
realized (after being created).

Reported-by: Paolo Bonzini <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Acked-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


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

  Changed paths:
    M target/hexagon/cpu.h

  Log Message:
  -----------
  target/hexagon: Ensure not being build on system emulation

Currently only user emulation is supported.
Assert no target code is built for system emulation.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Brian Cain <[email protected]>
Message-Id: <[email protected]>


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

  Changed paths:
    M target/rx/cpu.c
    M target/rx/cpu.h
    M target/rx/helper.c

  Log Message:
  -----------
  target/rx: Ensure not being build on user emulation

Currently only system emulation is supported.
Assert no target code is built for user emulation.
Remove #ifdef'ry since more work is required before
being able to emulate a user process.

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


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

  Changed paths:
    M target/tricore/cpu.h

  Log Message:
  -----------
  target/tricore: Ensure not being build on user emulation

Currently only system emulation is supported.
Assert no target code is built for user emulation.

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


  Commit: 96adf9b404e51b9acdf9592595ad935905de1f4e
      
https://github.com/qemu/qemu/commit/96adf9b404e51b9acdf9592595ad935905de1f4e
  Author: Denis Rastyogin <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/mips/tcg/msa_helper.c

  Log Message:
  -----------
  target/mips: Fix possible MSA int overflow

Fix possible overflow in 1 << (DF_BITS(df) - 2) when DF_BITS(df)
is 64 by using a 64-bit integer for the shift operation.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Reported-by: Dmitriy Fedin <[email protected]>
Signed-off-by: Denis Rastyogin <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>


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

  Changed paths:
    M target/alpha/cpu.c
    M target/avr/cpu.c
    M target/hexagon/cpu.c
    M target/i386/cpu.c
    M target/loongarch/cpu.c
    M target/rx/cpu.c

  Log Message:
  -----------
  target: Set disassemble_info::endian value for little-endian targets

Have the CPUClass::disas_set_info() callback set the
disassemble_info::endian field for little-endian targets.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 2136f7f1f95b26129922d05d233b2056b8cbff5c
      
https://github.com/qemu/qemu/commit/2136f7f1f95b26129922d05d233b2056b8cbff5c
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/hppa/cpu.c
    M target/m68k/cpu.c
    M target/openrisc/cpu.c
    M target/s390x/cpu.c
    M target/sparc/cpu.c

  Log Message:
  -----------
  target: Set disassemble_info::endian value for big-endian targets

Have the CPUClass::disas_set_info() callback set the
disassemble_info::endian field for big-endian targets.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 4b7d6557efaa3c0e291ab02319364f139ac400d9
      
https://github.com/qemu/qemu/commit/4b7d6557efaa3c0e291ab02319364f139ac400d9
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/arm/cpu.c

  Log Message:
  -----------
  target/arm: Set disassemble_info::endian value in disas_set_info()

Have the CPUClass::disas_set_info() callback set the
disassemble_info::endian field.

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


  Commit: 840e0862c52899258ae6743de2fc3826f9a4e4c3
      
https://github.com/qemu/qemu/commit/840e0862c52899258ae6743de2fc3826f9a4e4c3
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/microblaze/cpu.c

  Log Message:
  -----------
  target/microblaze: Set disassemble_info::endian value in disas_set_info

Have the CPUClass::disas_set_info() callback set the
disassemble_info::endian field.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 7bb1a717cb2fd11962d1ad72933e6235c2d638c6
      
https://github.com/qemu/qemu/commit/7bb1a717cb2fd11962d1ad72933e6235c2d638c6
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/mips/cpu.c

  Log Message:
  -----------
  target/mips: Set disassemble_info::endian value in disas_set_info()

Have the CPUClass::disas_set_info() callback set the
disassemble_info::endian field.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 724bac41906752aafd432714d13fc78da2265f1c
      
https://github.com/qemu/qemu/commit/724bac41906752aafd432714d13fc78da2265f1c
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/ppc/cpu_init.c

  Log Message:
  -----------
  target/ppc: Set disassemble_info::endian value in disas_set_info()

Have the CPUClass::disas_set_info() callback always set\
the disassemble_info::endian field.

Reviewed-by: Thomas Huth <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 0a8bfcbe7ca32f160c47faa9d611173b0697a698
      
https://github.com/qemu/qemu/commit/0a8bfcbe7ca32f160c47faa9d611173b0697a698
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/riscv/cpu.c

  Log Message:
  -----------
  target/riscv: Set disassemble_info::endian value in disas_set_info()

Have the CPUClass::disas_set_info() callback set the
disassemble_info::endian field.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 35e9b36d6e724160d8f33ab9b61dd8b660e4df1f
      
https://github.com/qemu/qemu/commit/35e9b36d6e724160d8f33ab9b61dd8b660e4df1f
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/sh4/cpu.c

  Log Message:
  -----------
  target/sh4: Set disassemble_info::endian value in disas_set_info()

Have the CPUClass::disas_set_info() callback set the
disassemble_info::endian field.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 059eb605fd67f15c0ca7f07c7a02c319035b095b
      
https://github.com/qemu/qemu/commit/059eb605fd67f15c0ca7f07c7a02c319035b095b
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/xtensa/cpu.c

  Log Message:
  -----------
  target/xtensa: Set disassemble_info::endian value in disas_set_info()

Have the CPUClass::disas_set_info() callback set the
disassemble_info::endian field.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


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

  Changed paths:
    M disas/disas-common.c

  Log Message:
  -----------
  disas: Remove target_words_bigendian() call in initialize_debug_target()

All CPUClass implementating disas_set_info() must set the
disassemble_info::endian value.

Ensure that by setting %endian to BFD_ENDIAN_UNKNOWN before
calling the CPUClass::disas_set_info() handler, then asserting
%endian is not BFD_ENDIAN_UNKNOWN after the call.

This allows removing the target_words_bigendian() call in disas/.

Suggested-by: Richard Henderson <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Message-Id: <[email protected]>


  Commit: 0048035a870312f2fd0f3dd28115398d26e419bb
      
https://github.com/qemu/qemu/commit/0048035a870312f2fd0f3dd28115398d26e419bb
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/i386/cpu.c
    M target/i386/cpu.h

  Log Message:
  -----------
  target/i386: Constify X86CPUModel uses

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


  Commit: 1e6fbd637bbbfdd8ff13ed665b5294fab4771862
      
https://github.com/qemu/qemu/commit/1e6fbd637bbbfdd8ff13ed665b5294fab4771862
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/sparc/cpu.h

  Log Message:
  -----------
  target/sparc: Constify SPARCCPUClass::cpu_def

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


  Commit: 05769aae6288a69ba04b0162ed0a15b08b2b7878
      
https://github.com/qemu/qemu/commit/05769aae6288a69ba04b0162ed0a15b08b2b7878
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/xtensa/cpu.h
    M target/xtensa/helper.c

  Log Message:
  -----------
  target/xtensa: Finalize config in xtensa_register_core()

Make XtensaConfigList::config not const. Only modify
XtensaConfig within xtensa_register_core(), when the
class is registered, not when it is initialized.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Acked-by: Max Filippov <[email protected]>
Message-Id: <[email protected]>


  Commit: 3bbcc0f732a173f164628243c6345b659c08900d
      
https://github.com/qemu/qemu/commit/3bbcc0f732a173f164628243c6345b659c08900d
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/riscv/cpu.c
    M target/riscv/cpu.h

  Log Message:
  -----------
  target/riscv: Declare RISCVCPUClass::misa_mxl_max as RISCVMXL

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


  Commit: 2101c85aeab4236c7b569bcf4ccaaecf318c231d
      
https://github.com/qemu/qemu/commit/2101c85aeab4236c7b569bcf4ccaaecf318c231d
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/riscv/cpu.c

  Log Message:
  -----------
  target/riscv: Convert misa_mxl_max using GLib macros

Use GLib conversion macros to pass misa_mxl_max as
riscv_cpu_class_init() class data.

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


  Commit: 35487a6dc0e53b998217b0963d10c18e84c5bb28
      
https://github.com/qemu/qemu/commit/35487a6dc0e53b998217b0963d10c18e84c5bb28
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M target/alpha/fpu_helper.c

  Log Message:
  -----------
  target/alpha: Do not mix exception flags and FPCR bits

get_float_exception_flags() returns exception flags,
which are distinct from the FPCR bits used as error code.

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


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

  Changed paths:
    M target/i386/whpx/whpx-apic.c

  Log Message:
  -----------
  target/i386: Mark WHPX APIC region as little-endian

This device is only used by the x86 targets, which are only
built as little-endian. Therefore the DEVICE_NATIVE_ENDIAN
definition expand to DEVICE_LITTLE_ENDIAN (besides, the
DEVICE_BIG_ENDIAN case isn't tested). Simplify directly
using DEVICE_LITTLE_ENDIAN.

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


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

  Changed paths:
    M include/system/arch_init.h
    M system/arch_init.c
    M system/vl.c

  Log Message:
  -----------
  system: Open-code qemu_init_arch_modules() using target_name()

Mostly revert commit c80cafa0c73 ("system: Add qemu_init_arch_modules")
but using target_name() instead of the target specific 'TARGET_NAME'
definition.

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


  Commit: 92941c94e7f4858fdd61b4c1b85f6d1c6f164359
      
https://github.com/qemu/qemu/commit/92941c94e7f4858fdd61b4c1b85f6d1c6f164359
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M include/exec/poison.h

  Log Message:
  -----------
  include: Poison TARGET_PHYS_ADDR_SPACE_BITS definition

Ensure common code never use this target specific definition.

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


  Commit: 3e61b839844334689cf46694ff1fd1624d6fae20
      
https://github.com/qemu/qemu/commit/3e61b839844334689cf46694ff1fd1624d6fae20
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-07 (Fri, 07 Mar 2025)

  Changed paths:
    M blockdev-nbd.c
    M qapi/block-export.json
    M qemu-nbd.c
    M tests/qemu-iotests/162
    M tests/qemu-iotests/302

  Log Message:
  -----------
  Merge tag 'pull-nbd-2025-03-05' of https://repo.or.cz/qemu/ericb into staging

NBD patches for 2025-03-05

- Several iotest fixes
- Refactor QMP for NbdServerOptions for less repetition
- Avoid a hang in 'qemu-nbd --fork' when simple trace backend is enabled

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCAAdFiEEccLMIrHEYCkn0vOqp6FrSiUnQ2oFAmfI2I0ACgkQp6FrSiUn
# Q2pMWQf/ZNnuLC5O5W4Yiyki7mYjN3Izve5+xgM/gNv9uTrHmYXogYzswpYz1USo
# aU1i/EFLJ5K7ImefQYBvySox+opwFs63xPscI/liwrKu54csp1rYGNg3hjKYaZCc
# ukR5tB4bRQ2/JXNo0JueiocMZLyC5fZRUt9Z423D3ReHCtEJof0v1rTL2r7mzGJg
# EdaRSGr0s592rFjWLwwvWWun5f0mEAFXM2YvZRRLE7M+x2XJeAR4F400GfvSMDNo
# chGX41QKhmCYTMI5Shc/mX+5hMllEt/TyYBJUUk0cslJriVnNDV5VTFf184BmH5s
# tqiUtzJubxt8/Wtpg6OV9RPAzVmr1g==
# =NO+l
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 06 Mar 2025 07:04:45 HKT
# gpg:                using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A
# gpg: Good signature from "Eric Blake <[email protected]>" [full]
# gpg:                 aka "Eric Blake (Free Software Programmer) 
<[email protected]>" [full]
# gpg:                 aka "[jpeg image of size 6874]" [full]
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* tag 'pull-nbd-2025-03-05' of https://repo.or.cz/qemu/ericb:
  nbd: Defer trace init until after daemonization
  qapi: merge common parts of NbdServerOptions and nbd-server-start data
  iotests: Stop NBD server in test 162 before starting the next one
  iotest: Unbreak 302 with python 3.13

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


  Commit: b21db92e3543f2f7944d472a53f4d6a71dc0ca6e
      
https://github.com/qemu/qemu/commit/b21db92e3543f2f7944d472a53f4d6a71dc0ca6e
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-07 (Fri, 07 Mar 2025)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into 
staging

Pull request

QED need_check_timer use-after-free fix

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmfJBosACgkQnKSrs4Gr
# c8jHqQgAwyTkGTir9tMx0WJ854+Ci2utk1Q+TbTUh5TRk8DHuDWXiSQlaAk67prR
# a0DXxxsNBzYzaPUhjYOBmWC2MpRylehSo/owep/MCr83an1k7rBPi+VFgRzBcRpX
# 9kigtyoQF5RgIprEf9NjjXeVX7vvom3VemxEQFPlRorzd+JSc4KiYcpVsLFnDWjW
# Cs0pFsEYW40s+BQijVXuVA//N5TuHrHbEKU12SkiliDxDr+OsmtzRi1XFqcGyN2N
# OjHMXSyQoTYPuBet7Bs2607QD/tO8PUyUTkS5MHImo8mXN9BV8fBKnYnSCilQm4P
# RjWCzcgapGLgbHDfdCxsdgkWJmfRLw==
# =reT5
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 06 Mar 2025 10:20:59 HKT
# gpg:                using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <[email protected]>" [ultimate]
# gpg:                 aka "Stefan Hajnoczi <[email protected]>" [ultimate]
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* tag 'block-pull-request' of https://gitlab.com/stefanha/qemu:
  block/qed: fix use-after-free by nullifying timer pointer after free

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


  Commit: e17f08b5fbaeb71daee175f835b1b00d841391b6
      
https://github.com/qemu/qemu/commit/e17f08b5fbaeb71daee175f835b1b00d841391b6
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-07 (Fri, 07 Mar 2025)

  Changed paths:
    M backends/tpm/tpm_util.c
    M docs/about/build-platforms.rst
    M docs/devel/qapi-code-gen.rst
    M hw/block/xen-block.c
    M hw/core/qdev-properties-system.c
    M hw/core/qdev-properties.c
    M hw/display/apple-gfx.m
    M hw/misc/xlnx-versal-trng.c
    M hw/nvme/nguid.c
    M hw/nvram/xlnx-bbram.c
    M hw/nvram/xlnx-efuse.c
    M hw/pci/pci.c
    M hw/s390x/ccw-device.c
    M hw/s390x/css.c
    M hw/s390x/s390-pci-bus.c
    M hw/vfio/pci-quirks.c
    M include/hw/qdev-properties.h
    M scripts/qapi/introspect.py
    M scripts/qapi/parser.py
    M scripts/qapi/schema.py
    M target/riscv/cpu.c
    M target/sparc/cpu.c
    M tests/qapi-schema/test-qapi.py

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

QAPI patches patches for 2025-03-06

# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmfJa/4SHGFybWJydUBy
# ZWRoYXQuY29tAAoJEDhwtADrkYZTOnsP/3DE/9D1JVBbAEU3i1qc5qvZXFLtQykh
# mqMptxOrQ1KQm0abgXv8gS4rd++RycS+48fqnLWdxNYCbW5YEH9a2hlPefrhHRQS
# GF4eMvJIECFXFyLWLO9aHDdUQc1fng8QDn8DFGkHaO3veGADJsX0HKGWit0vVc5k
# uL61XOAd/Iu2z4BcgpdL29FEnlumIpDe8m8yyQcCLQ6EE7/FNSKPr1MSglk1Ky/1
# bwb+HK6nE5+6LznGimpcQhgh0CWv+hECPpmEy90iRMUSmEv2f0bB69e7pTFqOP9g
# 9Vm07NEA93K/oCFDa79MK606n/sPQAn2bfr0aCCw4r3FKtvqe4+/RSSE4J/4/nlJ
# rYn+RkKbgRKmuTqSlWwuBa8/THpPFzX6IO1LiAP5b4LR1IZd9YuBa3alc6xMehMF
# iZ4tUFsUxjIMLxpcYY/yjEruqFutkig6nzCqxfHT7DplKNX6Ow3mv0fC+raC1jvv
# Mdy5Cb6vZa1Ho9JvBLVmn8ASeDBYMqdTohB4QqgJWciLdeFCJxmGk3MgIgDRksSL
# abSTqPKjott7K1CQPio/imkT4o4ulXTi0jWtb4eLnER/f7T14npr9+w4UK4iBXyd
# pqq/++hgCFDGuQjzn9WWkbyYHhCCmMkf5WMn6Ycc+HIZvuOULUU+y5Ed01gufgb8
# pWpLO2IPupbp
# =VfRB
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 06 Mar 2025 17:33:50 HKT
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Markus Armbruster <[email protected]>" [full]
# gpg:                 aka "Markus Armbruster <[email protected]>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* tag 'pull-qapi-2025-03-06' of https://repo.or.cz/qemu/armbru:
  docs/devel/qapi-code-gen: Discourage use of 'prefix'
  qdev: Improve a few more PropertyInfo @description members
  qdev: Improve PropertyInfo member @description for enum properties
  qdev: Change values of PropertyInfo member @type to be QAPI types
  qdev: Rename PropertyInfo member @name to @type
  qdev: Change qdev_prop_pci_devfn member @name from "int32" to "str"
  qdev: Delete unused qdev_prop_enum
  qapi/introspect: Use @dataclass to simplify
  qapi: Eliminate OrderedDict
  docs/about/build-platforms: Correct minimum supported Python version

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


  Commit: 2400fad572906127e9d453b92f90806d66583dc7
      
https://github.com/qemu/qemu/commit/2400fad572906127e9d453b92f90806d66583dc7
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-07 (Fri, 07 Mar 2025)

  Changed paths:
    M MAINTAINERS
    M docs/about/deprecated.rst
    M docs/devel/migration/vfio.rst
    M hw/core/machine.c
    M hw/net/e1000e.c
    M hw/net/eepro100.c
    M hw/net/igb.c
    M hw/nvme/ctrl.c
    M hw/pci-bridge/pcie_pci_bridge.c
    M hw/pci/pci.c
    M hw/pci/trace-events
    M hw/vfio/amd-xgbe.c
    M hw/vfio/ap.c
    M hw/vfio/calxeda-xgmac.c
    M hw/vfio/ccw.c
    M hw/vfio/meson.build
    A hw/vfio/migration-multifd.c
    A hw/vfio/migration-multifd.h
    M hw/vfio/migration.c
    M hw/vfio/pci.c
    M hw/vfio/pci.h
    M hw/vfio/platform.c
    M hw/vfio/trace-events
    M hw/virtio/virtio-pci.c
    M include/block/aio.h
    M include/block/thread-pool.h
    M include/hw/pci/pci.h
    M include/hw/pci/pci_device.h
    M include/hw/pci/pcie.h
    M include/hw/vfio/vfio-common.h
    M include/migration/client-options.h
    M include/migration/misc.h
    M include/migration/register.h
    M include/qapi/error.h
    M include/qemu/typedefs.h
    M migration/colo.c
    M migration/meson.build
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M migration/migration.h
    A migration/multifd-device-state.c
    M migration/multifd-nocomp.c
    M migration/multifd.c
    M migration/multifd.h
    M migration/options.c
    M migration/qemu-file.h
    M migration/savevm.c
    M migration/savevm.h
    M migration/trace-events
    M scripts/analyze-migration.py
    M tests/unit/test-thread-pool.c
    M util/async.c
    M util/thread-pool.c
    M util/trace-events

  Log Message:
  -----------
  Merge tag 'pull-vfio-20250306' of https://github.com/legoater/qemu into 
staging

vfio queue:

* Added property documentation
* Added Minor fixes
* Implemented basic PCI PM capability backing
* Promoted new IGD maintainer
* Deprecated vfio-plaform
* Extended VFIO migration with multifd support

# -----BEGIN PGP SIGNATURE-----
#
# iQIyBAABCAAdFiEEoPZlSPBIlev+awtgUaNDx8/77KEFAmfJrZoACgkQUaNDx8/7
# 7KFE2A/0Dmief9u/dDJIKGIDa+iawcf4hu8iX4v5pB0DlGniT3rgK8WMGnhDpPxq
# Q4wsKfo+JJ2q6msInrT7Ckqyydu9nQztI3vwmfMuWxLhTMyH28K96ptwPqIZBjOx
# rPTEXfnVX4W3tpn1+48S+vefWVa/gkBkIvv7RpK18rMBXv1kDeyOvc/d2dbAt7ft
# zJc4f8gH3jfQzGwmnYVZU1yPrZN7p6zhYR/AD3RQOY97swgZIEyYxXhOuTPiCuEC
# zC+2AMKi9nmnCG6x/mnk7l2yJXSlv7lJdqcjYZhJ9EOIYfiUGTREYIgQbARcafE/
# 4KSg2QR35BoUd4YrmEWxXJCRf3XnyWXDY36dDKVhC0OHng1F/U44HuL4QxwoTIay
# s1SP/DHcvDiPAewVTvdgt7Iwfn9xGhcQO2pkrxBoNLB5JYwW+R6mG7WXeDv1o3GT
# QosTu1fXZezQqFd4v6+q5iRNS2KtBZLTspwAmVdywEFUs+ZLBRlC+bodYlinZw6B
# Yl/z0LfAEh4J55QmX2espbp8MH1+mALuW2H2tgSGSrTBX1nwxZFI5veFzPepgF2S
# eTx69BMjiNMwzIjq1T7e9NpDCceiW0fXDu7IK1MzYhqg1nM9lX9AidhFTeiF2DB2
# EPb3ljy/8fyxcPKa1T9X47hQaSjbMwofaO8Snoh0q0jokY246Q==
# =hIBw
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 06 Mar 2025 22:13:46 HKT
# gpg:                using RSA key A0F66548F04895EBFE6B0B6051A343C7CFFBECA1
# gpg: Good signature from "Cédric Le Goater <[email protected]>" [full]
# gpg:                 aka "Cédric Le Goater <[email protected]>" [full]
# Primary key fingerprint: A0F6 6548 F048 95EB FE6B  0B60 51A3 43C7 CFFB ECA1

* tag 'pull-vfio-20250306' of https://github.com/legoater/qemu: (42 commits)
  hw/core/machine: Add compat for x-migration-multifd-transfer VFIO property
  vfio/migration: Make x-migration-multifd-transfer VFIO property mutable
  vfio/migration: Add x-migration-multifd-transfer VFIO property
  vfio/migration: Multifd device state transfer support - send side
  vfio/migration: Multifd device state transfer support - config loading support
  migration/qemu-file: Define g_autoptr() cleanup function for QEMUFile
  vfio/migration: Multifd device state transfer support - load thread
  vfio/migration: Multifd device state transfer support - received buffers 
queuing
  vfio/migration: Setup and cleanup multifd transfer in these general methods
  vfio/migration: Multifd setup/cleanup functions and associated VFIOMultifd
  vfio/migration: Multifd device state transfer - add support checking function
  vfio/migration: Multifd device state transfer support - basic types
  vfio/migration: Move migration channel flags to vfio-common.h header file
  vfio/migration: Add vfio_add_bytes_transferred()
  vfio/migration: Convert bytes_transferred counter to atomic
  vfio/migration: Add load_device_config_state_start trace event
  migration: Add save_live_complete_precopy_thread handler
  migration/multifd: Add multifd_device_state_supported()
  migration/multifd: Make MultiFDSendData a struct
  migration/multifd: Device state transfer support - send side
  ...

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


  Commit: 98c7362b1efe651327385a25874a73e008c6549e
      
https://github.com/qemu/qemu/commit/98c7362b1efe651327385a25874a73e008c6549e
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-07 (Fri, 07 Mar 2025)

  Changed paths:
    M MAINTAINERS
    M accel/accel-system.c
    M accel/accel-target.c
    M accel/hvf/hvf-accel-ops.c
    M accel/kvm/kvm-accel-ops.c
    M accel/kvm/kvm-cpus.h
    M accel/qtest/qtest.c
    M accel/stubs/tcg-stub.c
    M accel/tcg/cpu-exec-common.c
    M accel/tcg/cpu-exec.c
    M accel/tcg/cputlb.c
    M accel/tcg/icount-common.c
    M accel/tcg/internal-common.h
    M accel/tcg/monitor.c
    M accel/tcg/tcg-accel-ops.c
    M accel/tcg/translate-all.c
    M accel/tcg/user-exec-stub.c
    M accel/tcg/user-exec.c
    M accel/tcg/watchpoint.c
    M accel/xen/xen-all.c
    M block/create.c
    M bsd-user/qemu.h
    M bsd-user/signal.c
    M cpu-common.c
    M cpu-target.c
    M disas/disas-common.c
    M gdbstub/system.c
    M hw/core/cpu-common.c
    M hw/core/cpu-system.c
    A hw/core/cpu-user.c
    M hw/core/generic-loader.c
    M hw/core/meson.build
    M hw/mips/jazz.c
    M hw/openrisc/openrisc_sim.c
    M hw/openrisc/virt.c
    A include/accel/accel-cpu-target.h
    A include/accel/tcg/cpu-ops.h
    M include/block/block_int-common.h
    M include/block/graph-lock.h
    M include/exec/exec-all.h
    M include/exec/page-protection.h
    M include/exec/poison.h
    R include/hw/core/accel-cpu.h
    M include/hw/core/cpu.h
    R include/hw/core/tcg-cpu-ops.h
    R include/qemu/clang-tsa.h
    M include/qemu/compiler.h
    M include/qemu/thread.h
    M include/qemu/typedefs.h
    M include/system/accel-ops.h
    M include/system/arch_init.h
    M include/system/cpus.h
    M linux-user/signal.c
    M system/arch_init.c
    M system/cpus.c
    M system/globals.c
    M system/physmem.c
    M system/vl.c
    M target/alpha/cpu.c
    M target/alpha/fpu_helper.c
    M target/arm/cpu.c
    M target/arm/tcg/cpu-v7m.c
    M target/arm/tcg/cpu32.c
    M target/arm/tcg/mte_helper.c
    M target/arm/tcg/sve_helper.c
    M target/avr/cpu.c
    M target/avr/helper.c
    M target/hexagon/cpu.c
    M target/hexagon/cpu.h
    M target/hppa/cpu.c
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/hvf/hvf-cpu.c
    M target/i386/hvf/x86_decode.c
    M target/i386/kvm/kvm-cpu.c
    M target/i386/nvmm/nvmm-accel-ops.c
    M target/i386/tcg/tcg-cpu.c
    M target/i386/whpx/whpx-accel-ops.c
    M target/i386/whpx/whpx-apic.c
    M target/loongarch/cpu.c
    M target/m68k/cpu.c
    M target/microblaze/cpu.c
    M target/microblaze/cpu.h
    M target/microblaze/gdbstub.c
    M target/microblaze/translate.c
    M target/mips/cpu.c
    M target/mips/tcg/msa_helper.c
    M target/openrisc/cpu.c
    M target/openrisc/gdbstub.c
    M target/ppc/cpu_init.c
    M target/ppc/kvm.c
    M target/riscv/cpu.c
    M target/riscv/cpu.h
    M target/riscv/cpu_helper.c
    M target/riscv/kvm/kvm-cpu.c
    M target/riscv/tcg/tcg-cpu.c
    M target/rx/cpu.c
    M target/rx/cpu.h
    M target/rx/helper.c
    M target/s390x/cpu.c
    M target/s390x/tcg/mem_helper.c
    M target/sh4/cpu.c
    M target/sparc/cpu.c
    M target/sparc/cpu.h
    M target/tricore/cpu.c
    M target/tricore/cpu.h
    M target/xtensa/cpu.c
    M target/xtensa/cpu.h
    M target/xtensa/helper.c
    M tests/unit/test-bdrv-drain.c
    M tests/unit/test-block-iothread.c
    M util/qemu-thread-posix.c

  Log Message:
  -----------
  Merge tag 'accel-cpus-20250306' of https://github.com/philmd/qemu into staging

Generic CPUs / accelerators patch queue

- Merge "qemu/clang-tsa.h" within "qemu/compiler.h"
- Various cleanups around accelerators initialization code
  (better user/system split)
- Various trivial cleanups in accel/tcg/,
  Guard few TCG calls with tcg_enabled()
- Explicit disassemble_info endianness
- Improve dual-endianness support for MicroBlaze

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmfJw08ACgkQ4+MsLN6t
# wN70whAAtfcdWtqseFfb6fvDtjflgxN51Ui0iaOECXUA18USKriGy34eBcMYMiM2
# +eKgU7+jI6JGE4+burcgWUsPpFFF951/A8+lyIbFgO5yToTDmC+qNe4XfmMAIyXq
# uf9Obr2c0Xk9luh4odb+jPAQodw/7G1fKgcCVIJNDCl/xEcPhS9eNpTaHwcVnkWI
# K6KrxWXOsqG6+evJBPWYoXtOOyt0+JcwAsJoGhprwtGm3P9+jSVXsgeGsJVyZcna
# f32JtjWL754O8XeMkOn4x6rt58VrCIMKI9xT7keDyuhTCq0Zki9RO2nMU2dSw5mN
# AfL9hxqUy0Nijnyslg3ugujDfTePsNyLdwwH7n0mnoD72ELi6WnhDsmOThuEB3Rd
# 4/kdwTJfA/rlWk/GF1tbKW7AvQZokRARtzmL3V0HmGJu57lX+2JuszEdYBkqDEP7
# GH1I10B2yANUm+C9y3X8qWOU7Ws433ebJeJoZuyfnbZ9Me+UfRmql/oS+V8ata2i
# fArEItpldUFrWRyYLkTbXrh2dgyV9yJTEir/lzOzeAZZzyabTbjf2z9qnh976GGO
# 1QnDy5QA4f54kDBUZe7JK26TZsHPch7cgqXW6f8tRlJF7A9hxGK8d2TUV/lC3/vx
# LUOlWNu03PhiruYmZEcWOsY3Jt9jRCF6lIryrnaJsqnVOVmMUMM=
# =3TRh
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 06 Mar 2025 23:46:23 HKT
# gpg:                using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
# gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <[email protected]>" 
[full]
# Primary key fingerprint: FAAB E75E 1291 7221 DCFD  6BB2 E3E3 2C2C DEAD C0DE

* tag 'accel-cpus-20250306' of https://github.com/philmd/qemu: (54 commits)
  include: Poison TARGET_PHYS_ADDR_SPACE_BITS definition
  system: Open-code qemu_init_arch_modules() using target_name()
  target/i386: Mark WHPX APIC region as little-endian
  target/alpha: Do not mix exception flags and FPCR bits
  target/riscv: Convert misa_mxl_max using GLib macros
  target/riscv: Declare RISCVCPUClass::misa_mxl_max as RISCVMXL
  target/xtensa: Finalize config in xtensa_register_core()
  target/sparc: Constify SPARCCPUClass::cpu_def
  target/i386: Constify X86CPUModel uses
  disas: Remove target_words_bigendian() call in initialize_debug_target()
  target/xtensa: Set disassemble_info::endian value in disas_set_info()
  target/sh4: Set disassemble_info::endian value in disas_set_info()
  target/riscv: Set disassemble_info::endian value in disas_set_info()
  target/ppc: Set disassemble_info::endian value in disas_set_info()
  target/mips: Set disassemble_info::endian value in disas_set_info()
  target/microblaze: Set disassemble_info::endian value in disas_set_info
  target/arm: Set disassemble_info::endian value in disas_set_info()
  target: Set disassemble_info::endian value for big-endian targets
  target: Set disassemble_info::endian value for little-endian targets
  target/mips: Fix possible MSA int overflow
  ...

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


Compare: https://github.com/qemu/qemu/compare/e8a011029362...98c7362b1efe

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

Reply via email to