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