Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 91e11db7bcc486db2dc2bdab94ac5de62c02ce9a
      
https://github.com/qemu/qemu/commit/91e11db7bcc486db2dc2bdab94ac5de62c02ce9a
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M python/qemu/machine/machine.py

  Log Message:
  -----------
  python/machine: move socket setup out of _base_args property

This property isn't meant to do much else besides return a list of
strings, so move this setup back out into _pre_launch().

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Ani Sinha <anisi...@redhat.com>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Message-id: 20230928044943.849073-2-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 612b3ba218092825467810b1a38de2026dac2bfc
      
https://github.com/qemu/qemu/commit/612b3ba218092825467810b1a38de2026dac2bfc
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M python/qemu/machine/machine.py

  Log Message:
  -----------
  python/machine: close sock_pair in cleanup path

If everything has gone smoothly, we'll already have closed the socket we
gave to the child during post_launch. The other half of the pair that we
gave to the QMP connection should, likewise, be definitively closed by
now.

However, in the cleanup path, it's possible we've created the socketpair
but flubbed the launch and need to clean up resources. These resources
*would* be handled by the garbage collector, but that can happen at
unpredictable times. Nicer to just clean them up synchronously on the
exit path, here.

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Ani Sinha <anisi...@redhat.com>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Message-id: 20230928044943.849073-3-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 5f263cb1ccfb6f038fe706d9876d1cea8871a83a
      
https://github.com/qemu/qemu/commit/5f263cb1ccfb6f038fe706d9876d1cea8871a83a
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M python/qemu/machine/console_socket.py

  Log Message:
  -----------
  python/console_socket: accept existing FD in initializer

Useful if we want to use ConsoleSocket() for a socket created by
socketpair().

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Ani Sinha <anisi...@redhat.com>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Message-id: 20230928044943.849073-4-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 1d4796cd008373a1c1657473f7c7e82eaf32ea1b
      
https://github.com/qemu/qemu/commit/1d4796cd008373a1c1657473f7c7e82eaf32ea1b
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M python/qemu/machine/machine.py

  Log Message:
  -----------
  python/machine: use socketpair() for console connections

Create a socketpair for the console output. This should help eliminate
race conditions around console text early in the boot process that might
otherwise have been dropped on the floor before being able to connect to
QEMU under "server,nowait".

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Ani Sinha <anisi...@redhat.com>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Message-id: 20230928044943.849073-5-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: d39673781361ed528c2afba7197f26481caab482
      
https://github.com/qemu/qemu/commit/d39673781361ed528c2afba7197f26481caab482
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M python/qemu/machine/qtest.py

  Log Message:
  -----------
  python/machine: use socketpair() for qtest connection

Like the QMP and console sockets, begin using socketpairs for the qtest
connection, too. After this patch, we'll be able to remove the vestigial
sock_dir argument, but that cleanup is best done in its own patch.

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Message-id: 20230928044943.849073-6-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 46d4747ab59721e657c0012d2f2ca6f3aeb7085d
      
https://github.com/qemu/qemu/commit/46d4747ab59721e657c0012d2f2ca6f3aeb7085d
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M python/qemu/machine/machine.py
    M python/qemu/machine/qtest.py
    M tests/avocado/acpi-bits.py
    M tests/avocado/avocado_qemu/__init__.py
    M tests/avocado/machine_aspeed.py
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/tests/copy-before-write

  Log Message:
  -----------
  python/machine: remove unused sock_dir argument

By using a socketpair for all of the sockets managed by the VM class and
its extensions, we don't need the sock_dir argument anymore, so remove
it.

We only added this argument so that we could specify a second, shorter
temporary directory for cases where the temp/log dirs were "too long" as
a socket name on macOS. We don't need it for this class now. In one
case, avocado testing takes over responsibility for creating an
appropriate sockdir.

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Message-id: 20230928044943.849073-7-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: ff2e08132f332b6b64d69774dd9a40a2b74fd04c
      
https://github.com/qemu/qemu/commit/ff2e08132f332b6b64d69774dd9a40a2b74fd04c
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/tests/nbd-multiconn

  Log Message:
  -----------
  Python/iotests: Add type hint for nbd module

The test bails gracefully if this module isn't installed, but linters
need a little help understanding that. It's enough to just declare the
type in this case.

(Fixes pylint complaining about use of an uninitialized variable because
it isn't wise enough to understand the notrun call is noreturn.)

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Message-id: 20231006195243.3131140-2-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: acf873873ae38e68371b0c53c42d3530636ff94e
      
https://github.com/qemu/qemu/commit/acf873873ae38e68371b0c53c42d3530636ff94e
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M python/qemu/qmp/protocol.py

  Log Message:
  -----------
  python/qmp: remove Server.wait_closed() call for Python 3.12

This patch is a backport from
https://gitlab.com/qemu-project/python-qemu-qmp/-/commit/e03a3334b6a477beb09b293708632f2c06fe9f61

According to Guido in https://github.com/python/cpython/issues/104344 ,
this call was never meant to wait for the server to shut down - that is
handled synchronously - but instead, this waits for all connections to
close. Or, it would have, if it wasn't broken since it was introduced.

3.12 fixes the bug, which now causes a hang in our code. The fix is just
to remove the wait.

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Message-id: 20231006195243.3131140-3-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 761f241c97739f746dcf35d3f7a6ccc1e284d1dc
      
https://github.com/qemu/qemu/commit/761f241c97739f746dcf35d3f7a6ccc1e284d1dc
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: fix error message to say Python 3.8

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Message-id: 20231006195243.3131140-4-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 19a39e270bdedc3c526b2a53913d8fff88c907bf
      
https://github.com/qemu/qemu/commit/19a39e270bdedc3c526b2a53913d8fff88c907bf
  Author: John Snow <js...@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M configure
    M python/setup.cfg
    M tests/docker/dockerfiles/python.docker

  Log Message:
  -----------
  Python: Enable python3.12 support

Python 3.12 has released, so update the test infrastructure to test
against this version. Update the configure script to look for it when an
explicit Python interpreter isn't chosen.

Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Message-id: 20231006195243.3131140-5-js...@redhat.com
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 3cc72cdbb2235b1001bab760712ef6bf543752c3
      
https://github.com/qemu/qemu/commit/3cc72cdbb2235b1001bab760712ef6bf543752c3
  Author: Thomas Huth <th...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M subprojects/libvduse/libvduse.c

  Log Message:
  -----------
  libvduse: Fix compiler warning with -Wshadow=local

No need to declare a new variable with the same name here,
we can simple re-use the one from the top of the function.
With this change, the file now compiles fine with -Wshadow=local.

Signed-off-by: Thomas Huth <th...@redhat.com>
Message-ID: <20231006120819.480792-1-th...@redhat.com>
Reviewed-by: Xie Yongji <xieyon...@bytedance.com>
Signed-off-by: Markus Armbruster <arm...@redhat.com>


  Commit: 61499d87f4eb7594fb3fcbbbcbf5bf8b05fdd1be
      
https://github.com/qemu/qemu/commit/61499d87f4eb7594fb3fcbbbcbf5bf8b05fdd1be
  Author: Thomas Huth <th...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M subprojects/libvhost-user/libvhost-user.c

  Log Message:
  -----------
  libvhost-user: Fix compiler warning with -Wshadow=local

Rename shadowing variables to make this code compilable
with -Wshadow=local.

Signed-off-by: Thomas Huth <th...@redhat.com>
Message-ID: <20231006121129.487251-1-th...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Markus Armbruster <arm...@redhat.com>


  Commit: 9e7d33941f2070d00090395addf476fd1b0a3d6f
      
https://github.com/qemu/qemu/commit/9e7d33941f2070d00090395addf476fd1b0a3d6f
  Author: Thomas Huth <th...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M include/hw/virtio/virtio-gpu.h

  Log Message:
  -----------
  hw/virtio/virtio-gpu: Fix compiler warning when compiling with -Wshadow

Avoid using trivial variable names in macros, otherwise we get
the following compiler warning when compiling with -Wshadow=local:

In file included from ../../qemu/hw/display/virtio-gpu-virgl.c:19:
../../home/thuth/devel/qemu/hw/display/virtio-gpu-virgl.c:
 In function ‘virgl_cmd_submit_3d’:
../../qemu/include/hw/virtio/virtio-gpu.h:228:16: error: declaration of ‘s’
 shadows a previous local [-Werror=shadow=compatible-local]
  228 |         size_t s;
      |                ^
../../qemu/hw/display/virtio-gpu-virgl.c:215:5: note: in expansion of macro
 ‘VIRTIO_GPU_FILL_CMD’
  215 |     VIRTIO_GPU_FILL_CMD(cs);
      |     ^~~~~~~~~~~~~~~~~~~
../../qemu/hw/display/virtio-gpu-virgl.c:213:12: note: shadowed declaration
 is here
  213 |     size_t s;
      |            ^
cc1: all warnings being treated as errors

Signed-off-by: Thomas Huth <th...@redhat.com>
Message-ID: <20231009084559.41427-1-th...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: Markus Armbruster <arm...@redhat.com>


  Commit: 85fc35afa93c7320d1641d344d0c5dfbe341d087
      
https://github.com/qemu/qemu/commit/85fc35afa93c7320d1641d344d0c5dfbe341d087
  Author: Yuval Shaia <yuval.shaia...@gmail.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  hw/pvrdma: Protect against buggy or malicious guest driver

Guest driver allocates and initialize page tables to be used as a ring
of descriptors for CQ and async events.
The page table that represents the ring, along with the number of pages
in the page table is passed to the device.
Currently our device supports only one page table for a ring.

Let's make sure that the number of page table entries the driver
reports, do not exceeds the one page table size.

Reported-by: Soul Chen <soulchen8...@gmail.com>
Signed-off-by: Yuval Shaia <yuval.shaia...@gmail.com>
Fixes: CVE-2023-1544
Message-ID: <20230301142926.18686-1-yuval.shaia...@gmail.com>
Signed-off-by: Thomas Huth <th...@redhat.com>


  Commit: e9a54265f533f4df957ee9ced3304df8c3ef2bea
      
https://github.com/qemu/qemu/commit/e9a54265f533f4df957ee9ced3304df8c3ef2bea
  Author: Thomas Huth <th...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M MAINTAINERS
    M docs/about/deprecated.rst
    M hw/rdma/vmw/pvrdma_main.c

  Log Message:
  -----------
  hw/rdma: Deprecate the pvrdma device and the rdma subsystem

This subsystem is said to be in a bad shape (see e.g. [1], [2]
and [3]), and nobody seems to feel responsible to pick up patches
for this and send them via a pull request. For example there is
a patch for a CVE-worthy bug posted more than half a year ago [4]
which has never been merged. Thus let's mark it as deprecated and
finally remove it unless somebody steps up and improves the code
quality and adds proper regression tests.

[1] 
https://lore.kernel.org/qemu-devel/20230918144206.560120-1-arm...@redhat.com/
[2] https://lore.kernel.org/qemu-devel/zqnojjoqofu73...@redhat.com/
[3] 
https://lore.kernel.org/qemu-devel/1054981c-e8ae-c676-3b04-eeb030e11...@tls.msk.ru/
[4] 
https://lore.kernel.org/qemu-devel/20230301142926.18686-1-yuval.shaia...@gmail.com/

Message-ID: <20230927133019.228495-1-th...@redhat.com>
Acked-by: Juan Quintela <quint...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Signed-off-by: Thomas Huth <th...@redhat.com>


  Commit: d0353b6e7b3f9ba6132f0fa9b3605e4d4275af0c
      
https://github.com/qemu/qemu/commit/d0353b6e7b3f9ba6132f0fa9b3605e4d4275af0c
  Author: Chris Rauer <cra...@google.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

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

  Log Message:
  -----------
  tests/qtest: Fix npcm7xx_timer-test.c flaky test

npcm7xx_timer-test occasionally fails due to the state of the timers
from the previous test iteration.  Advancing the clock step after the
reset resolves this issue.

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/1897
Signed-off-by: Chris Rauer <cra...@google.com>
Message-ID: <20230929000831.691559-1-cra...@google.com>
Signed-off-by: Thomas Huth <th...@redhat.com>


  Commit: f912f1bdb6b4237515e01a4ba646b2a7daefebed
      
https://github.com/qemu/qemu/commit/f912f1bdb6b4237515e01a4ba646b2a7daefebed
  Author: Klaus Jensen <k.jen...@samsung.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/misc/i2c-echo.c

  Log Message:
  -----------
  hw/misc/i2c-echo: add copyright/license note

Add missing copyright and license notice. Also add a short description
of the device.

Signed-off-by: Klaus Jensen <k.jen...@samsung.com>
Message-ID: <20230823-i2c-echo-fixes-v1-1-ccc05a602...@samsung.com>
Signed-off-by: Thomas Huth <th...@redhat.com>


  Commit: a8500f804313ec7be233b329195cc8476e4190eb
      
https://github.com/qemu/qemu/commit/a8500f804313ec7be233b329195cc8476e4190eb
  Author: Klaus Jensen <k.jen...@samsung.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/misc/Kconfig
    M hw/misc/meson.build

  Log Message:
  -----------
  hw/misc/Kconfig: add switch for i2c-echo

Associate i2c-echo with TEST_DEVICES and add a dependency on I2C.

Signed-off-by: Klaus Jensen <k.jen...@samsung.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Thomas Huth <th...@redhat.com>
Message-ID: <20230823-i2c-echo-fixes-v1-2-ccc05a602...@samsung.com>
Signed-off-by: Thomas Huth <th...@redhat.com>


  Commit: abf8c47f44f7a9b6c66214e9a0c59336e8728074
      
https://github.com/qemu/qemu/commit/abf8c47f44f7a9b6c66214e9a0c59336e8728074
  Author: Thomas Huth <th...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Add include/sysemu/qtest.h to the qtest section

We already list system/qtest.c in the qtest section, so the
corresponding header file should be listed here, too.

Message-ID: <20231012111401.871711-1-th...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Signed-off-by: Thomas Huth <th...@redhat.com>


  Commit: 552b25229cf7c65d31ac9a60b1d9202672dd9c61
      
https://github.com/qemu/qemu/commit/552b25229cf7c65d31ac9a60b1d9202672dd9c61
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/virtio/vhost-user.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost-backend.h

  Log Message:
  -----------
  vhost: Rework memslot filtering and fix "used_memslot" tracking

Having multiple vhost devices, some filtering out fd-less memslots and
some not, can mess up the "used_memslot" accounting. Consequently our
"free memslot" checks become unreliable and we might run out of free
memslots at runtime later.

An example sequence which can trigger a potential issue that involves
different vhost backends (vhost-kernel and vhost-user) and hotplugged
memory devices can be found at [1].

Let's make the filtering mechanism less generic and distinguish between
backends that support private memslots (without a fd) and ones that only
support shared memslots (with a fd). Track the used_memslots for both
cases separately and use the corresponding value when required.

Note: Most probably we should filter out MAP_PRIVATE fd-based RAM regions
(for example, via memory-backend-memfd,...,shared=off or as default with
 memory-backend-file) as well. When not using MAP_SHARED, it might not work
as expected. Add a TODO for now.

[1] https://lkml.kernel.org/r/fad9136f-08d3-3fd9-71a1-502069c00...@redhat.com

Message-ID: <20230926185738.277351-2-da...@redhat.com>
Fixes: 988a27754bbb ("vhost: allow backends to filter memory sections")
Cc: Tiwei Bie <tiwei....@intel.com>
Acked-by: Igor Mammedov <imamm...@redhat.com>
Reviewed-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 309ebfa691eb73648e77fc5a775986c12951df67
      
https://github.com/qemu/qemu/commit/309ebfa691eb73648e77fc5a775986c12951df67
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/virtio/vhost-user.c
    M hw/virtio/vhost-vdpa.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost-backend.h

  Log Message:
  -----------
  vhost: Remove vhost_backend_can_merge() callback

Checking whether the memory regions are equal is sufficient: if they are
equal, then most certainly the contained fd is equal.

The whole vhost-user memslot handling is suboptimal and overly
complicated. We shouldn't have to lookup a RAM memory regions we got
notified about in vhost_user_get_mr_data() using a host pointer. But that
requires a bigger rework -- especially an alternative vhost_set_mem_table()
backend call that simply consumes MemoryRegionSections.

For now, let's just drop vhost_backend_can_merge().

Message-ID: <20230926185738.277351-3-da...@redhat.com>
Acked-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Igor Mammedov <imamm...@redhat.com>
Acked-by: Igor Mammedov <imamm...@redhat.com>
Reviewed-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 022f033bd77a54a395f9df50a3201f059b80a2d9
      
https://github.com/qemu/qemu/commit/022f033bd77a54a395f9df50a3201f059b80a2d9
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M include/exec/cpu-common.h
    M system/physmem.c

  Log Message:
  -----------
  softmmu/physmem: Fixup qemu_ram_block_from_host() documentation

Let's fixup the documentation (e.g., removing traces of the ram_addr
parameter that no longer exists) and move it to the header file while at
it.

Message-ID: <20230926185738.277351-4-da...@redhat.com>
Suggested-by: Igor Mammedov <imamm...@redhat.com>
Acked-by: Igor Mammedov <imamm...@redhat.com>
Reviewed-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 5b23186a954a88ecabb2696cd846e0e67a9e349c
      
https://github.com/qemu/qemu/commit/5b23186a954a88ecabb2696cd846e0e67a9e349c
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/stubs/kvm-stub.c
    M hw/mem/memory-device.c
    M include/sysemu/kvm.h
    M include/sysemu/kvm_int.h

  Log Message:
  -----------
  kvm: Return number of free memslots

Let's return the number of free slots instead of only checking if there
is a free slot. While at it, check all address spaces, which will also
consider SMM under x86 correctly.

This is a preparation for memory devices that consume multiple memslots.

Message-ID: <20230926185738.277351-5-da...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 8c49951c4ad9798cbe19f74f7645393ee625c180
      
https://github.com/qemu/qemu/commit/8c49951c4ad9798cbe19f74f7645393ee625c180
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/mem/memory-device.c
    M hw/virtio/vhost-stub.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost.h

  Log Message:
  -----------
  vhost: Return number of free memslots

Let's return the number of free slots instead of only checking if there
is a free slot. Required to support memory devices that consume multiple
memslots.

This is a preparation for memory devices that consume multiple memslots.

Message-ID: <20230926185738.277351-6-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 7975feece9053b73a2b7b015840f85e9f6ad25db
      
https://github.com/qemu/qemu/commit/7975feece9053b73a2b7b015840f85e9f6ad25db
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/mem/memory-device.c
    M include/hw/mem/memory-device.h

  Log Message:
  -----------
  memory-device: Support memory devices with multiple memslots

We want to support memory devices that have a memory region container as
device memory region that maps multiple RAM memory regions. Let's start
by supporting memory devices that statically map multiple RAM memory
regions and, thereby, consume multiple memslots.

We already have one device that uses a container as device memory region:
NVDIMMs. However, a NVDIMM always ends up consuming exactly one memslot.

Let's add support for that by asking the memory device via a new
callback how many memslots it requires.

Message-ID: <20230926185738.277351-7-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 759bac673a8de9d6db50b0f96caa7b70cf0d1694
      
https://github.com/qemu/qemu/commit/759bac673a8de9d6db50b0f96caa7b70cf0d1694
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M MAINTAINERS
    A stubs/memory_device.c
    M stubs/meson.build
    R stubs/qmp_memory_device.c

  Log Message:
  -----------
  stubs: Rename qmp_memory_device.c to memory_device.c

We want to place non-qmp stubs in there, so let's rename it. While at
it, put it into the MAINTAINERS file under "Memory devices".

Message-ID: <20230926185738.277351-8-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: f9716f4b0d6eaee5d0b1ccf428a102e0c148fa30
      
https://github.com/qemu/qemu/commit/f9716f4b0d6eaee5d0b1ccf428a102e0c148fa30
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/mem/memory-device.c
    M include/hw/boards.h

  Log Message:
  -----------
  memory-device: Track required and actually used memslots in DeviceMemoryState

Let's track how many memslots are required by plugged memory devices and
how many are currently actually getting used by plugged memory
devices.

"required - used" is the number of reserved memslots. For now, the number
of used and required memslots is always equal, and there are no
reservations. This is a preparation for memory devices that want to
dynamically consume memslots after initially specifying how many they
require -- where we'll end up with reserved memslots.

To track the number of used memslots, create a new address space for
our device memory and register a memory listener (add/remove) for that
address space.

Message-ID: <20230926185738.277351-9-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 766aa0a654d887ad8fed2f116c84a89e20102c14
      
https://github.com/qemu/qemu/commit/766aa0a654d887ad8fed2f116c84a89e20102c14
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/mem/memory-device.c
    M hw/virtio/vhost.c
    M include/hw/mem/memory-device.h
    M stubs/memory_device.c

  Log Message:
  -----------
  memory-device,vhost: Support memory devices that dynamically consume memslots

We want to support memory devices that have a dynamically managed memory
region container as device memory region. This device memory region maps
multiple RAM memory subregions (e.g., aliases to the same RAM memory
region), whereby these subregions can be (un)mapped on demand.

Each RAM subregion will consume a memslot in KVM and vhost, resulting in
such a new device consuming memslots dynamically, and initially usually
0. We already track the number of used vs. required memslots for all
memslots. From that, we can derive the number of reserved memslots that
must not be used otherwise.

The target use case is virtio-mem and the hyper-v balloon, which will
dynamically map aliases to RAM memory region into their device memory
region container.

Properly document what's supported and what's not and extend the vhost
memslot check accordingly.

Message-ID: <20230926185738.277351-10-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 16ab2eda57233787c2145bc5eaeabcc2852bc4c3
      
https://github.com/qemu/qemu/commit/16ab2eda57233787c2145bc5eaeabcc2852bc4c3
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/stubs/kvm-stub.c
    M include/sysemu/kvm.h

  Log Message:
  -----------
  kvm: Add stub for kvm_get_max_memslots()

We'll need the stub soon from memory device context.

While at it, use "unsigned int" as return value and place the
declaration next to kvm_get_free_memslots().

Message-ID: <20230926185738.277351-11-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: cd89c065b06d49691ecb1f3707849472acdf3ea5
      
https://github.com/qemu/qemu/commit/cd89c065b06d49691ecb1f3707849472acdf3ea5
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/virtio/vhost-stub.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost.h

  Log Message:
  -----------
  vhost: Add vhost_get_max_memslots()

Let's add vhost_get_max_memslots().

Message-ID: <20230926185738.277351-12-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: a2335113aeda1cddad3dc4a76f2ace47a00d7ac9
      
https://github.com/qemu/qemu/commit/a2335113aeda1cddad3dc4a76f2ace47a00d7ac9
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/mem/memory-device.c
    M hw/virtio/vhost.c
    M include/hw/boards.h
    M include/hw/mem/memory-device.h
    M stubs/memory_device.c

  Log Message:
  -----------
  memory-device,vhost: Support automatic decision on the number of memslots

We want to support memory devices that can automatically decide how many
memslots they will use. In the worst case, they have to use a single
memslot.

The target use cases are virtio-mem and the hyper-v balloon.

Let's calculate a reasonable limit such a memory device may use, and
instruct the device to make a decision based on that limit. Use a simple
heuristic that considers:
* A memslot soft-limit for all memory devices of 256; also, to not
  consume too many memslots -- which could harm performance.
* Actually still free and unreserved memslots
* The percentage of the remaining device memory region that memory device
  will occupy.

Further, while we properly check before plugging a memory device whether
there still is are free memslots, we have other memslot consumers (such as
boot memory, PCI BARs) that don't perform any checks and might dynamically
consume memslots without any prior reservation. So we might succeed in
plugging a memory device, but once we dynamically map a PCI BAR we would
be in trouble. Doing accounting / reservation / checks for all such
users is problematic (e.g., sometimes we might temporarily split boot
memory into two memslots, triggered by the BIOS).

We use the historic magic memslot number of 509 as orientation to when
supporting 256 memory devices -> memslots (leaving 253 for boot memory and
other devices) has been proven to work reliable. We'll fallback to
suggesting a single memslot if we don't have at least 509 total memslots.

Plugging vhost devices with less than 509 memslots available while we
have memory devices plugged that consume multiple memslots due to
automatic decisions can be problematic. Most configurations might just fail
due to "limit < used + reserved", however, it can also happen that these
memory devices would suddenly consume memslots that would actually be
required by other memslot consumers (boot, PCI BARs) later. Note that this
has always been sketchy with vhost devices that support only a small number
of memslots; but we don't want to make it any worse.So let's keep it simple
and simply reject plugging such vhost devices in such a configuration.

Eventually, all vhost devices that want to be fully compatible with such
memory devices should support a decent number of memslots (>= 509).

Message-ID: <20230926185738.277351-13-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: aa5317ef7cbf3a322b423a7b63625959b82b1a62
      
https://github.com/qemu/qemu/commit/aa5317ef7cbf3a322b423a7b63625959b82b1a62
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M include/exec/memory.h
    M system/memory.c

  Log Message:
  -----------
  memory: Clarify mapping requirements for RamDiscardManager

We really only care about the RAM memory region not being mapped into
an address space yet as long as we're still setting up the
RamDiscardManager. Once mapped into an address space, memory notifiers
would get notified about such a region and any attempts to modify the
RamDiscardManager would be wrong.

While "mapped into an address space" is easy to check for RAM regions that
are mapped directly (following the ->container links), it's harder to
check when such regions are mapped indirectly via aliases. For now, we can
only detect that a region is mapped through an alias (->mapped_via_alias),
but we don't have a handle on these aliases to follow all their ->container
links to test if they are eventually mapped into an address space.

So relax the assertion in memory_region_set_ram_discard_manager(),
remove the check in memory_region_get_ram_discard_manager() and clarify
the doc.

Message-ID: <20230926185738.277351-14-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: a45171dba74a376354746e0c83dc15616b42614f
      
https://github.com/qemu/qemu/commit/a45171dba74a376354746e0c83dc15616b42614f
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/virtio/virtio-mem.c

  Log Message:
  -----------
  virtio-mem: Pass non-const VirtIOMEM via virtio_mem_range_cb

Let's prepare for a user that has to modify the VirtIOMEM device state.

Message-ID: <20230926185738.277351-15-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 884a0c20e624275e2dc946c4b8abba9ccbaf4167
      
https://github.com/qemu/qemu/commit/884a0c20e624275e2dc946c4b8abba9ccbaf4167
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/virtio/virtio-mem.c

  Log Message:
  -----------
  virtio-mem: Update state to match bitmap as soon as it's been migrated

It's cleaner and future-proof to just have other state that depends on the
bitmap state to be updated as soon as possible when restoring the bitmap.

So factor out informing RamDiscardListener into a functon and call it in
case of early migration right after we restored the bitmap.

Message-ID: <20230926185738.277351-16-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 177f9b1ee4643626faa0caac20f06d77ae443fe8
      
https://github.com/qemu/qemu/commit/177f9b1ee4643626faa0caac20f06d77ae443fe8
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/virtio/virtio-mem-pci.c
    M hw/virtio/virtio-mem.c
    M include/hw/virtio/virtio-mem.h

  Log Message:
  -----------
  virtio-mem: Expose device memory dynamically via multiple memslots if enabled

Having large virtio-mem devices that only expose little memory to a VM
is currently a problem: we map the whole sparse memory region into the
guest using a single memslot, resulting in one gigantic memslot in KVM.
KVM allocates metadata for the whole memslot, which can result in quite
some memory waste.

Assuming we have a 1 TiB virtio-mem device and only expose little (e.g.,
1 GiB) memory, we would create a single 1 TiB memslot and KVM has to
allocate metadata for that 1 TiB memslot: on x86, this implies allocating
a significant amount of memory for metadata:

(1) RMAP: 8 bytes per 4 KiB, 8 bytes per 2 MiB, 8 bytes per 1 GiB
    -> For 1 TiB: 2147483648 + 4194304 + 8192 = ~ 2 GiB (0.2 %)

    With the TDP MMU (cat /sys/module/kvm/parameters/tdp_mmu) this gets
    allocated lazily when required for nested VMs
(2) gfn_track: 2 bytes per 4 KiB
    -> For 1 TiB: 536870912 = ~512 MiB (0.05 %)
(3) lpage_info: 4 bytes per 2 MiB, 4 bytes per 1 GiB
    -> For 1 TiB: 2097152 + 4096 = ~2 MiB (0.0002 %)
(4) 2x dirty bitmaps for tracking: 2x 1 bit per 4 KiB page
    -> For 1 TiB: 536870912 = 64 MiB (0.006 %)

So we primarily care about (1) and (2). The bad thing is, that the
memory consumption *doubles* once SMM is enabled, because we create the
memslot once for !SMM and once for SMM.

Having a 1 TiB memslot without the TDP MMU consumes around:
* With SMM: 5 GiB
* Without SMM: 2.5 GiB
Having a 1 TiB memslot with the TDP MMU consumes around:
* With SMM: 1 GiB
* Without SMM: 512 MiB

... and that's really something we want to optimize, to be able to just
start a VM with small boot memory (e.g., 4 GiB) and a virtio-mem device
that can grow very large (e.g., 1 TiB).

Consequently, using multiple memslots and only mapping the memslots we
really need can significantly reduce memory waste and speed up
memslot-related operations. Let's expose the sparse RAM memory region using
multiple memslots, mapping only the memslots we currently need into our
device memory region container.

The feature can be enabled using "dynamic-memslots=on" and requires
"unplugged-inaccessible=on", which is nowadays the default.

Once enabled, we'll auto-detect the number of memslots to use based on the
memslot limit provided by the core. We'll use at most 1 memslot per
gigabyte. Note that our global limit of memslots accross all memory devices
is currently set to 256: even with multiple large virtio-mem devices,
we'd still have a sane limit on the number of memslots used.

The default is to not dynamically map memslot for now
("dynamic-memslots=off"). The optimization must be enabled manually,
because some vhost setups (e.g., hotplug of vhost-user devices) might be
problematic until we support more memslots especially in vhost-user backends.

Note that "dynamic-memslots=on" is just a hint that multiple memslots
*may* be used for internal optimizations, not that multiple memslots
*must* be used. The actual number of memslots that are used is an
internal detail: for example, once memslot metadata is no longer an
issue, we could simply stop optimizing for that. Migration source and
destination can differ on the setting of "dynamic-memslots".

Message-ID: <20230926185738.277351-17-da...@redhat.com>
Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: 533f5d667909177f2890fca0bd64ad67297d7ba6
      
https://github.com/qemu/qemu/commit/533f5d667909177f2890fca0bd64ad67297d7ba6
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/virtio/vhost.c
    M include/exec/memory.h
    M system/memory.c

  Log Message:
  -----------
  memory,vhost: Allow for marking memory device memory regions unmergeable

Let's allow for marking memory regions unmergeable, to teach
flatview code and vhost to not merge adjacent aliases to the same memory
region into a larger memory section; instead, we want separate aliases to
stay separate such that we can atomically map/unmap aliases without
affecting other aliases.

This is desired for virtio-mem mapping device memory located on a RAM
memory region via multiple aliases into a memory region container,
resulting in separate memslots that can get (un)mapped atomically.

As an example with virtio-mem, the layout would look something like this:
  [...]
  0000000240000000-00000020bfffffff (prio 0, i/o): device-memory
    0000000240000000-000000043fffffff (prio 0, i/o): virtio-mem
      0000000240000000-000000027fffffff (prio 0, ram): alias memslot-0 @mem2 
0000000000000000-000000003fffffff
      0000000280000000-00000002bfffffff (prio 0, ram): alias memslot-1 @mem2 
0000000040000000-000000007fffffff
      00000002c0000000-00000002ffffffff (prio 0, ram): alias memslot-2 @mem2 
0000000080000000-00000000bfffffff
  [...]

Without unmergable memory regions, all three memslots would get merged into
a single memory section. For example, when mapping another alias (e.g.,
virtio-mem-memslot-3) or when unmapping any of the mapped aliases,
memory listeners will first get notified about the removal of the big
memory section to then get notified about re-adding of the new
(differently merged) memory section(s).

In an ideal world, memory listeners would be able to deal with that
atomically, like KVM nowadays does. However, (a) supporting this for other
memory listeners (vhost-user, vfio) is fairly hard: temporary removal
can result in all kinds of issues on concurrent access to guest memory;
and (b) this handling is undesired, because temporarily removing+readding
can consume quite some time on bigger memslots and is not efficient
(e.g., vfio unpinning and repinning pages ...).

Let's allow for marking a memory region unmergeable, such that we
can atomically (un)map aliases to the same memory region, similar to
(un)mapping individual DIMMs.

Similarly, teach vhost code to not redo what flatview core stopped doing:
don't merge such sections. Merging in vhost code is really only relevant
for handling random holes in boot memory where; without this merging,
the vhost-user backend wouldn't be able to mmap() some boot memory
backed on hugetlb.

We'll use this for virtio-mem next.

Message-ID: <20230926185738.277351-18-da...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: ee6398d862c108f8136a26d93d26680f3d222a3a
      
https://github.com/qemu/qemu/commit/ee6398d862c108f8136a26d93d26680f3d222a3a
  Author: David Hildenbrand <da...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M hw/virtio/virtio-mem.c

  Log Message:
  -----------
  virtio-mem: Mark memslot alias memory regions unmergeable

Let's mark the memslot alias memory regions as unmergable, such that
flatview and vhost won't merge adjacent memory region aliases and we can
atomically map/unmap individual aliases without affecting adjacent
alias memory regions.

This handles vhost and vfio in multiple-memslot mode correctly (which do
not support atomic memslot updates) and avoids the temporary removal of
large memslots, which can be an expensive operation. For example, vfio
might have to unpin + repin a lot of memory, which is undesired.

Message-ID: <20230926185738.277351-19-da...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>


  Commit: f51f90c65ed7706c3c4f7a889ce3d6b7ab75ef6a
      
https://github.com/qemu/qemu/commit/f51f90c65ed7706c3c4f7a889ce3d6b7ab75ef6a
  Author: Thomas Huth <th...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml

  Log Message:
  -----------
  gitlab-ci: Disable the riscv64-debian-cross-container by default

This job is failing since weeks. Let's mark it as manual until
it gets fixed.

Message-Id: <82aa015a-ca94-49ce-beec-679cc175b...@redhat.com>
Acked-by: Michael Tokarev <m...@tls.msk.ru>
Signed-off-by: Thomas Huth <th...@redhat.com>


  Commit: b170e92982665e69fcca9f2c63cd079450091603
      
https://github.com/qemu/qemu/commit/b170e92982665e69fcca9f2c63cd079450091603
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: rename the bdrv_co_block_status static function

bdrv_block_status exists as a wrapper for bdrv_block_status_above, but
the name of the (hypothetical) coroutine version, bdrv_co_block_status,
is squatted by a random static function.  Rename it to
bdrv_co_do_block_status.

Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Message-ID: <20230904100306.156197-2-pbonz...@redhat.com>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 1b88457eaae483d34d7ec40d2fcd9cf771982910
      
https://github.com/qemu/qemu/commit/1b88457eaae483d34d7ec40d2fcd9cf771982910
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

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

  Log Message:
  -----------
  block: complete public block status API

Include both coroutine and non-coroutine versions, the latter being
co_wrapper_mixed_bdrv_rdlock of the former.

Reviewed-by: Eric Blake <ebl...@redhat.com>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Message-ID: <20230904100306.156197-3-pbonz...@redhat.com>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 578ffa9ffb13d9a40790de2a3dda8730d4d43efc
      
https://github.com/qemu/qemu/commit/578ffa9ffb13d9a40790de2a3dda8730d4d43efc
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

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

  Log Message:
  -----------
  block: switch to co_wrapper for bdrv_is_allocated_*

Reviewed-by: Eric Blake <ebl...@redhat.com>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Message-ID: <20230904100306.156197-4-pbonz...@redhat.com>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: cc323997731bb1c2a9896fcca668b57d82d62153
      
https://github.com/qemu/qemu/commit/cc323997731bb1c2a9896fcca668b57d82d62153
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/copy-before-write.c
    M block/copy-on-read.c
    M block/io.c
    M block/mirror.c
    M block/qcow2.c
    M block/replication.c
    M block/stream.c
    M block/vvfat.c

  Log Message:
  -----------
  block: convert more bdrv_is_allocated* and bdrv_block_status* calls to 
coroutine versions

Reviewed-by: Eric Blake <ebl...@redhat.com>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Message-ID: <20230904100306.156197-5-pbonz...@redhat.com>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 903df115aaa5b9455ffde2894002f3f4820868bd
      
https://github.com/qemu/qemu/commit/903df115aaa5b9455ffde2894002f3f4820868bd
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/unit/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Don't call bdrv_graph_wrlock() in coroutine context

AIO callbacks are effectively coroutine_mixed_fn. If AIO requests don't
return immediately, their callback is called from the request coroutine.
This means that in AIO callbacks, we can't call no_coroutine_fns such as
bdrv_graph_wrlock(). Unfortunately test-bdrv-drain does so.

Change the test to use a BH to drop out of coroutine context, and add
coroutine_mixed_fn and no_coroutine_fn markers to clarify the context
each function runs in.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-2-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: e84c07bc73f63cd0251d9fd2c582ad051e27fb39
      
https://github.com/qemu/qemu/commit/e84c07bc73f63cd0251d9fd2c582ad051e27fb39
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M include/block/block-common.h
    M scripts/block-coroutine-wrapper.py

  Log Message:
  -----------
  block-coroutine-wrapper: Add no_co_wrapper_bdrv_rdlock functions

Add a new wrapper type for GRAPH_RDLOCK functions that should be called
from coroutine context.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-3-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 0e6bad1f2171385ec3ab7b9721dacfdb7dda70d7
      
https://github.com/qemu/qemu/commit/0e6bad1f2171385ec3ab7b9721dacfdb7dda70d7
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Take graph rdlock in bdrv_inactivate_all()

The function reads the parents list, so it needs to hold the graph lock.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-4-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 2b3912f1350971fbc2c04d986a1d0c60ae757c78
      
https://github.com/qemu/qemu/commit/2b3912f1350971fbc2c04d986a1d0c60ae757c78
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/block-backend.c
    M block/export/export.c
    M block/io.c
    M block/monitor/block-hmp-cmds.c
    M block/qapi-sysemu.c
    M block/replication.c
    M block/snapshot.c
    M blockdev.c
    M include/block/block-global-state.h
    M include/sysemu/block-backend-global-state.h
    M migration/block.c
    M migration/migration-hmp-cmds.c
    M tests/unit/test-block-iothread.c

  Log Message:
  -----------
  block: Mark bdrv_first_blk() and bdrv_is_root_node() GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_first_blk() and bdrv_is_root_node() need to hold a reader lock
for the graph. These functions are the only functions in block-backend.c
that access the parent list of a node.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-5-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: d05ab380db649d882396653f9830b67d84bffbe1
      
https://github.com/qemu/qemu/commit/d05ab380db649d882396653f9830b67d84bffbe1
  Author: Emanuele Giuseppe Esposito <eespo...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/io.c
    M include/block/block-io.h
    M include/block/block_int-common.h
    M tests/unit/test-bdrv-drain.c

  Log Message:
  -----------
  block: Mark drain related functions GRAPH_RDLOCK

Draining recursively traverses the graph, therefore we need to make sure
that also such accesses to the graph are protected by the graph rdlock.

There are 3 different drain callers to consider:
1. drain in the main loop: no issue at all, rdlock is nop.
2. drain in an iothread: rdlock only works in main loop or coroutines,
   so disallow it.
3. drain in a coroutine (regardless of AioContext): the drain mechanism
   takes care of scheduling a BH in the bs->aio_context that will
   then take care of perform the actual draining. This is wrong,
   because as pointed in (2) if bs->aio_context is an iothread then
   rdlock won't work. Therefore change bdrv_co_yield_to_drain to
   schedule the BH in the main loop.

Caller (2) also implies that we need to modify test-bdrv-drain.c to
disallow draining in the iothreads.

For some places, we know that they will hold the lock, but we don't have
the GRAPH_RDLOCK annotations yet. In this case, add assume_graph_lock()
with a FIXME comment. These places will be removed once everything is
properly annotated.

Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-6-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 7859c45a4662284fde4d6b5548263197e8aa4f24
      
https://github.com/qemu/qemu/commit/7859c45a4662284fde4d6b5548263197e8aa4f24
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Mark bdrv_parent_cb_resize() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_parent_cb_resize() need to hold a reader lock for the graph.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-7-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: a32e781838e7231f2239bde0ac2f105dc7072abb
      
https://github.com/qemu/qemu/commit/a32e781838e7231f2239bde0ac2f105dc7072abb
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/snapshot.c
    M blockdev.c
    M include/block/block_int-common.h
    M include/block/snapshot.h
    M qemu-img.c

  Log Message:
  -----------
  block: Mark bdrv_snapshot_fallback() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_snapshot_fallback() need to hold a reader lock for the graph
because it accesses the children list of a node.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-8-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: ce433d2942b78d38d31bdb7845dbf565c9dc1109
      
https://github.com/qemu/qemu/commit/ce433d2942b78d38d31bdb7845dbf565c9dc1109
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M include/block/block_int-common.h

  Log Message:
  -----------
  block: Take graph rdlock in parts of reopen

Reopen isn't easy with respect to locking because many of its functions
need to iterate the graph, some change it, and then you get some drains
in the middle where you can't hold any locks.

Therefore just documents most of the functions to be unlocked, and take
locks internally before accessing the graph.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-9-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 15f3f1fe57cd98ef0f45a25681b7a99dc3be0484
      
https://github.com/qemu/qemu/commit/15f3f1fe57cd98ef0f45a25681b7a99dc3be0484
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

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

  Log Message:
  -----------
  block: Mark bdrv_get_xdbg_block_graph() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_get_xdbg_block_graph() need to hold a reader lock for the graph
because it accesses the children list of a node.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-10-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: b7cfc7d58ec697a681a269036dc8f6444ffd495d
      
https://github.com/qemu/qemu/commit/b7cfc7d58ec697a681a269036dc8f6444ffd495d
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/nfs.c
    M block/qapi.c
    M block/raw-format.c
    M block/vhdx.c
    M block/vhdx.h
    M block/vmdk.c
    M blockdev.c
    M include/block/block-global-state.h
    M include/block/block_int-common.h
    M include/block/qapi.h
    M qemu-img.c

  Log Message:
  -----------
  block: Mark bdrv_refresh_filename() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_refresh_filename() need to hold a reader lock for the graph
because it accesses the children list of a node.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-11-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: c0fc5123ad33158f6f289a896b568b9adce7d1f2
      
https://github.com/qemu/qemu/commit/c0fc5123ad33158f6f289a896b568b9adce7d1f2
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/snapshot.c
    M include/block/block_int-io.h

  Log Message:
  -----------
  block: Mark bdrv_primary_child() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_primary_child() need to hold a reader lock for the graph
because it accesses the children list of a node.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-12-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 4026f1c4f320aa072fa4cd299545cbc97315e246
      
https://github.com/qemu/qemu/commit/4026f1c4f320aa072fa4cd299545cbc97315e246
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/backup.c
    M block/parallels.c
    M block/qcow.c
    M block/qcow2-bitmap.c
    M block/qcow2.c
    M block/qcow2.h
    M block/quorum.c
    M block/rbd.c
    M block/snapshot.c
    M block/vdi.c
    M block/vpc.c
    M block/vvfat.c
    M blockjob.c
    M include/block/block-io.h
    M include/block/block_int-io.h
    M include/block/qapi.h

  Log Message:
  -----------
  block: Mark bdrv_get_parent_name() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_get_parent_name() need to hold a reader lock for the graph
because it accesses the parents list of a node.

For some places, we know that they will hold the lock, but we don't have
the GRAPH_RDLOCK annotations yet. In this case, add assume_graph_lock()
with a FIXME comment. These places will be removed once everything is
properly annotated.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-13-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: bd131d6705b6996f2cdccee3db017af570ce91ad
      
https://github.com/qemu/qemu/commit/bd131d6705b6996f2cdccee3db017af570ce91ad
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/crypto.c
    M include/block/block-global-state.h
    M include/block/block_int-common.h
    M qemu-img.c

  Log Message:
  -----------
  block: Mark bdrv_amend_options() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_amend_options() need to hold a reader lock for the graph. This
removes an assume_graph_lock() call in crypto's implementation.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-14-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 0bb79c97fd8e355aca433f4331d7d45e7e72b4b6
      
https://github.com/qemu/qemu/commit/0bb79c97fd8e355aca433f4331d7d45e7e72b4b6
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/block-backend.c
    M block/qcow2-bitmap.c
    M block/qcow2-cache.c
    M block/qcow2-cluster.c
    M block/qcow2-refcount.c
    M block/qcow2.c
    M block/qcow2.h
    M block/replication.c
    M include/block/block-global-state.h
    M include/block/block_int-common.h

  Log Message:
  -----------
  qcow2: Mark qcow2_signal_corruption() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
qcow2_signal_corruption() need to hold a reader lock for the graph
because it calls bdrv_get_node_name(), which accesses the parents list
of a node.

For some places, we know that they will hold the lock, but we don't have
the GRAPH_RDLOCK annotations yet. In this case, add assume_graph_lock()
with a FIXME comment. These places will be removed once everything is
properly annotated.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-15-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: de4fed6f4ef7f2f1a1bce50a2cbbb7fdd397b7ec
      
https://github.com/qemu/qemu/commit/de4fed6f4ef7f2f1a1bce50a2cbbb7fdd397b7ec
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/qcow2.c

  Log Message:
  -----------
  qcow2: Mark qcow2_inactivate() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
qcow2_inactivate() need to hold a reader lock for the graph because it
calls bdrv_get_device_or_node_name(), which accesses the parents list of
a node.

qcow2_do_close() is a bit strange because it is called from different
contexts. If close_data_file = true, we know that we were called from
non-coroutine main loop context (more specifically, we're coming from
qcow2_close()) and can safely drop the reader lock temporarily with
bdrv_graph_rdunlock_main_loop() and acquire the writer lock.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-16-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 5155853e90388d9c8c5370bcbe1b6484a92ee710
      
https://github.com/qemu/qemu/commit/5155853e90388d9c8c5370bcbe1b6484a92ee710
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/qcow2-bitmap.c

  Log Message:
  -----------
  qcow2: Mark check_constraints_on_bitmap() GRAPH_RDLOCK

It still has an assume_graph_lock() call, but all of its callers are now
properly annotated to hold the graph lock. Update the function to be
GRAPH_RDLOCK as well and remove the assume_graph_lock().

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-17-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 277f2007ce187a6ff467579cb016824f80a2be10
      
https://github.com/qemu/qemu/commit/277f2007ce187a6ff467579cb016824f80a2be10
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/block-backend.c
    M block/commit.c
    M block/monitor/block-hmp-cmds.c
    M block/qapi-sysemu.c
    M blockdev.c
    M include/block/block-global-state.h

  Log Message:
  -----------
  block: Mark bdrv_op_is_blocked() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_op_is_blocked() need to hold a reader lock for the graph
because it calls bdrv_get_device_or_node_name(), which accesses the
parents list of a node.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-18-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 018f9dea9c905506c49f8f37c018470dddfc50f1
      
https://github.com/qemu/qemu/commit/018f9dea9c905506c49f8f37c018470dddfc50f1
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/bochs.c
    M block/cloop.c
    M block/curl.c
    M block/dmg.c
    M block/gluster.c
    M block/iscsi.c
    M block/nbd.c
    M block/rbd.c
    M include/block/block-io.h

  Log Message:
  -----------
  block: Mark bdrv_apply_auto_read_only() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_apply_auto_read_only() need to hold a reader lock for the graph
because it calls bdrv_can_set_read_only(), which indirectly accesses the
parents list of a node.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-19-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 3574499a1e5e420c3e72d0e283cfb2b13bce672e
      
https://github.com/qemu/qemu/commit/3574499a1e5e420c3e72d0e283cfb2b13bce672e
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/vmdk.c
    M include/block/block-io.h
    M include/block/block_int-common.h
    M qemu-io-cmds.c

  Log Message:
  -----------
  block: Mark bdrv_get_specific_info() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_get_specific_info() need to hold a reader lock for the graph.
This removes an assume_graph_lock() call in vmdk's implementation.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-20-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: b59b466071391cb76b39584e1558be2d0797c054
      
https://github.com/qemu/qemu/commit/b59b466071391cb76b39584e1558be2d0797c054
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M include/block/block_int-common.h
    M tests/unit/test-block-iothread.c

  Log Message:
  -----------
  block: Protect bs->parents with graph_lock

Almost all functions that access the parent link already take the graph
lock now. Add locking to the remaining user in a test case and finally
annotate the struct field itself as protected by the graph lock.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-21-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: 680e0cc40c5830ebcbfa0bce99bf932e1a4cf6c6
      
https://github.com/qemu/qemu/commit/680e0cc40c5830ebcbfa0bce99bf932e1a4cf6c6
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block.c
    M block/replication.c
    M include/block/block_int-common.h
    M tests/unit/test-bdrv-drain.c

  Log Message:
  -----------
  block: Protect bs->children with graph_lock

Almost all functions that access the child links already take the graph
lock now. Add locking to the remaining users and finally annotate the
struct field itself as protected by the graph lock.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-22-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: e6e964b8b021446c8d3d1f91c0208f653e9ec92c
      
https://github.com/qemu/qemu/commit/e6e964b8b021446c8d3d1f91c0208f653e9ec92c
  Author: Kevin Wolf <kw...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M block/graph-lock.c
    M include/block/graph-lock.h

  Log Message:
  -----------
  block: Add assertion for bdrv_graph_wrlock()

bdrv_graph_wrlock() can't run in a coroutine (because it polls) and
requires holding the BQL. We already have GLOBAL_STATE_CODE() to assert
the latter. Assert the former as well and add a no_coroutine_fn marker.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
Message-ID: <20230929145157.45443-23-kw...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>


  Commit: cc46a7ef3b05242896016cd2928a123ed711272f
      
https://github.com/qemu/qemu/commit/cc46a7ef3b05242896016cd2928a123ed711272f
  Author: Thomas Huth <th...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M contrib/vhost-user-gpu/vhost-user-gpu.c
    M contrib/vhost-user-gpu/vugpu.h

  Log Message:
  -----------
  contrib/vhost-user-gpu: Fix compiler warning when compiling with -Wshadow

Rename some variables to avoid compiler warnings when compiling
with -Wshadow=local.

Signed-off-by: Thomas Huth <th...@redhat.com>
Message-ID: <20231009083726.30301-1-th...@redhat.com>
Signed-off-by: Markus Armbruster <arm...@redhat.com>


  Commit: c35b2fb1fdc7f6926653cc6df289e5bd77ecbad3
      
https://github.com/qemu/qemu/commit/c35b2fb1fdc7f6926653cc6df289e5bd77ecbad3
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M target/i386/tcg/seg_helper.c

  Log Message:
  -----------
  target/i386: fix shadowed variable pasto

Commit a908985971a ("target/i386/seg_helper: introduce tss_set_busy",
2023-09-26) failed to use the tss_selector argument of the new function,
which was therefore unused.

This shows up as a #GP fault when booting old versions of 32-bit
Linux.

Fixes: a908985971a ("target/i386/seg_helper: introduce tss_set_busy", 
2023-09-26)
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Message-ID: <20231011135350.438492-1-pbonz...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Signed-off-by: Markus Armbruster <arm...@redhat.com>


  Commit: f187cfefd2993a4d3632aa41b86a08e01beb053f
      
https://github.com/qemu/qemu/commit/f187cfefd2993a4d3632aa41b86a08e01beb053f
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M python/qemu/qmp/legacy.py

  Log Message:
  -----------
  python/qemu/qmp/legacy: cmd(): drop cmd_id unused argument

The argument is unused, let's drop it for now, as we are going to
refactor the interface and don't want to refactor unused things.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-2-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 2cee9ca97d12fe8c6aac92485386fa62efed2409
      
https://github.com/qemu/qemu/commit/2cee9ca97d12fe8c6aac92485386fa62efed2409
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M python/qemu/qmp/qmp_shell.py

  Log Message:
  -----------
  qmp_shell.py: _fill_completion() use .command() instead of .cmd()

We just want to ignore failure, so we don't need low level .cmd(). This
helps further renaming .command() to .cmd().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-3-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 7f521b023bc288ef6bf3ea76add140f1db25169a
      
https://github.com/qemu/qemu/commit/7f521b023bc288ef6bf3ea76add140f1db25169a
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M scripts/cpu-x86-uarch-abi.py

  Log Message:
  -----------
  scripts/cpu-x86-uarch-abi.py: use .command() instead of .cmd()

Here we don't expect a failure. In case of failure we'll crash on
trying to access ['return']. Better is to use .command() that clearly
raises on failure.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-4-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 37274707f6f3868fae7e0055d9a703006fc142d0
      
https://github.com/qemu/qemu/commit/37274707f6f3868fae7e0055d9a703006fc142d0
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M python/qemu/machine/machine.py
    M python/qemu/qmp/legacy.py
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  python: rename QEMUMonitorProtocol.cmd() to cmd_raw()

Having cmd() and command() methods in one class doesn't look good.
Rename cmd() to cmd_raw(), to show its meaning better.

We also want to rename command() to cmd() in future, so this commit is
a necessary step.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-5-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 684750ab4f8a3ad69512b71532408be3ac2547d4
      
https://github.com/qemu/qemu/commit/684750ab4f8a3ad69512b71532408be3ac2547d4
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M docs/devel/testing.rst
    M python/qemu/machine/machine.py
    M python/qemu/qmp/legacy.py
    M python/qemu/qmp/qmp_shell.py
    M python/qemu/utils/qemu_ga_client.py
    M python/qemu/utils/qom.py
    M python/qemu/utils/qom_common.py
    M python/qemu/utils/qom_fuse.py
    M scripts/cpu-x86-uarch-abi.py
    M scripts/device-crash-test
    M scripts/render_block_graph.py
    M tests/avocado/avocado_qemu/__init__.py
    M tests/avocado/cpu_queries.py
    M tests/avocado/hotplug_cpu.py
    M tests/avocado/info_usernet.py
    M tests/avocado/machine_arm_integratorcp.py
    M tests/avocado/machine_aspeed.py
    M tests/avocado/machine_m68k_nextcube.py
    M tests/avocado/machine_mips_malta.py
    M tests/avocado/machine_s390_ccw_virtio.py
    M tests/avocado/migration.py
    M tests/avocado/pc_cpu_hotplug_props.py
    M tests/avocado/version.py
    M tests/avocado/virtio_check_params.py
    M tests/avocado/virtio_version.py
    M tests/avocado/x86_cpu_model_versions.py
    M tests/migration/guestperf/engine.py
    M tests/qemu-iotests/256
    M tests/qemu-iotests/257

  Log Message:
  -----------
  python/qemu: rename command() to cmd()

Use a shorter name. We are going to move in iotests from qmp() to
command() where possible. But command() is longer than qmp() and don't
look better. Let's rename.

You can simply grep for '\.command(' and for 'def command(' to check
that everything is updated (command() in tests/docker/docker.py is
unrelated).

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Cédric Le Goater <c...@kaod.org>
Reviewed-by: Juan Quintela <quint...@redhat.com>
Message-id: 20231006154125.1068348-6-vsement...@yandex-team.ru
[vsementsov: also update three occurrences in
   tests/avocado/machine_aspeed.py and keep r-b]
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 4e620ff48f31493d61c98c6770595b5b242b837d
      
https://github.com/qemu/qemu/commit/4e620ff48f31493d61c98c6770595b5b242b837d
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M python/qemu/machine/machine.py

  Log Message:
  -----------
  python/machine.py: upgrade vm.cmd() method

The method is not popular in iotests, we prefer use vm.qmp() and then
check success by hand. But that's not optimal. To simplify movement to
vm.cmd() let's support same interface improvements like in vm.qmp().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-7-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 3a8736cf1e069c2b93c194d71062f911ff2571e7
      
https://github.com/qemu/qemu/commit/3a8736cf1e069c2b93c194d71062f911ff2571e7
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  iotests: QemuStorageDaemon: add cmd() method like in QEMUMachine.

Add similar method for consistency.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-8-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: f7ccc3295b3d7c49d4a7a3d42242cd5b50111e35
      
https://github.com/qemu/qemu/commit/f7ccc3295b3d7c49d4a7a3d42242cd5b50111e35
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/041
    M tests/qemu-iotests/151
    M tests/qemu-iotests/152
    M tests/qemu-iotests/tests/migrate-bitmaps-test

  Log Message:
  -----------
  iotests: add some missed checks of qmp result

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-9-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: d24eb059faf321fb552cf96a2a1e88e5651347c1
      
https://github.com/qemu/qemu/commit/d24eb059faf321fb552cf96a2a1e88e5651347c1
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/040
    M tests/qemu-iotests/147
    M tests/qemu-iotests/155
    M tests/qemu-iotests/218
    M tests/qemu-iotests/296

  Log Message:
  -----------
  iotests: refactor some common qmp result checks into generic pattern

To simplify further conversion.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-10-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 1ada73fbea540c9b397b08da6f1110fced1c0840
      
https://github.com/qemu/qemu/commit/1ada73fbea540c9b397b08da6f1110fced1c0840
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/041
    M tests/qemu-iotests/196

  Log Message:
  -----------
  iotests: drop some extra semicolons

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-11-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: c5339030e64781bf8f0d80ab7c5044b5547df79b
      
https://github.com/qemu/qemu/commit/c5339030e64781bf8f0d80ab7c5044b5547df79b
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/040
    M tests/qemu-iotests/041
    M tests/qemu-iotests/129
    M tests/qemu-iotests/147
    M tests/qemu-iotests/155
    M tests/qemu-iotests/264
    M tests/qemu-iotests/295
    M tests/qemu-iotests/296
    M tests/qemu-iotests/tests/migrate-bitmaps-test
    M tests/qemu-iotests/tests/mirror-ready-cancel-error

  Log Message:
  -----------
  iotests: drop some extra ** in qmp() call

qmp() method supports passing dict (if it doesn't need substituting
'_' to '-' in keys). So, drop some extra '**' operators.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-12-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 39995e21261d19e44db00e0ebce2c5616703b29a
      
https://github.com/qemu/qemu/commit/39995e21261d19e44db00e0ebce2c5616703b29a
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  iotests.py: pause_job(): drop return value

The returned value is unused. It's simple to check by command

 git grep -B 3 '\.pause_job('

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-13-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 9acd49e29e5a3e388c0de0501e1308b507fd1fc4
      
https://github.com/qemu/qemu/commit/9acd49e29e5a3e388c0de0501e1308b507fd1fc4
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/vm/basevm.py

  Log Message:
  -----------
  tests/vm/basevm.py: use cmd() instead of qmp()

We don't expect failure here and need 'result' object. cmd() is better
in this case.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-14-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 25ad2cf6500db3b7f2d88de448791183d7614097
      
https://github.com/qemu/qemu/commit/25ad2cf6500db3b7f2d88de448791183d7614097
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    A scripts/python_qmp_updater.py

  Log Message:
  -----------
  scripts: add python_qmp_updater.py

A script, to update the pattern

    result = self.vm.qmp(...)
    self.assert_qmp(result, 'return', {})

(and some similar ones) into

    self.vm.cmd(...)

Used in the next commit
    "python: use vm.cmd() instead of vm.qmp() where appropriate"

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-15-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: b6aed193e5ecca32bb07e062f58f0daca06e7009
      
https://github.com/qemu/qemu/commit/b6aed193e5ecca32bb07e062f58f0daca06e7009
  Author: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
  Date:   2023-10-12 (Thu, 12 Oct 2023)

  Changed paths:
    M tests/avocado/vnc.py
    M tests/qemu-iotests/030
    M tests/qemu-iotests/040
    M tests/qemu-iotests/041
    M tests/qemu-iotests/045
    M tests/qemu-iotests/055
    M tests/qemu-iotests/056
    M tests/qemu-iotests/093
    M tests/qemu-iotests/118
    M tests/qemu-iotests/124
    M tests/qemu-iotests/129
    M tests/qemu-iotests/132
    M tests/qemu-iotests/139
    M tests/qemu-iotests/147
    M tests/qemu-iotests/151
    M tests/qemu-iotests/152
    M tests/qemu-iotests/155
    M tests/qemu-iotests/165
    M tests/qemu-iotests/196
    M tests/qemu-iotests/205
    M tests/qemu-iotests/218
    M tests/qemu-iotests/245
    M tests/qemu-iotests/264
    M tests/qemu-iotests/281
    M tests/qemu-iotests/295
    M tests/qemu-iotests/296
    M tests/qemu-iotests/298
    M tests/qemu-iotests/300
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/tests/backing-file-invalidation
    M tests/qemu-iotests/tests/copy-before-write
    M tests/qemu-iotests/tests/export-incoming-iothread
    M tests/qemu-iotests/tests/graph-changes-while-io
    M tests/qemu-iotests/tests/image-fleecing
    M tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test
    M tests/qemu-iotests/tests/migrate-bitmaps-test
    M tests/qemu-iotests/tests/migrate-during-backup
    M tests/qemu-iotests/tests/migration-permissions
    M tests/qemu-iotests/tests/mirror-ready-cancel-error
    M tests/qemu-iotests/tests/mirror-top-perms
    M tests/qemu-iotests/tests/nbd-multiconn
    M tests/qemu-iotests/tests/reopen-file
    M tests/qemu-iotests/tests/stream-error-on-reset
    M tests/qemu-iotests/tests/stream-under-throttle

  Log Message:
  -----------
  python: use vm.cmd() instead of vm.qmp() where appropriate

In many cases we just want an effect of qmp command and want to raise
on failure.  Use vm.cmd() method which does exactly this.

The commit is generated by command

  git grep -l '\.qmp(' | xargs ./scripts/python_qmp_updater.py

And then, fix self.assertRaises to expect ExecuteError exception in
tests/qemu-iotests/124

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-id: 20231006154125.1068348-16-vsement...@yandex-team.ru
Signed-off-by: John Snow <js...@redhat.com>


  Commit: 32f4916cfb569b6b3eb8a29e8aca586ab990920e
      
https://github.com/qemu/qemu/commit/32f4916cfb569b6b3eb8a29e8aca586ab990920e
  Author: Jiajie Chen <c...@jia.je>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M target/loongarch/cpu.h

  Log Message:
  -----------
  target/loongarch: fix ASXE flag conflict

HW_FLAGS_EUEN_ASXE acccidentally conflicts with HW_FLAGS_CRMD_PG,
enabling LASX instructions even when CSR_EUEN.ASXE=0.

Closes: https://gitlab.com/qemu-project/qemu/-/issues/1907
Signed-off-by: Jiajie Chen <c...@jia.je>
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
Reviewed-by: Song Gao <gaos...@loongson.cn>
Message-Id: <20230930112837.1871691-...@jia.je>
Signed-off-by: Song Gao <gaos...@loongson.cn>


  Commit: 5f1a3132c6281ed402f7d10190226fecd804c96e
      
https://github.com/qemu/qemu/commit/5f1a3132c6281ed402f7d10190226fecd804c96e
  Author: Song Gao <gaos...@loongson.cn>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M target/loongarch/disas.c
    M target/loongarch/insn_trans/trans_memory.c.inc
    M target/loongarch/insns.decode

  Log Message:
  -----------
  target/loongarch: Add preldx instruction

Resolve the issue of starting the Loongnix 20.5[1] system failure.

Logs:
    Loading Linux 4.19.0-19-loongson-3 ...
    Loading initial ramdisk ...
    PROGRESS CODE: V02010004 I0
    PROGRESS CODE: V03101019 I0
    Error: unknown opcode. 90000000003a3e6c: 0x382c6d82

[1] 
http://pkg.loongnix.cn/loongnix/isos/Loongnix-20.5/Loongnix-20.5.cartoon.gui.loongarch64.en.qcow2

Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Signed-off-by: Song Gao <gaos...@loongson.cn>
Message-Id: <20230905123910.3052023-1-gaos...@loongson.cn>


  Commit: 2cfdab739a18fcff36f10d42f796dcb35027c92f
      
https://github.com/qemu/qemu/commit/2cfdab739a18fcff36f10d42f796dcb35027c92f
  Author: Thomas Weißschuh <tho...@t-8ch.de>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M hw/loongarch/virt.c

  Log Message:
  -----------
  hw/loongarch: remove global loaderparams variable

Passing the struct around explicitly makes the control-flow more
obvious.

Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Song Gao <gaos...@loongson.cn>
Signed-off-by: Thomas Weißschuh <tho...@t-8ch.de>
Message-Id: <20231010-loongarch-loader-params-v2-1-512cc7959...@t-8ch.de>
Signed-off-by: Song Gao <gaos...@loongson.cn>


  Commit: cb041aed1b5befaaa563aaf75e094412b2063fec
      
https://github.com/qemu/qemu/commit/cb041aed1b5befaaa563aaf75e094412b2063fec
  Author: Philippe Mathieu-Daudé <phi...@linaro.org>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M hw/loongarch/Kconfig

  Log Message:
  -----------
  hw/loongarch/virt: Remove unused ISA UART

The LoongArch 'virt' machine doesn't use any ISA UART.
No need to build the device model, remove its Kconfig entry.

Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Song Gao <gaos...@loongson.cn>
Message-Id: <20231010135342.40219-2-phi...@linaro.org>
Signed-off-by: Song Gao <gaos...@loongson.cn>


  Commit: 3866e2f98ef4f9b84d920af31a98c4c642ff8d77
      
https://github.com/qemu/qemu/commit/3866e2f98ef4f9b84d920af31a98c4c642ff8d77
  Author: Philippe Mathieu-Daudé <phi...@linaro.org>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M hw/loongarch/Kconfig
    M hw/loongarch/virt.c
    M include/hw/loongarch/virt.h

  Log Message:
  -----------
  hw/loongarch/virt: Remove unused ISA Bus

The LoongArch 'virt' machine doesn't use its ISA I/O region.

If a ISA device were to be mapped there, there is no support
for ISA IRQ. Unlikely useful. Simply remove.

Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Song Gao <gaos...@loongson.cn>
Message-Id: <20231010135342.40219-3-phi...@linaro.org>
Signed-off-by: Song Gao <gaos...@loongson.cn>


  Commit: 89daabe385a58f52ee902c203bb9560f8c914e8f
      
https://github.com/qemu/qemu/commit/89daabe385a58f52ee902c203bb9560f8c914e8f
  Author: Song Gao <gaos...@loongson.cn>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M hw/loongarch/virt.c
    M tests/tcg/loongarch64/system/boot.S

  Log Message:
  -----------
  hw/loongarch/virt: Remove unused 'loongarch_virt_pm' region

The system test shutdown uses the 'loongarch_virt_pm' region.
We can use the write AcpiFadtData.sleep_clt register to realize the shutdown.

Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Signed-off-by: Song Gao <gaos...@loongson.cn>
Message-ID: <20231012072351.1409344-1-gaos...@loongson.cn>
Signed-off-by: Song Gao <gaos...@loongson.cn>


  Commit: 1bea6930ca7b9587ea8d8fbb77069b6a13aa031a
      
https://github.com/qemu/qemu/commit/1bea6930ca7b9587ea8d8fbb77069b6a13aa031a
  Author: Xiaojuan Yang <yangxiaoj...@loongson.cn>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  LoongArch: step down as general arch maintainer

I haven't really been working on LoongArch for some time now,
so let's remove myself from this entry.

Signed-off-by: Xiaojuan Yang <yangxiaoj...@loongson.cn>
Acked-by: Song Gao <gaos...@loongson.cn>
Message-Id: <20231012095135.1423071-1-yangxiaoj...@loongson.cn>
Signed-off-by: Song Gao <gaos...@loongson.cn>


  Commit: 97970dae534226f045ff08c77bdb8a25e19fa023
      
https://github.com/qemu/qemu/commit/97970dae534226f045ff08c77bdb8a25e19fa023
  Author: Jeuk Kim <jeuk20....@samsung.com>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M hw/ufs/lu.c
    M hw/ufs/ufs.c
    M tests/qtest/ufs-test.c

  Log Message:
  -----------
  hw/ufs: Fix code coverity issues

Fixed four ufs-related coverity issues.

The coverity issues and fixes are as follows

1. CID 1519042: Security issue with the rand() function
Changed to use a fixed value (0xab) instead of rand() as
the value for testing

2. CID 1519043: Dereference after null check
Removed useless (redundant) null checks

3. CID 1519050: Out-of-bounds access issue
Fix to pass an array type variable to find_first_bit and
find_next_bit using DECLARE_BITMAP()

4. CID 1519051: Out-of-bounds read issue
Fix incorrect range check for lun

Fix coverity CID: 1519042 1519043 1519050 1519051

Signed-off-by: Jeuk Kim <jeuk20....@samsung.com>


  Commit: ebca80bbdb5c1650e4b753a3d13b43634e7dfe05
      
https://github.com/qemu/qemu/commit/ebca80bbdb5c1650e4b753a3d13b43634e7dfe05
  Author: Jeuk Kim <jeuk20....@samsung.com>
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
    M include/block/ufs.h

  Log Message:
  -----------
  hw/ufs: Fix incorrect register fields

This patch fixes invalid ufs register fields.
This fixes an issue reported by Bin Meng that
caused ufs to fail over riscv.

Fixes: bc4e68d362ec ("hw/ufs: Initial commit for emulated 
Universal-Flash-Storage")
Signed-off-by: Jeuk Kim <jeuk20....@samsung.com>
Reported-by: Bin Meng <bm...@tinylab.org>
Reviewed-by: Bin Meng <bm...@tinylab.org>
Tested-by: Bin Meng <bm...@tinylab.org>


  Commit: bc2b89b38582b1cc7198428c9174fbbbf31245ad
      
https://github.com/qemu/qemu/commit/bc2b89b38582b1cc7198428c9174fbbbf31245ad
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  Date:   2023-10-16 (Mon, 16 Oct 2023)

  Changed paths:
    M MAINTAINERS
    M accel/kvm/kvm-all.c
    M accel/stubs/kvm-stub.c
    M hw/mem/memory-device.c
    M hw/virtio/vhost-stub.c
    M hw/virtio/vhost-user.c
    M hw/virtio/vhost-vdpa.c
    M hw/virtio/vhost.c
    M hw/virtio/virtio-mem-pci.c
    M hw/virtio/virtio-mem.c
    M include/exec/cpu-common.h
    M include/exec/memory.h
    M include/hw/boards.h
    M include/hw/mem/memory-device.h
    M include/hw/virtio/vhost-backend.h
    M include/hw/virtio/vhost.h
    M include/hw/virtio/virtio-mem.h
    M include/sysemu/kvm.h
    M include/sysemu/kvm_int.h
    A stubs/memory_device.c
    M stubs/meson.build
    R stubs/qmp_memory_device.c
    M system/memory.c
    M system/physmem.c

  Log Message:
  -----------
  Merge tag 'mem-2023-10-12' of https://github.com/davidhildenbrand/qemu into 
staging

Hi,

"Host Memory Backends" and "Memory devices" queue ("mem"):
- Support memory devices with multiple memslots
- Support memory devices that dynamically consume memslots
- Support memory devices that can automatically decide on the number of
  memslots to use
- virtio-mem support for exposing memory dynamically via multiple
  memslots
- Some required cleanups/refactorings

# -----BEGIN PGP SIGNATURE-----
#
# iQJFBAABCAAvFiEEG9nKrXNcTDpGDfzKTd4Q9wD/g1oFAmUn+XMRHGRhdmlkQHJl
# ZGhhdC5jb20ACgkQTd4Q9wD/g1qDHA//T01suTa+uzrcoJHoMWN11S47WnAmbuTo
# vVakucLBPMJAa9xZeCy3OavXaVGpHkw+t6g3OFknof0LfQ5/j9iE3Q1PxURN7g5j
# SJ2WJXCoceM6T4TMhPvVvgEaYjFmESqZB5FZgedMT0QRyhAxMuF9pCkWhk1O3OAV
# JqQKqLFiGcv60AEuBYGZGzgiOUv8EJ5gKwRF4VOdyHIxqZDw1aZXzlcd4TzFZBQ7
# rwW/3ef+sFmUJdmfrSrqcIlQSRrqZ2w95xATDzLTIEEUT3SWqh/E95EZWIz1M0oQ
# NgWgFiLCR1KOj7bWFhLXT7IfyLh0mEysD+P/hY6QwQ4RewWG7EW5UK+JFswssdcZ
# rEj5XpHZzev/wx7hM4bWsoQ+VIvrH7j3uYGyWkcgYRbdDEkWDv2rsT23lwGYNhht
# oBsrdEBELRw6v4C8doq/+sCmHmuxUMqTGwbArCQVnB1XnLxOEkuqlnfq5MORkzNF
# fxbIRx+LRluOllC0HVaDQd8qxRq1+UC5WIpAcDcrouy4HGgi1onWKrXpgjIAbVyH
# M6cENkK7rnRk96gpeXdmrf0h9HqRciAOY8oUsFsvLyKBOCPBWDrLyOQEY5UoSdtD
# m4QpEVgywCy2z1uU/UObeT/UxJy/9EL/Zb+DHoEK06iEhwONoUJjEBYMJD38RMkk
# mwPTB4UAk9g=
# =s69t
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 12 Oct 2023 09:49:39 EDT
# gpg:                using RSA key 1BD9CAAD735C4C3A460DFCCA4DDE10F700FF835A
# gpg:                issuer "da...@redhat.com"
# gpg: Good signature from "David Hildenbrand <da...@redhat.com>" [unknown]
# gpg:                 aka "David Hildenbrand <davidhildenbr...@gmail.com>" 
[full]
# gpg:                 aka "David Hildenbrand <hilde...@in.tum.de>" [unknown]
# gpg: WARNING: The key's User ID is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 1BD9 CAAD 735C 4C3A 460D  FCCA 4DDE 10F7 00FF 835A

* tag 'mem-2023-10-12' of https://github.com/davidhildenbrand/qemu:
  virtio-mem: Mark memslot alias memory regions unmergeable
  memory,vhost: Allow for marking memory device memory regions unmergeable
  virtio-mem: Expose device memory dynamically via multiple memslots if enabled
  virtio-mem: Update state to match bitmap as soon as it's been migrated
  virtio-mem: Pass non-const VirtIOMEM via virtio_mem_range_cb
  memory: Clarify mapping requirements for RamDiscardManager
  memory-device,vhost: Support automatic decision on the number of memslots
  vhost: Add vhost_get_max_memslots()
  kvm: Add stub for kvm_get_max_memslots()
  memory-device,vhost: Support memory devices that dynamically consume memslots
  memory-device: Track required and actually used memslots in DeviceMemoryState
  stubs: Rename qmp_memory_device.c to memory_device.c
  memory-device: Support memory devices with multiple memslots
  vhost: Return number of free memslots
  kvm: Return number of free memslots
  softmmu/physmem: Fixup qemu_ram_block_from_host() documentation
  vhost: Remove vhost_backend_can_merge() callback
  vhost: Rework memslot filtering and fix "used_memslot" tracking

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


  Commit: 32bfaa4ea7df5666dc7349a1e968e19a943327a3
      
https://github.com/qemu/qemu/commit/32bfaa4ea7df5666dc7349a1e968e19a943327a3
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  Date:   2023-10-16 (Mon, 16 Oct 2023)

  Changed paths:
    M contrib/vhost-user-gpu/vhost-user-gpu.c
    M contrib/vhost-user-gpu/vugpu.h
    M include/hw/virtio/virtio-gpu.h
    M subprojects/libvduse/libvduse.c
    M subprojects/libvhost-user/libvhost-user.c
    M target/i386/tcg/seg_helper.c

  Log Message:
  -----------
  Merge tag 'pull-shadow-2023-10-12' of https://repo.or.cz/qemu/armbru into 
staging

-Wshadow=local patches for 2023-10-12

# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmUoCNsSHGFybWJydUBy
# ZWRoYXQuY29tAAoJEDhwtADrkYZTTocP/iQ6RggqcHrBxwZZtyydvpWCFrqfuBTk
# 6GQtKGm51UcQ9kmAIsoV90pOzdUdjwrpXzKKJwsLzMcVcp1NDPsQIL54wdsRmZfH
# E9mxI7UlZf/KWzrfP1nFLcU8T5+cuXosDgjx55Y1Kq+ZRn+7x0DInBGdRryokWTG
# zcKh9T3n9KWKscLL7hvxLZS5054V9HBDYIpBBEyV2GtRrCLL0Y+9aaKkBrejHMgY
# oKrLKHz1cOGOTzQ7AbhA+Wv3eN+GYVyjnCSUXK/270jbU8Xg4m1vSbrPq2PWy5kV
# IGGKZtZsrSq0VBoTi+i9++vP5djKVUYQLqx10L+NYCp25wBnTgXKSDtdAqI68aev
# TYrOlQ1ldKXJT4ghPqoWCjRKkryV6/Gj9fHbbvsHJ7SB84VO8G/kpn5zXvN/BosG
# 8vxLEL0xc1Q3Sxi91DCjVsP7UebjBt1j/JugU9zVr8OFJWriFmllYB67AOOo3gS2
# c+FNVPLle3udw5EHClMapcGSzTun4iHeEsiJMOOgGOHC09Bi+Om6LlneFWljmvQp
# a6ma+bebxCjzuO6heey2Q/1JjltR8Ex0bnbWIoNsysA6OnDtTlbxDqZEca1h6As+
# Rm9XFKf7nVQIHFKW3sjbx6MgqAL6sBakfeJah5Pj5iIKtLaZR591RyAfvfB2sBlS
# ZYtp95GIKWXZ
# =AArx
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 12 Oct 2023 10:55:23 EDT
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "arm...@redhat.com"
# gpg: Good signature from "Markus Armbruster <arm...@redhat.com>" [full]
# gpg:                 aka "Markus Armbruster <arm...@pond.sub.org>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* tag 'pull-shadow-2023-10-12' of https://repo.or.cz/qemu/armbru:
  target/i386: fix shadowed variable pasto
  contrib/vhost-user-gpu: Fix compiler warning when compiling with -Wshadow
  hw/virtio/virtio-gpu: Fix compiler warning when compiling with -Wshadow
  libvhost-user: Fix compiler warning with -Wshadow=local
  libvduse: Fix compiler warning with -Wshadow=local

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


  Commit: ce2f51697bea03956c2ac1ccc17d81e170d68c3b
      
https://github.com/qemu/qemu/commit/ce2f51697bea03956c2ac1ccc17d81e170d68c3b
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  Date:   2023-10-16 (Mon, 16 Oct 2023)

  Changed paths:
    M block.c
    M block/backup.c
    M block/block-backend.c
    M block/bochs.c
    M block/cloop.c
    M block/commit.c
    M block/copy-before-write.c
    M block/copy-on-read.c
    M block/crypto.c
    M block/curl.c
    M block/dmg.c
    M block/export/export.c
    M block/gluster.c
    M block/graph-lock.c
    M block/io.c
    M block/iscsi.c
    M block/mirror.c
    M block/monitor/block-hmp-cmds.c
    M block/nbd.c
    M block/nfs.c
    M block/parallels.c
    M block/qapi-sysemu.c
    M block/qapi.c
    M block/qcow.c
    M block/qcow2-bitmap.c
    M block/qcow2-cache.c
    M block/qcow2-cluster.c
    M block/qcow2-refcount.c
    M block/qcow2.c
    M block/qcow2.h
    M block/quorum.c
    M block/raw-format.c
    M block/rbd.c
    M block/replication.c
    M block/snapshot.c
    M block/stream.c
    M block/vdi.c
    M block/vhdx.c
    M block/vhdx.h
    M block/vmdk.c
    M block/vpc.c
    M block/vvfat.c
    M blockdev.c
    M blockjob.c
    M include/block/block-common.h
    M include/block/block-global-state.h
    M include/block/block-io.h
    M include/block/block_int-common.h
    M include/block/block_int-io.h
    M include/block/graph-lock.h
    M include/block/qapi.h
    M include/block/snapshot.h
    M include/sysemu/block-backend-global-state.h
    M migration/block.c
    M migration/migration-hmp-cmds.c
    M qemu-img.c
    M qemu-io-cmds.c
    M scripts/block-coroutine-wrapper.py
    M tests/unit/test-bdrv-drain.c
    M tests/unit/test-block-iothread.c

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

Block layer patches

- Clean up coroutine versions of bdrv_{is_allocated,block_status}*
- Graph locking part 5 (protect children/parent links)

# -----BEGIN PGP SIGNATURE-----
#
# iQJFBAABCAAvFiEE3D3rFZqa+V09dFb+fwmycsiPL9YFAmUoHL8RHGt3b2xmQHJl
# ZGhhdC5jb20ACgkQfwmycsiPL9b4uRAAjryVAaA5jXZ3mdGB80nhGtARZlIaIVO/
# tlXk065q2Cj+98f+fBPCPWvmEz28vJwBhJUsFwpHzLZrxecBpwZp0MPAkFBNkouq
# +AiO9xyTAqccEp/dnIys4Bun9Rp0Jq9lk9y29zzEmQuK5uCB56lpx2cDn/JkzSQt
# ZFtnxxTwi3MDTNvXATub8Ia/1suui0zvESS7J/NBxQNI3cFaQszp1vMwlRIoPiWo
# 15YZFPZZQ2pvu6/1nL1Vl9OLbPAVcEGJpjHZv0XhudYOwRiDvjYnwfPL7BuwYEsU
# Dos4mZZd/KMU695s7OzlVYi1q4ATKUTUxyyylVhXZrFBXSE5ntnfoHTKHEruTyPb
# G31h5mribSTWjdvY5HewHbSSPjByAWsSQg9yzcHybhORiqGQCpcGQ8zuW7oNKMPV
# JicWdoRVY4U4hR0nRdDxz9zdpQ8QYok/ginBxFaOzrCfClUB7ZOBxwRMclIghuRH
# FV+ZJk0ylVOz2tbfNxUa3KhUgTPd8jgCHFI7xak5EBRtTJiJjE03Xag1Fdxy5/D5
# tRsBBW4sOFygAhjN/xyeaRv9L8rAv3x/akriFjPUbOMLkPcJpe/DTWsP8+5LaZF8
# GkQvjsg5UvmfcJ3LFtecXxfYH4UWhDmyAjF+BswiRqafDDi2CCUmdwDnzEPbwuWO
# x1y7cgxe9SE=
# =4d/s
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 12 Oct 2023 12:20:15 EDT
# gpg:                using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6
# gpg:                issuer "kw...@redhat.com"
# gpg: Good signature from "Kevin Wolf <kw...@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* tag 'for-upstream' of https://repo.or.cz/qemu/kevin: (26 commits)
  block: Add assertion for bdrv_graph_wrlock()
  block: Protect bs->children with graph_lock
  block: Protect bs->parents with graph_lock
  block: Mark bdrv_get_specific_info() and callers GRAPH_RDLOCK
  block: Mark bdrv_apply_auto_read_only() and callers GRAPH_RDLOCK
  block: Mark bdrv_op_is_blocked() and callers GRAPH_RDLOCK
  qcow2: Mark check_constraints_on_bitmap() GRAPH_RDLOCK
  qcow2: Mark qcow2_inactivate() and callers GRAPH_RDLOCK
  qcow2: Mark qcow2_signal_corruption() and callers GRAPH_RDLOCK
  block: Mark bdrv_amend_options() and callers GRAPH_RDLOCK
  block: Mark bdrv_get_parent_name() and callers GRAPH_RDLOCK
  block: Mark bdrv_primary_child() and callers GRAPH_RDLOCK
  block: Mark bdrv_refresh_filename() and callers GRAPH_RDLOCK
  block: Mark bdrv_get_xdbg_block_graph() and callers GRAPH_RDLOCK
  block: Take graph rdlock in parts of reopen
  block: Mark bdrv_snapshot_fallback() and callers GRAPH_RDLOCK
  block: Mark bdrv_parent_cb_resize() and callers GRAPH_RDLOCK
  block: Mark drain related functions GRAPH_RDLOCK
  block: Mark bdrv_first_blk() and bdrv_is_root_node() GRAPH_RDLOCK
  block: Take graph rdlock in bdrv_inactivate_all()
  ...

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


  Commit: 2a6299fb137e8f0fcee205f584c52481cb8461f7
      
https://github.com/qemu/qemu/commit/2a6299fb137e8f0fcee205f584c52481cb8461f7
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  Date:   2023-10-16 (Mon, 16 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M MAINTAINERS
    M docs/about/deprecated.rst
    M hw/misc/Kconfig
    M hw/misc/i2c-echo.c
    M hw/misc/meson.build
    M hw/rdma/vmw/pvrdma_main.c
    M tests/qtest/npcm7xx_timer-test.c

  Log Message:
  -----------
  Merge tag 'pull-request-2023-10-12' of https://gitlab.com/thuth/qemu into 
staging

* Fix CVE-2023-1544
* Deprecate the rdma code
* Fix flaky npcm7xx_timer test
* i2c-echo license statement and Kconfig switch
* Disable the failing riscv64-debian-cross CI job by default

* tag 'pull-request-2023-10-12' of https://gitlab.com/thuth/qemu:
  gitlab-ci: Disable the riscv64-debian-cross-container by default
  MAINTAINERS: Add include/sysemu/qtest.h to the qtest section
  hw/misc/Kconfig: add switch for i2c-echo
  hw/misc/i2c-echo: add copyright/license note
  tests/qtest: Fix npcm7xx_timer-test.c flaky test
  hw/rdma: Deprecate the pvrdma device and the rdma subsystem
  hw/pvrdma: Protect against buggy or malicious guest driver

Conflicts:
  docs/about/deprecated.rst
  Context conflict between RISC-V and RDMA deprecation.

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


  Commit: 2778f754e68425ba65ba97fa57001b371432d70f
      
https://github.com/qemu/qemu/commit/2778f754e68425ba65ba97fa57001b371432d70f
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  Date:   2023-10-16 (Mon, 16 Oct 2023)

  Changed paths:
    M hw/ufs/lu.c
    M hw/ufs/ufs.c
    M include/block/ufs.h
    M tests/qtest/ufs-test.c

  Log Message:
  -----------
  Merge tag 'pull-ufs-20231013' of https://gitlab.com/jeuk20.kim/qemu into 
staging

hw/ufs: fixes

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEUBfYMVl8eKPZB+73EuIgTA5dtgIFAmUozswACgkQEuIgTA5d
# tgITExAAo0BSNir4I5MfeNIjZTNNdxLXDl0+92JyairB2m/gWH/02jGtrJBYp5On
# ELnixKj2Ntn9IIRr3NwQHNTnDOZHRkUBH+pRVeMbZ+IWLjEoWQdl03ge7e9sHai3
# CLXB4HPSnXddy1SmS9FEkdBWopqxKF4BLZnpAfwh/dj2fzSyDyNIMmGoRimRQhph
# 9A90304ERUdpREAXncTgSdXeDZz+lScadzUJZrPPiG2ZHXL+qzDCX7ojEnNaUFxz
# W1IfriI8oeeORfCQaNEOncLKhSwE1WscGxP0vILPApKOu251tObgSbK90QlQR2qT
# BMl7k4BDfYeksXMGc0BXVFrOfv1ud86NlCE2OokK6HBZVuHio4C6TU/t65MC4Rw5
# mJ8CPgbN+7sgVmAGo0sLYzI6GiRR27VqqLh6KXVAa5c/fAdt5pHSkakwSvxiXsAl
# EqskmOY2em5O//+7CWN1CtY+I2pHyltMXAi3Cb2vjweNx88kuhmxFQWeZVI10/H3
# gNrNfu32+ihDLMqR7uQamdAZV0lnIwp97nCbf3LzpM0btjl70QvGZhsbiCDiLQrG
# mJjnaix4xDb8T21WKrI8DKcwR4rvD8hZsCUp31XJnA8HWtdPnEQldK8NEGNlU5ye
# lrGc6gxiwZLCBBIj9lwbZW3Zv9Vz9jNWISOmY+KWLCIus98DBxQ=
# =XXsQ
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 13 Oct 2023 00:59:56 EDT
# gpg:                using RSA key 5017D831597C78A3D907EEF712E2204C0E5DB602
# gpg: Good signature from "Jeuk Kim <jeuk20....@samsung.com>" [unknown]
# gpg:                 aka "Jeuk Kim <jeuk20....@gmail.com>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 5017 D831 597C 78A3 D907  EEF7 12E2 204C 0E5D B602

* tag 'pull-ufs-20231013' of https://gitlab.com/jeuk20.kim/qemu:
  hw/ufs: Fix incorrect register fields
  hw/ufs: Fix code coverity issues

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


  Commit: 9390f0fd3e30ac61e94ea2fc4a923d88ed486645
      
https://github.com/qemu/qemu/commit/9390f0fd3e30ac61e94ea2fc4a923d88ed486645
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  Date:   2023-10-16 (Mon, 16 Oct 2023)

  Changed paths:
    M MAINTAINERS
    M hw/loongarch/Kconfig
    M hw/loongarch/virt.c
    M include/hw/loongarch/virt.h
    M target/loongarch/cpu.h
    M target/loongarch/disas.c
    M target/loongarch/insn_trans/trans_memory.c.inc
    M target/loongarch/insns.decode
    M tests/tcg/loongarch64/system/boot.S

  Log Message:
  -----------
  Merge tag 'pull-loongarch-20231013' of https://gitlab.com/gaosong/qemu into 
staging

pull-loongarch-20231013

# -----BEGIN PGP SIGNATURE-----
#
# iLMEAAEKAB0WIQS4/x2g0v3LLaCcbCxAov/yOSY+3wUCZSimNQAKCRBAov/yOSY+
# 33XwBADF9ZKlESDBDa/huNFAKD7BsUIdglHfz9lHnLY+kQbCun4HyTLtp2IBsySu
# mZTjdfU/LnaBidFLjEnmZZMPyiI3oV1ruSzT53egSDaxrFUXGpc9oxtMNLsyfk9P
# swdngG13Fc9sWVKC7IJeYDYXgkvHY7NxsiV8U9vdqXOyw2uoHA==
# =ufPc
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 12 Oct 2023 22:06:45 EDT
# gpg:                using RSA key B8FF1DA0D2FDCB2DA09C6C2C40A2FFF239263EDF
# gpg: Good signature from "Song Gao <m17746591...@163.com>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: B8FF 1DA0 D2FD CB2D A09C  6C2C 40A2 FFF2 3926 3EDF

* tag 'pull-loongarch-20231013' of https://gitlab.com/gaosong/qemu:
  LoongArch: step down as general arch maintainer
  hw/loongarch/virt: Remove unused 'loongarch_virt_pm' region
  hw/loongarch/virt: Remove unused ISA Bus
  hw/loongarch/virt: Remove unused ISA UART
  hw/loongarch: remove global loaderparams variable
  target/loongarch: Add preldx instruction
  target/loongarch: fix ASXE flag conflict

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


  Commit: 800485762e6564e04e2ab315132d477069562d91
      
https://github.com/qemu/qemu/commit/800485762e6564e04e2ab315132d477069562d91
  Author: Stefan Hajnoczi <stefa...@redhat.com>
  Date:   2023-10-16 (Mon, 16 Oct 2023)

  Changed paths:
    M configure
    M docs/devel/testing.rst
    M python/qemu/machine/console_socket.py
    M python/qemu/machine/machine.py
    M python/qemu/machine/qtest.py
    M python/qemu/qmp/legacy.py
    M python/qemu/qmp/protocol.py
    M python/qemu/qmp/qmp_shell.py
    M python/qemu/utils/qemu_ga_client.py
    M python/qemu/utils/qom.py
    M python/qemu/utils/qom_common.py
    M python/qemu/utils/qom_fuse.py
    M python/setup.cfg
    M scripts/cpu-x86-uarch-abi.py
    M scripts/device-crash-test
    A scripts/python_qmp_updater.py
    M scripts/render_block_graph.py
    M tests/avocado/acpi-bits.py
    M tests/avocado/avocado_qemu/__init__.py
    M tests/avocado/cpu_queries.py
    M tests/avocado/hotplug_cpu.py
    M tests/avocado/info_usernet.py
    M tests/avocado/machine_arm_integratorcp.py
    M tests/avocado/machine_aspeed.py
    M tests/avocado/machine_m68k_nextcube.py
    M tests/avocado/machine_mips_malta.py
    M tests/avocado/machine_s390_ccw_virtio.py
    M tests/avocado/migration.py
    M tests/avocado/pc_cpu_hotplug_props.py
    M tests/avocado/version.py
    M tests/avocado/virtio_check_params.py
    M tests/avocado/virtio_version.py
    M tests/avocado/vnc.py
    M tests/avocado/x86_cpu_model_versions.py
    M tests/docker/dockerfiles/python.docker
    M tests/migration/guestperf/engine.py
    M tests/qemu-iotests/030
    M tests/qemu-iotests/040
    M tests/qemu-iotests/041
    M tests/qemu-iotests/045
    M tests/qemu-iotests/055
    M tests/qemu-iotests/056
    M tests/qemu-iotests/093
    M tests/qemu-iotests/118
    M tests/qemu-iotests/124
    M tests/qemu-iotests/129
    M tests/qemu-iotests/132
    M tests/qemu-iotests/139
    M tests/qemu-iotests/147
    M tests/qemu-iotests/151
    M tests/qemu-iotests/152
    M tests/qemu-iotests/155
    M tests/qemu-iotests/165
    M tests/qemu-iotests/196
    M tests/qemu-iotests/205
    M tests/qemu-iotests/218
    M tests/qemu-iotests/245
    M tests/qemu-iotests/256
    M tests/qemu-iotests/257
    M tests/qemu-iotests/264
    M tests/qemu-iotests/281
    M tests/qemu-iotests/295
    M tests/qemu-iotests/296
    M tests/qemu-iotests/298
    M tests/qemu-iotests/300
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/tests/backing-file-invalidation
    M tests/qemu-iotests/tests/copy-before-write
    M tests/qemu-iotests/tests/export-incoming-iothread
    M tests/qemu-iotests/tests/graph-changes-while-io
    M tests/qemu-iotests/tests/image-fleecing
    M tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test
    M tests/qemu-iotests/tests/migrate-bitmaps-test
    M tests/qemu-iotests/tests/migrate-during-backup
    M tests/qemu-iotests/tests/migration-permissions
    M tests/qemu-iotests/tests/mirror-ready-cancel-error
    M tests/qemu-iotests/tests/mirror-top-perms
    M tests/qemu-iotests/tests/nbd-multiconn
    M tests/qemu-iotests/tests/reopen-file
    M tests/qemu-iotests/tests/stream-error-on-reset
    M tests/qemu-iotests/tests/stream-under-throttle
    M tests/vm/basevm.py

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

Python Pullreq

Python PR:

- Use socketpair for all machine.py connections
- Support Python 3.12
- Switch iotests over to using raise-on-error QMP command interface
  (Thank you very much, Vladimir!)

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEE+ber27ys35W+dsvQfe+BBqr8OQ4FAmUpldkACgkQfe+BBqr8
# OQ4NtRAAnkEmXsECAxQ2ewvf3yK8PTFm4Oq5nqMIw+KB94ATrsGzk3z1rLvatSl3
# 6VLsV2+FWoOEyKrsfu5DIfbuo4d3TZTU7N2DIZpVpvO166K+fXbzp8skAg+n3BMC
# tWkSOcnsT6+8aqyxxyASdHvbbE7pvPw8OA3oIIstsYeZ5/HHpOWXNj1kjCsnL0lW
# 7y5h6UUKGmnCPdixyk042+AvKkT7GAKVjFnjUF5JHv0iR2KpQ+O9H7OEalqQT5w5
# eab4oMGuIYhzYe+MNpyybAB3Xd2pxhcppk+sl4dCE8qmMn7KRoTNw1iu+qhsNQfQ
# JILZoCPtYMhpef4X0ulH8PFBMweBptqOjo4lpz9QIdMWTf86IE0yIT9DCy3aSjpp
# ywwxhFKJS43gz4WHkEJlrY9PHwLsULaV/Cz6HKJAU6h9aFtcNdT4pkCOERnZ8X4C
# yHlNReTG5Dz1sYzKJ/k9LTjAaVDasumR8/yadaUCwalj5zexQ27qlIM6oc5wdIRQ
# up1VHi7odF5KHb6GeqdniuuEF6NBCYRAV5nz+dbd6exfKOaxYRrr48yh9SUm8QS6
# JCvMMFFAZCIrI/nkRVajbLi9L5O3fg5abtlzSzh9o4iyf8Rf/1gtKNxZRK1NZIjQ
# cTYBJXpMulNx7bM2CPNsPWGqCTAjAcu10svqTA8luGj4fqdTNyU=
# =02Bd
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 13 Oct 2023 15:09:13 EDT
# gpg:                using RSA key F9B7ABDBBCACDF95BE76CBD07DEF8106AAFC390E
# gpg: Good signature from "John Snow (John Huston) <js...@redhat.com>" [full]
# Primary key fingerprint: FAEB 9711 A12C F475 812F  18F2 88A9 064D 1835 61EB
#      Subkey fingerprint: F9B7 ABDB BCAC DF95 BE76  CBD0 7DEF 8106 AAFC 390E

* tag 'python-pull-request' of https://gitlab.com/jsnow/qemu: (25 commits)
  python: use vm.cmd() instead of vm.qmp() where appropriate
  scripts: add python_qmp_updater.py
  tests/vm/basevm.py: use cmd() instead of qmp()
  iotests.py: pause_job(): drop return value
  iotests: drop some extra ** in qmp() call
  iotests: drop some extra semicolons
  iotests: refactor some common qmp result checks into generic pattern
  iotests: add some missed checks of qmp result
  iotests: QemuStorageDaemon: add cmd() method like in QEMUMachine.
  python/machine.py: upgrade vm.cmd() method
  python/qemu: rename command() to cmd()
  python: rename QEMUMonitorProtocol.cmd() to cmd_raw()
  scripts/cpu-x86-uarch-abi.py: use .command() instead of .cmd()
  qmp_shell.py: _fill_completion() use .command() instead of .cmd()
  python/qemu/qmp/legacy: cmd(): drop cmd_id unused argument
  Python: Enable python3.12 support
  configure: fix error message to say Python 3.8
  python/qmp: remove Server.wait_closed() call for Python 3.12
  Python/iotests: Add type hint for nbd module
  python/machine: remove unused sock_dir argument
  ...

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


Compare: https://github.com/qemu/qemu/compare/63011373ad22...800485762e65

Reply via email to