Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: c6cd588bb3a29a831c862780631a7d2145ade5de https://github.com/qemu/qemu/commit/c6cd588bb3a29a831c862780631a7d2145ade5de Author: Alexander Ivanov <alexander.iva...@virtuozzo.com> Date: 2022-10-26 (Wed, 26 Oct 2022)
Changed paths: M meson.build M qga/channel-posix.c M qga/commands-posix.c M qga/main.c Log Message: ----------- qga: Add initial FreeBSD support - Fix device path. - Fix virtio-serial channel initialization. - Make the code buildable in FreeBSD. Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> Acked-by: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Alexander Ivanov <alexander.iva...@virtuozzo.com> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com> Commit: 518b0d800b5ab046b72fac423ace7549ab187329 https://github.com/qemu/qemu/commit/518b0d800b5ab046b72fac423ace7549ab187329 Author: Alexander Ivanov <alexander.iva...@virtuozzo.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M qga/commands-common.h A qga/commands-linux.c M qga/commands-posix.c M qga/meson.build Log Message: ----------- qga: Move Linux-specific FS freeze/thaw code to a separate file In the next patches we are going to add FreeBSD support for QEMU Guest Agent. In the result, code in commands-posix.c will be too cumbersome. Move Linux-specific FS freeze/thaw code to a separate file commands-linux.c keeping common POSIX code in commands-posix.c. Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Alexander Ivanov <alexander.iva...@virtuozzo.com> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com> Commit: bad0001eeb34484c4595c3862e14a4ee22a3abee https://github.com/qemu/qemu/commit/bad0001eeb34484c4595c3862e14a4ee22a3abee Author: Alexander Ivanov <alexander.iva...@virtuozzo.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: A qga/commands-bsd.c M qga/commands-common.h M qga/commands-posix.c M qga/main.c M qga/meson.build Log Message: ----------- qga: Add UFS freeze/thaw support for FreeBSD UFS supports FS freezing through ioctl UFSSUSPEND on /dev/ufssuspend. Frozen FS can be thawed by closing /dev/ufssuspend file descriptior. Use getmntinfo to get a list of mounted FS. Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Alexander Ivanov <alexander.iva...@virtuozzo.com> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com> Commit: e40762fcd6266450778f615e73d218e4100147b7 https://github.com/qemu/qemu/commit/e40762fcd6266450778f615e73d218e4100147b7 Author: Alexander Ivanov <alexander.iva...@virtuozzo.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M qga/commands-posix.c Log Message: ----------- qga: Add shutdown/halt/reboot support for FreeBSD Add appropriate shutdown command arguments to qmp_guest_shutdown() for FreeBSD. Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Alexander Ivanov <alexander.iva...@virtuozzo.com> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com> Commit: 4fd0642e84e2dc25033090cad73f1ef1904e1600 https://github.com/qemu/qemu/commit/4fd0642e84e2dc25033090cad73f1ef1904e1600 Author: Alexander Ivanov <alexander.iva...@virtuozzo.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M qga/commands-posix.c Log Message: ----------- qga: Add support for user password setting in FreeBSD Move qmp_guest_set_user_password() from __linux__ condition to (__linux__ || __FreeBSD__) condition. Add command and arguments for password setting in FreeBSD. Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Alexander Ivanov <alexander.iva...@virtuozzo.com> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com> Commit: a1241094223d69d72bebc5ed7a5f6f57cbc7986c https://github.com/qemu/qemu/commit/a1241094223d69d72bebc5ed7a5f6f57cbc7986c Author: Alexander Ivanov <alexander.iva...@virtuozzo.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M qga/commands-bsd.c M qga/commands-common.h M qga/commands-posix.c Log Message: ----------- qga: Move HW address getting to a separate function In the next patch FreeBSD support for guest-network-get-interfaces will be added. Previously move Linux-specific code of HW address getting to a separate functions and add a dumb function to commands-bsd.c. Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Alexander Ivanov <alexander.iva...@virtuozzo.com> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com> Commit: ffb01cc5d6698855103d57281ddfe94b1f3fa3d4 https://github.com/qemu/qemu/commit/ffb01cc5d6698855103d57281ddfe94b1f3fa3d4 Author: Alexander Ivanov <alexander.iva...@virtuozzo.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M qga/commands-bsd.c Log Message: ----------- qga: Add HW address getting for FreeBSD Replace a dumb function in commands-bsd.c by the code of HW address getting. Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> Signed-off-by: Alexander Ivanov <alexander.iva...@virtuozzo.com> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com> Commit: 3845ffff8b783680d12a005b493c0959a995f800 https://github.com/qemu/qemu/commit/3845ffff8b783680d12a005b493c0959a995f800 Author: Bjørn Forsman <bjorn.fors...@gmail.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M qga/channel-posix.c Log Message: ----------- qga: add channel path to error messages It's useful to know which device was used if/when it fails. channel-win32.c had this since 2015, with c69403fcd4a0cb89f838a212ab71e4a1a3464c95 ("qemu-ga: debug printouts to help troubleshoot installation"), this brings channel-posix.c up to speed. Signed-off-by: Bjørn Forsman <bjorn.fors...@gmail.com> Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> Signed-off-by: Konstantin Kostiuk <kkost...@redhat.com> Commit: 0421b563ab4d947a388078331c057daa9b979f41 https://github.com/qemu/qemu/commit/0421b563ab4d947a388078331c057daa9b979f41 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M include/qemu/coroutine.h M util/qemu-coroutine-lock.c Log Message: ----------- coroutine: add flag to re-queue at front of CoQueue When a coroutine wakes up it may determine that it must re-queue. Normally coroutines are pushed onto the back of the CoQueue, but for fairness it may be necessary to push it onto the front of the CoQueue. Add a flag to specify that the coroutine should be pushed onto the front of the CoQueue. A later patch will use this to ensure fairness in the bounce buffer CoQueue used by the blkio BlockDriver. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Message-id: 20221013185908.1297568-2-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: fd66dbd424f5c90fcff3d27afed2c6c59d8be3ac https://github.com/qemu/qemu/commit/fd66dbd424f5c90fcff3d27afed2c6c59d8be3ac Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M MAINTAINERS A block/blkio.c M block/meson.build M meson.build M meson_options.txt M qapi/block-core.json M scripts/meson-buildoptions.sh M tests/qtest/modules-test.c Log Message: ----------- blkio: add libblkio block driver libblkio (https://gitlab.com/libblkio/libblkio/) is a library for high-performance disk I/O. It currently supports io_uring, virtio-blk-vhost-user, and virtio-blk-vhost-vdpa with additional drivers under development. One of the reasons for developing libblkio is that other applications besides QEMU can use it. This will be particularly useful for virtio-blk-vhost-user which applications may wish to use for connecting to qemu-storage-daemon. libblkio also gives us an opportunity to develop in Rust behind a C API that is easy to consume from QEMU. This commit adds io_uring, nvme-io_uring, virtio-blk-vhost-user, and virtio-blk-vhost-vdpa BlockDrivers to QEMU using libblkio. It will be easy to add other libblkio drivers since they will share the majority of code. For now I/O buffers are copied through bounce buffers if the libblkio driver requires it. Later commits add an optimization for pre-registering guest RAM to avoid bounce buffers. The syntax is: --blockdev io_uring,node-name=drive0,filename=test.img,readonly=on|off,cache.direct=on|off --blockdev nvme-io_uring,node-name=drive0,filename=/dev/ng0n1,readonly=on|off,cache.direct=on --blockdev virtio-blk-vhost-vdpa,node-name=drive0,path=/dev/vdpa...,readonly=on|off,cache.direct=on --blockdev virtio-blk-vhost-user,node-name=drive0,path=vhost-user-blk.sock,readonly=on|off,cache.direct=on Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Acked-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Stefano Garzarella <sgarz...@redhat.com> Message-id: 20221013185908.1297568-3-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 1f0fea38f46a786dd87407997e8bfbccca5e458f https://github.com/qemu/qemu/commit/1f0fea38f46a786dd87407997e8bfbccca5e458f Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M hw/core/numa.c M util/vfio-helpers.c Log Message: ----------- numa: call ->ram_block_removed() in ram_block_notifer_remove() When a RAMBlockNotifier is added, ->ram_block_added() is called with all existing RAMBlocks. There is no equivalent ->ram_block_removed() call when a RAMBlockNotifier is removed. The util/vfio-helpers.c code (the sole user of RAMBlockNotifier) is fine with this asymmetry because it does not rely on RAMBlockNotifier for cleanup. It walks its internal list of DMA mappings and unmaps them by itself. Future users of RAMBlockNotifier may not have an internal data structure that records added RAMBlocks so they will need ->ram_block_removed() callbacks. This patch makes ram_block_notifier_remove() symmetric with respect to callbacks. Now util/vfio-helpers.c needs to unmap remaining DMA mappings after ram_block_notifier_remove() has been called. This is necessary since users like block/nvme.c may create additional DMA mappings that do not originate from the RAMBlockNotifier. Reviewed-by: David Hildenbrand <da...@redhat.com> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Message-id: 20221013185908.1297568-4-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 4f384011c5a37f80dc6cadefffac61ffb1c3aa1e https://github.com/qemu/qemu/commit/4f384011c5a37f80dc6cadefffac61ffb1c3aa1e Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M block/block-backend.c M block/io.c M block/nvme.c M include/block/block-global-state.h M include/block/block_int-common.h M include/sysemu/block-backend-global-state.h M qemu-img.c Log Message: ----------- block: pass size to bdrv_unregister_buf() The only implementor of bdrv_register_buf() is block/nvme.c, where the size is not needed when unregistering a buffer. This is because util/vfio-helpers.c can look up mappings by address. Future block drivers that implement bdrv_register_buf() may not be able to do their job given only the buffer address. Add a size argument to bdrv_unregister_buf(). Also document the assumptions about bdrv_register_buf()/bdrv_unregister_buf() calls. The same <host, size> values that were given to bdrv_register_buf() must be given to bdrv_unregister_buf(). gcc 11.2.1 emits a spurious warning that img_bench()'s buf_size local variable might be uninitialized, so it's necessary to silence the compiler. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Reviewed-by: Stefano Garzarella <sgarz...@redhat.com> Message-id: 20221013185908.1297568-5-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 98b3ddc78bf3380ec976d924aedb7f3fa2e9dbef https://github.com/qemu/qemu/commit/98b3ddc78bf3380ec976d924aedb7f3fa2e9dbef Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M include/block/block_int-common.h Log Message: ----------- block: use BdrvRequestFlags type for supported flag fields Use the enum type so GDB displays the enum members instead of printing a numeric constant. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Reviewed-by: Stefano Garzarella <sgarz...@redhat.com> Message-id: 20221013185908.1297568-6-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: e8b6535533be4269e4b7bd23d4bb17dd976dc7a3 https://github.com/qemu/qemu/commit/e8b6535533be4269e4b7bd23d4bb17dd976dc7a3 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M block.c M block/blkverify.c M block/crypto.c M block/file-posix.c M block/gluster.c M block/io.c M block/mirror.c M block/nbd.c M block/parallels.c M block/qcow.c M block/qed.c M block/raw-format.c M block/replication.c M block/ssh.c M block/vhdx.c M include/block/block-common.h Log Message: ----------- block: add BDRV_REQ_REGISTERED_BUF request flag Block drivers may optimize I/O requests accessing buffers previously registered with bdrv_register_buf(). Checking whether all elements of a request's QEMUIOVector are within previously registered buffers is expensive, so we need a hint from the user to avoid costly checks. Add a BDRV_REQ_REGISTERED_BUF request flag to indicate that all QEMUIOVector elements in an I/O request are known to be within previously registered buffers. Always pass the flag through to driver read/write functions. There is little harm in passing the flag to a driver that does not use it. Passing the flag to drivers avoids changes across many block drivers. Filter drivers would need to explicitly support the flag and pass through to their children when the children support it. That's a lot of code changes and it's hard to remember to do that everywhere, leading to silent reduced performance when the flag is accidentally dropped. The only problematic scenario with the approach in this patch is when a driver passes the flag through to internal I/O requests that don't use the same I/O buffer. In that case the hint may be set when it should actually be clear. This is a rare case though so the risk is low. Some drivers have assert(!flags), which no longer works when BDRV_REQ_REGISTERED_BUF is passed in. These assertions aren't very useful anyway since the functions are called almost exclusively by bdrv_driver_preadv/pwritev() so if we get flags handling right there then the assertion is not needed. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Message-id: 20221013185908.1297568-7-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: f4ec04bae9577eaa55ac35f3971dc3086a4a9192 https://github.com/qemu/qemu/commit/f4ec04bae9577eaa55ac35f3971dc3086a4a9192 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M block/block-backend.c M block/io.c M block/nvme.c M include/block/block-global-state.h M include/block/block_int-common.h M include/sysemu/block-backend-global-state.h M qemu-img.c Log Message: ----------- block: return errors from bdrv_register_buf() Registering an I/O buffer is only a performance optimization hint but it is still necessary to return errors when it fails. Later patches will need to detect errors when registering buffers but an immediate advantage is that error_report() calls are no longer needed in block driver .bdrv_register_buf() functions. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Message-id: 20221013185908.1297568-8-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 4fdd0a1a7ea174c5ee573e49c11f7d3bce00984d https://github.com/qemu/qemu/commit/4fdd0a1a7ea174c5ee573e49c11f7d3bce00984d Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M hw/core/numa.c Log Message: ----------- numa: use QLIST_FOREACH_SAFE() for RAM block notifiers Make list traversal work when a callback removes a notifier mid-traversal. This is a cleanup to prevent bugs in the future. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Reviewed-by: David Hildenbrand <da...@redhat.com> Message-id: 20221013185908.1297568-9-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 7f9241d805b4711a4f7dc5489df0e7e30b8c1496 https://github.com/qemu/qemu/commit/7f9241d805b4711a4f7dc5489df0e7e30b8c1496 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M MAINTAINERS A block/block-ram-registrar.c M block/meson.build A include/sysemu/block-ram-registrar.h Log Message: ----------- block: add BlockRAMRegistrar Emulated devices and other BlockBackend users wishing to take advantage of blk_register_buf() all have the same repetitive job: register RAMBlocks with the BlockBackend using RAMBlockNotifier. Add a BlockRAMRegistrar API to do this. A later commit will use this from hw/block/virtio-blk.c. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Reviewed-by: Stefano Garzarella <sgarz...@redhat.com> Message-id: 20221013185908.1297568-10-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 6d998f3cbfebabea7882848a65c38f454d2a37c4 https://github.com/qemu/qemu/commit/6d998f3cbfebabea7882848a65c38f454d2a37c4 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M include/exec/cpu-common.h M softmmu/physmem.c Log Message: ----------- exec/cpu-common: add qemu_ram_get_fd() Add a function to get the file descriptor for a RAMBlock. Device emulation code typically uses the MemoryRegion APIs but vhost-style code may use RAMBlock directly for sharing guest memory with another process. This new API will be used by the libblkio block driver so it can share guest memory via .bdrv_register_buf(). Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Message-id: 20221013185908.1297568-11-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 701bff24deba59a095c6b5cade15e764d56909f6 https://github.com/qemu/qemu/commit/701bff24deba59a095c6b5cade15e764d56909f6 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M stubs/meson.build A stubs/physmem.c Log Message: ----------- stubs: add qemu_ram_block_from_host() and qemu_ram_get_fd() The blkio block driver will need to look up the file descriptor for a given pointer. This is possible in softmmu builds where the RAMBlock API is available for querying guest RAM. Add stubs so tools like qemu-img that link the block layer still build successfully. In this case there is no guest RAM but that is fine. Bounce buffers and their file descriptors will be allocated with libblkio's blkio_alloc_mem_region() so we won't rely on QEMU's qemu_ram_get_fd() in that case. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Message-id: 20221013185908.1297568-12-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: c5640b3e2f1146e8eea9f9f62db87713388d8bc8 https://github.com/qemu/qemu/commit/c5640b3e2f1146e8eea9f9f62db87713388d8bc8 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M block/blkio.c Log Message: ----------- blkio: implement BDRV_REQ_REGISTERED_BUF optimization Avoid bounce buffers when QEMUIOVector elements are within previously registered bdrv_register_buf() buffers. The idea is that emulated storage controllers will register guest RAM using bdrv_register_buf() and set the BDRV_REQ_REGISTERED_BUF on I/O requests. Therefore no blkio_map_mem_region() calls are necessary in the performance-critical I/O code path. This optimization doesn't apply if the I/O buffer is internally allocated by QEMU (e.g. qcow2 metadata). There we still take the slow path because BDRV_REQ_REGISTERED_BUF is not set. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Reviewed-by: Stefano Garzarella <sgarz...@redhat.com> Message-id: 20221013185908.1297568-13-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: baf422684d73c7bf38e2c18815e18d44fcf395b6 https://github.com/qemu/qemu/commit/baf422684d73c7bf38e2c18815e18d44fcf395b6 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M hw/block/virtio-blk.c M include/hw/virtio/virtio-blk.h Log Message: ----------- virtio-blk: use BDRV_REQ_REGISTERED_BUF optimization hint Register guest RAM using BlockRAMRegistrar and set the BDRV_REQ_REGISTERED_BUF flag so block drivers can optimize memory accesses in I/O requests. This is for vdpa-blk, vhost-user-blk, and other I/O interfaces that rely on DMA mapping/unmapping. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Reviewed-by: Stefano Garzarella <sgarz...@redhat.com> Message-id: 20221013185908.1297568-14-stefa...@redhat.com Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: e4c93e44ab103f6c67abd85d620343f61aafa004 https://github.com/qemu/qemu/commit/e4c93e44ab103f6c67abd85d620343f61aafa004 Author: Peter Maydell <peter.mayd...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M docs/system/arm/emulation.rst M target/arm/cpu.h M target/arm/cpu64.c M target/arm/helper.c M target/arm/internals.h M target/arm/ptw.c Log Message: ----------- target/arm: Implement FEAT_E0PD FEAT_E0PD adds new bits E0PD0 and E0PD1 to TCR_EL1, which allow the OS to forbid EL0 access to half of the address space. Since this is an EL0-specific variation on the existing TCR_ELx.{EPD0,EPD1}, we can implement it entirely in aa64_va_parameters(). This requires moving the existing regime_is_user() to internals.h so that the code in helper.c can get at it. Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Message-id: 20221021160131.3531787-1-peter.mayd...@linaro.org Commit: 7cd5d384bb298ce3c595a3774213b5b478881ac8 https://github.com/qemu/qemu/commit/7cd5d384bb298ce3c595a3774213b5b478881ac8 Author: Jean-Philippe Brucker <jean-phili...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/arm/virt.c Log Message: ----------- hw/arm/virt: Fix devicetree warnings about the virtio-iommu node The "PCI Bus Binding to: IEEE Std 1275-1994" defines the compatible string for a PCIe bus or endpoint as "pci<vendorid>,<deviceid>" or similar. Since the initial binding for PCI virtio-iommu didn't follow this rule, it was modified to accept both strings and ensure backward compatibility. Also, the unit-name for the node should be "device,function". Fix corresponding dt-validate and dtc warnings: pcie@10000000: virtio_iommu@16:compatible: ['virtio,pci-iommu'] does not contain items matching the given schema pcie@10000000: Unevaluated properties are not allowed (... 'virtio_iommu@16' were unexpected) From schema: linux/Documentation/devicetree/bindings/pci/host-generic-pci.yaml virtio_iommu@16: compatible: 'oneOf' conditional failed, one must be fixed: ['virtio,pci-iommu'] is too short 'pci1af4,1057' was expected From schema: dtschema/schemas/pci/pci-bus.yaml Warning (pci_device_reg): /pcie@10000000/virtio_iommu@16: PCI unit address format error, expected "2,0" Signed-off-by: Jean-Philippe Brucker <jean-phili...@linaro.org> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: c939a7c7b93ee44a4963fabe81454e1f956ecd4b https://github.com/qemu/qemu/commit/c939a7c7b93ee44a4963fabe81454e1f956ecd4b Author: Ake Koomsin <a...@igel.co.jp> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/cpu.c Log Message: ----------- target/arm: honor HCR_E2H and HCR_TGE in arm_excp_unmasked() An exception targeting EL2 from lower EL is actually maskable when HCR_E2H and HCR_TGE are both set. This applies to both secure and non-secure Security state. We can remove the conditions that try to suppress masking of interrupts when we are Secure and the exception targets EL2 and Secure EL2 is disabled. This is OK because in that situation arm_phys_excp_target_el() will never return 2 as the target EL. The 'not if secure' check in this function was originally written before arm_hcr_el2_eff(), and back then the target EL returned by arm_phys_excp_target_el() could be 2 even if we were in Secure EL0/EL1; but it is no longer needed. Signed-off-by: Ake Koomsin <a...@igel.co.jp> Message-id: 20221017092432.546881-1-...@igel.co.jp [PMM: Add commit message paragraph explaining why it's OK to remove the checks on secure and SCR_EEL2] Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 310616d3677aad709d3eaf8f5f08683f2853f227 https://github.com/qemu/qemu/commit/310616d3677aad709d3eaf8f5f08683f2853f227 Author: Damien Hedde <damien.he...@greensocs.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M docs/devel/reset.rst M hw/core/resettable.c Log Message: ----------- hw/core/resettable: fix reset level counting The code for handling the reset level count in the Resettable code has two issues: The reset count is only decremented for the 1->0 case. This means that if there's ever a nested reset that takes the count to 2 then it will never again be decremented. Eventually the count will exceed the '50' limit in resettable_phase_enter() and QEMU will trip over the assertion failure. The repro case in issue 1266 is an example of this that happens now the SCSI subsystem uses three-phase reset. Secondly, the count is decremented only after the exit phase handler is called. Moving the reset count decrement from "just after" to "just before" calling the exit phase handler allows resettable_is_in_reset() to return false during the handler execution. This simplifies reset handling in resettable devices. Typically, a function that updates the device state will just need to read the current reset state and not anymore treat the "in a reset-exit transition" as a special case. Note that the semantics change to the *_is_in_reset() functions will have no effect on the current codebase, because only two devices (hw/char/cadence_uart.c and hw/misc/zynq_sclr.c) currently call those functions, and in neither case do they do it from the device's exit phase methed. Fixes: 4a5fc890 ("scsi: Use device_cold_reset() and bus_cold_reset()") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1266 Signed-off-by: Damien Hedde <damien.he...@greensocs.com> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Reported-by: Michael Peter <michael.pe...@hensoldt-cyber.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Message-id: 20221020142749.3357951-1-peter.mayd...@linaro.org Buglink: https://bugs.launchpad.net/qemu/+bug/1905297 Reported-by: Michael Peter <michael.pe...@hensoldt-cyber.com> [PMM: adjust the docs paragraph changed to get the name of the 'enter' phase right and to clarify exactly when the count is adjusted; rewrite the commit message] Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 7764963b9239dc966122617cc8b61d4530d6ce2a https://github.com/qemu/qemu/commit/7764963b9239dc966122617cc8b61d4530d6ce2a Author: Peter Maydell <peter.mayd...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/hyperv/hyperv.c Log Message: ----------- hw/hyperv/hyperv.c: Use device_cold_reset() instead of device_legacy_reset() The semantic difference between the deprecated device_legacy_reset() function and the newer device_cold_reset() function is that the new function resets both the device itself and any qbuses it owns, whereas the legacy function resets just the device itself and nothing else. In hyperv_synic_reset() we reset a SynICState, which has no qbuses, so for this purpose the two functions behave identically and we can stop using the deprecated one. Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Reviewed-by: Maciej S. Szmigiero <maciej.szmigi...@oracle.com> Message-id: 20221013171817.1447562-1-peter.mayd...@linaro.org Commit: 7719419deb07a431455dfb0178480ef4be2d3e2c https://github.com/qemu/qemu/commit/7719419deb07a431455dfb0178480ef4be2d3e2c Author: Axel Heider <axel.hei...@hensoldt.net> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/timer/imx_epit.c Log Message: ----------- target/imx: reload cmp timer outside of the reload ptimer transaction When running seL4 tests (https://docs.sel4.systems/projects/sel4test) on the sabrelight platform, the timer tests fail. The arm/imx6 EPIT timer interrupt does not fire properly, instead of a e.g. second in can take up to a minute to finally see the interrupt. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1263 Signed-off-by: Axel Heider <axel.hei...@hensoldt.net> Message-id: 166663118138.13362.122996722904609287...@git.sr.ht Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: edc05dd43ade287e735f1d8c972562dbdd12a378 https://github.com/qemu/qemu/commit/edc05dd43ade287e735f1d8c972562dbdd12a378 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/helper.c M target/arm/internals.h M target/arm/ptw.c Log Message: ----------- target/arm: Introduce regime_is_stage2 Reduce the amount of typing required for this check. Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20221024051851.3074715-2-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 48da29e485af5c92e284fbb6ef279b2a98eea7c4 https://github.com/qemu/qemu/commit/48da29e485af5c92e284fbb6ef279b2a98eea7c4 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/ptw.c Log Message: ----------- target/arm: Add ptw_idx to S1Translate Hoist the computation of the mmu_idx for the ptw up to get_phys_addr_with_struct and get_phys_addr_twostage. This removes the duplicate check for stage2 disabled from the middle of the walk, performing it only once. Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Tested-by: Alex Bennée <alex.ben...@linaro.org> Message-id: 20221024051851.3074715-3-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 980a68925c8f19ae181c226af0776c0e3ddd0264 https://github.com/qemu/qemu/commit/980a68925c8f19ae181c226af0776c0e3ddd0264 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/cpu.h Log Message: ----------- target/arm: Add isar predicates for FEAT_HAFDBS The MMFR1 field may indicate support for hardware update of access flag alone, or access flag and dirty bit. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20221024051851.3074715-4-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 8973922783483dee02aaf254a9d6a8fdd3e200f4 https://github.com/qemu/qemu/commit/8973922783483dee02aaf254a9d6a8fdd3e200f4 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/helper.c M target/arm/internals.h Log Message: ----------- target/arm: Extract HA and HD in aa64_va_parameters Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Message-id: 20221024051851.3074715-5-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 93e5b3a6f9c7e481e781bde69a5f87cd93cc1a34 https://github.com/qemu/qemu/commit/93e5b3a6f9c7e481e781bde69a5f87cd93cc1a34 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/ptw.c Log Message: ----------- target/arm: Move S1_ptw_translate outside arm_ld[lq]_ptw Separate S1 translation from the actual lookup. Will enable lpae hardware updates. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20221024051851.3074715-6-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: f0a398a2490656fac87b7ee4ba1fb01a42840875 https://github.com/qemu/qemu/commit/f0a398a2490656fac87b7ee4ba1fb01a42840875 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/internals.h Log Message: ----------- target/arm: Add ARMFault_UnsuppAtomicUpdate This fault type is to be used with FEAT_HAFDBS when the guest enables hw updates, but places the tables in memory where atomic updates are unsupported. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Message-id: 20221024051851.3074715-7-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: fe4ddc151b72a06eaeaa2359c51b66e698dd9c44 https://github.com/qemu/qemu/commit/fe4ddc151b72a06eaeaa2359c51b66e698dd9c44 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/ptw.c Log Message: ----------- target/arm: Remove loop from get_phys_addr_lpae The unconditional loop was used both to iterate over levels and to control parsing of attributes. Use an explicit goto in both cases. While this appears less clean for iterating over levels, we will need to jump back into the middle of this loop for atomic updates, which is even uglier. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20221024051851.3074715-8-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 27c1b81d6195ca5f39d656c5cca497ed78943339 https://github.com/qemu/qemu/commit/27c1b81d6195ca5f39d656c5cca497ed78943339 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/ptw.c Log Message: ----------- target/arm: Fix fault reporting in get_phys_addr_lpae Always overriding fi->type was incorrect, as we would not properly propagate the fault type from S1_ptw_translate, or arm_ldq_ptw. Simplify things by providing a new label for a translation fault. For other faults, store into fi directly. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Message-id: 20221024051851.3074715-9-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 4566609176f82a8033d422bc6c04fc9c354bed24 https://github.com/qemu/qemu/commit/4566609176f82a8033d422bc6c04fc9c354bed24 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/ptw.c Log Message: ----------- target/arm: Don't shift attrs in get_phys_addr_lpae Leave the upper and lower attributes in the place they originate from in the descriptor. Shifting them around is confusing, since one cannot read the bit numbers out of the manual. Also, new attributes have been added which would alter the shifts. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Message-id: 20221024051851.3074715-10-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 0e8df0fe2425eae7baaf18da869da9aa3c44dc03 https://github.com/qemu/qemu/commit/0e8df0fe2425eae7baaf18da869da9aa3c44dc03 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/ptw.c Log Message: ----------- target/arm: Consider GP an attribute in get_phys_addr_lpae Both GP and DBM are in the upper attribute block. Extend the computation of attrs to include them, then simplify the setting of guarded. Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Message-id: 20221024051851.3074715-11-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 34a57faeab62b27c01f008ef08654ca225e46673 https://github.com/qemu/qemu/commit/34a57faeab62b27c01f008ef08654ca225e46673 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/ptw.c Log Message: ----------- target/arm: Tidy merging of attributes from descriptor and table Replace some gotos with some nested if statements. Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Message-id: 20221024051851.3074715-12-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 71943a1e9084dde71cabba5895920f3a0c54de9b https://github.com/qemu/qemu/commit/71943a1e9084dde71cabba5895920f3a0c54de9b Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M docs/system/arm/emulation.rst M target/arm/cpu64.c M target/arm/ptw.c Log Message: ----------- target/arm: Implement FEAT_HAFDBS, access flag portion Perform the atomic update for hardware management of the access flag. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20221024051851.3074715-13-richard.hender...@linaro.org [PMM: Fix accidental PROT_WRITE to PAGE_WRITE; add missing main-loop.h include] Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 65c123fdf577413a7d910e6b07c10e79d118041f https://github.com/qemu/qemu/commit/65c123fdf577413a7d910e6b07c10e79d118041f Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/cpu64.c M target/arm/ptw.c Log Message: ----------- target/arm: Implement FEAT_HAFDBS, dirty bit portion Perform the atomic update for hardware management of the dirty bit. Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20221024051851.3074715-14-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: c8d6c286ab4bff1c5ff511f3e834fb2a713d65d2 https://github.com/qemu/qemu/commit/c8d6c286ab4bff1c5ff511f3e834fb2a713d65d2 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M target/arm/ptw.c Log Message: ----------- target/arm: Use the max page size in a 2-stage ptw We had only been reporting the stage2 page size. This causes problems if stage1 is using a larger page size (16k, 2M, etc), but stage2 is using a smaller page size, because cputlb does not set large_page_{addr,mask} properly. Fix by using the max of the two page sizes. Reported-by: Marc Zyngier <m...@kernel.org> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20221024051851.3074715-15-richard.hender...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 7966d70f6f6b188475e67c2c363f19eec3d28c96 https://github.com/qemu/qemu/commit/7966d70f6f6b188475e67c2c363f19eec3d28c96 Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/arm/aspeed.c M hw/arm/mps2-tz.c M hw/core/reset.c M hw/hppa/machine.c M hw/i386/microvm.c M hw/i386/pc.c M hw/ppc/pegasos2.c M hw/ppc/pnv.c M hw/ppc/spapr.c M hw/s390x/s390-virtio-ccw.c M include/hw/boards.h M include/sysemu/reset.h M migration/savevm.c M qapi/run-state.json M softmmu/runstate.c Log Message: ----------- reset: allow registering handlers that aren't called by snapshot loading Snapshot loading only expects to call deterministic handlers, not non-deterministic ones. So introduce a way of registering handlers that won't be called when reseting for snapshots. Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Message-id: 20221025004327.568476-2-ja...@zx2c4.com [PMM: updated json doc comment with Markus' text; fixed checkpatch style nit] Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: e1e618b9a0f9c23e9caa5933fa30ee3d33e00bfe https://github.com/qemu/qemu/commit/e1e618b9a0f9c23e9caa5933fa30ee3d33e00bfe Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M include/sysemu/device_tree.h M softmmu/device_tree.c Log Message: ----------- device-tree: add re-randomization helper function When the system reboots, the rng-seed that the FDT has should be re-randomized, so that the new boot gets a new seed. Several architectures require this functionality, so export a function for injecting a new seed into the given FDT. Cc: Alistair Francis <alistair.fran...@wdc.com> Cc: David Gibson <da...@gibson.dropbear.id.au> Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Message-id: 20221025004327.568476-3-ja...@zx2c4.com Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 14b29fea742034186403914b4d013d0e83f19e78 https://github.com/qemu/qemu/commit/14b29fea742034186403914b4d013d0e83f19e78 Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/i386/x86.c Log Message: ----------- x86: do not re-randomize RNG seed on snapshot load Snapshot loading is supposed to be deterministic, so we shouldn't re-randomize the various seeds used. Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Message-id: 20221025004327.568476-4-ja...@zx2c4.com Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 98aa4c839d2cd24a2f6d3bbaa68fcb5d4aa502cd https://github.com/qemu/qemu/commit/98aa4c839d2cd24a2f6d3bbaa68fcb5d4aa502cd Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/arm/boot.c Log Message: ----------- arm: re-randomize rng-seed on reboot When the system reboots, the rng-seed that the FDT has should be re-randomized, so that the new boot gets a new seed. Since the FDT is in the ROM region at this point, we add a hook right after the ROM has been added, so that we have a pointer to that copy of the FDT. Cc: Peter Maydell <peter.mayd...@linaro.org> Cc: qemu-...@nongnu.org Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Message-id: 20221025004327.568476-5-ja...@zx2c4.com Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 64c75db3c5ab6f8c75c8132b200cf1c64186f04b https://github.com/qemu/qemu/commit/64c75db3c5ab6f8c75c8132b200cf1c64186f04b Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/riscv/boot.c Log Message: ----------- riscv: re-randomize rng-seed on reboot When the system reboots, the rng-seed that the FDT has should be re-randomized, so that the new boot gets a new seed. Since the FDT is in the ROM region at this point, we add a hook right after the ROM has been added, so that we have a pointer to that copy of the FDT. Cc: Palmer Dabbelt <pal...@dabbelt.com> Cc: Alistair Francis <alistair.fran...@wdc.com> Cc: Bin Meng <bin.m...@windriver.com> Cc: qemu-ri...@nongnu.org Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Message-id: 20221025004327.568476-6-ja...@zx2c4.com Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 1ffd007c9c5862d50235cfb507a1722fe1c213b5 https://github.com/qemu/qemu/commit/1ffd007c9c5862d50235cfb507a1722fe1c213b5 Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/m68k/virt.c Log Message: ----------- m68k/virt: do not re-randomize RNG seed on snapshot load Snapshot loading is supposed to be deterministic, so we shouldn't re-randomize the various seeds used. Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Message-id: 20221025004327.568476-7-ja...@zx2c4.com Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: fbbbe7eb23e4120a64238d41367a3fabccb59781 https://github.com/qemu/qemu/commit/fbbbe7eb23e4120a64238d41367a3fabccb59781 Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/m68k/q800.c Log Message: ----------- m68k/q800: do not re-randomize RNG seed on snapshot load Snapshot loading is supposed to be deterministic, so we shouldn't re-randomize the various seeds used. Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Message-id: 20221025004327.568476-8-ja...@zx2c4.com Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 4fbae24450a67c3dfea6d2617e6d1f7a4dd206dc https://github.com/qemu/qemu/commit/4fbae24450a67c3dfea6d2617e6d1f7a4dd206dc Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/mips/boston.c Log Message: ----------- mips/boston: re-randomize rng-seed on reboot When the system reboots, the rng-seed that the FDT has should be re-randomized, so that the new boot gets a new seed. Since the FDT is in the ROM region at this point, we add a hook right after the ROM has been added, so that we have a pointer to that copy of the FDT. Cc: Aleksandar Rikalo <aleksandar.rik...@syrmia.com> Cc: Paul Burton <paulbur...@kernel.org> Cc: Philippe Mathieu-Daudé <f4...@amsat.org> Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Message-id: 20221025004327.568476-9-ja...@zx2c4.com Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 2db07d0506d365884b140fd5640fd71db15eacbc https://github.com/qemu/qemu/commit/2db07d0506d365884b140fd5640fd71db15eacbc Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/openrisc/boot.c Log Message: ----------- openrisc: re-randomize rng-seed on reboot When the system reboots, the rng-seed that the FDT has should be re-randomized, so that the new boot gets a new seed. Since the FDT is in the ROM region at this point, we add a hook right after the ROM has been added, so that we have a pointer to that copy of the FDT. Cc: Stafford Horne <sho...@gmail.com> Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Message-id: 20221025004327.568476-11-ja...@zx2c4.com Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: a76b911c0de3d72e245060a57d02f816fb1334e2 https://github.com/qemu/qemu/commit/a76b911c0de3d72e245060a57d02f816fb1334e2 Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/rx/rx-gdbsim.c Log Message: ----------- rx: re-randomize rng-seed on reboot When the system reboots, the rng-seed that the FDT has should be re-randomized, so that the new boot gets a new seed. Since the FDT is in the ROM region at this point, we add a hook right after the ROM has been added, so that we have a pointer to that copy of the FDT. Cc: Yoshinori Sato <ys...@users.sourceforge.jp> Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Message-id: 20221025004327.568476-12-ja...@zx2c4.com Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 6233a138599bea89ad683b883dca38388f12fd2d https://github.com/qemu/qemu/commit/6233a138599bea89ad683b883dca38388f12fd2d Author: Jason A. Donenfeld <ja...@zx2c4.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M hw/mips/malta.c Log Message: ----------- mips/malta: pass RNG seed via env var and re-randomize on reboot As of the kernel commit linked below, Linux ingests an RNG seed passed as part of the environment block by the bootloader or firmware. This mechanism works across all different environment block types, generically, which pass some block via the second firmware argument. On malta, this has been tested to work when passed as an argument from U-Boot's linux_env_set. As is the case on most other architectures (such as boston), when booting with `-kernel`, QEMU, acting as the bootloader, should pass the RNG seed, so that the machine has good entropy for Linux to consume. So this commit implements that quite simply by using the guest random API, which is what is used on nearly all other archs too. It also reinitializes the seed on reboot, so that it is always fresh. Link: https://git.kernel.org/torvalds/c/056a68cea01 Cc: Aleksandar Rikalo <aleksandar.rik...@syrmia.com> Cc: Paul Burton <paulbur...@kernel.org> Cc: Philippe Mathieu-Daudé <f4...@amsat.org> Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: d0d8d5707dffe56107fb0ca9a40274f0cfaf0feb https://github.com/qemu/qemu/commit/d0d8d5707dffe56107fb0ca9a40274f0cfaf0feb Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M docs/devel/reset.rst M docs/system/arm/emulation.rst M hw/arm/aspeed.c M hw/arm/boot.c M hw/arm/mps2-tz.c M hw/arm/virt.c M hw/core/reset.c M hw/core/resettable.c M hw/hppa/machine.c M hw/hyperv/hyperv.c M hw/i386/microvm.c M hw/i386/pc.c M hw/i386/x86.c M hw/m68k/q800.c M hw/m68k/virt.c M hw/mips/boston.c M hw/mips/malta.c M hw/openrisc/boot.c M hw/ppc/pegasos2.c M hw/ppc/pnv.c M hw/ppc/spapr.c M hw/riscv/boot.c M hw/rx/rx-gdbsim.c M hw/s390x/s390-virtio-ccw.c M hw/timer/imx_epit.c M include/hw/boards.h M include/sysemu/device_tree.h M include/sysemu/reset.h M migration/savevm.c M qapi/run-state.json M softmmu/device_tree.c M softmmu/runstate.c M target/arm/cpu.c M target/arm/cpu.h M target/arm/cpu64.c M target/arm/helper.c M target/arm/internals.h M target/arm/ptw.c Log Message: ----------- Merge tag 'pull-target-arm-20221027' of https://git.linaro.org/people/pmaydell/qemu-arm into staging target-arm queue: * Implement FEAT_E0PD * Implement FEAT_HAFDBS * honor HCR_E2H and HCR_TGE in arm_excp_unmasked() * hw/arm/virt: Fix devicetree warnings about the virtio-iommu node * hw/core/resettable: fix reset level counting * hw/hyperv/hyperv.c: Use device_cold_reset() instead of device_legacy_reset() * imx: reload cmp timer outside of the reload ptimer transaction * x86: do not re-randomize RNG seed on snapshot load * m68k/virt: do not re-randomize RNG seed on snapshot load * m68k/q800: do not re-randomize RNG seed on snapshot load * arm: re-randomize rng-seed on reboot * riscv: re-randomize rng-seed on reboot * mips/boston: re-randomize rng-seed on reboot * openrisc: re-randomize rng-seed on reboot * rx: re-randomize rng-seed on reboot # -----BEGIN PGP SIGNATURE----- # # iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmNagAQZHHBldGVyLm1h # eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3sv6D/0VXf61t6IcmQ342L5IeUeA # jixouWQhma3WwFDjbEo3BehgBhdwH2gxF8XWZNudV1x5P4JbCwiD/sm9FKtNY3IX # lOpcg4F7Ge6EHCEQ5PM75G4TNQBw1BTwGuNrXm8kpVZ7i7C4Zo3gzbqVYv59d406 # fMwZBZwwavn9xYI/ZOUq3CKv2W/xrveFIEfafQB1mmcu4azZRLlOdMXvsMY/Te1/ # GQ+0RPcemNfvfFwYfMKT9dqiCWgqzAoiGQNH2944mTnoJJMsI0JLcXP2z/4fFfYv # J1m7mhOO9KiqUWzxJofQOgQIic1q6AY0lLw272mA/rbwwlmlm/bNl1DGE5Lyw64d # t/dDWE6X8IHPqPzqqrOd8vpKIKUriDSL83D5uULpPXaQwyckTFDsAMu5VX4uswbm # B+SizTghSNwMbOq1XsQg6DDiHEelbwwrltsLOSQujXrrngtSxjWXuFgWem4gT8HL # uVQtrfrASV/gNBLRNX73vuL6pJaTEVqk53JI8MamZEIRLO1s6/nreOR13E+0611T # iMywoOhAQA3RDe9NU0zgg6EGyskRZQG1CRTDQAz1sAt8WcHokg7Yj7LlfGE+/+Bh # 4cIuJI56Uf3DJF51A52+roaQkZDJZZkfE1EG8uMDIWszP5v2GDcwx3AS3FLuaDfH # QHPsecbzEURFTmdt5VrKzg== # =RD6C # -----END PGP SIGNATURE----- # gpg: Signature made Thu 27 Oct 2022 08:56:36 EDT # gpg: using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE # gpg: issuer "peter.mayd...@linaro.org" # gpg: Good signature from "Peter Maydell <peter.mayd...@linaro.org>" [full] # gpg: aka "Peter Maydell <pmayd...@gmail.com>" [full] # gpg: aka "Peter Maydell <pmayd...@chiark.greenend.org.uk>" [full] # gpg: aka "Peter Maydell <pe...@archaic.org.uk>" [unknown] # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE * tag 'pull-target-arm-20221027' of https://git.linaro.org/people/pmaydell/qemu-arm: (31 commits) mips/malta: pass RNG seed via env var and re-randomize on reboot rx: re-randomize rng-seed on reboot openrisc: re-randomize rng-seed on reboot mips/boston: re-randomize rng-seed on reboot m68k/q800: do not re-randomize RNG seed on snapshot load m68k/virt: do not re-randomize RNG seed on snapshot load riscv: re-randomize rng-seed on reboot arm: re-randomize rng-seed on reboot x86: do not re-randomize RNG seed on snapshot load device-tree: add re-randomization helper function reset: allow registering handlers that aren't called by snapshot loading target/arm: Use the max page size in a 2-stage ptw target/arm: Implement FEAT_HAFDBS, dirty bit portion target/arm: Implement FEAT_HAFDBS, access flag portion target/arm: Tidy merging of attributes from descriptor and table target/arm: Consider GP an attribute in get_phys_addr_lpae target/arm: Don't shift attrs in get_phys_addr_lpae target/arm: Fix fault reporting in get_phys_addr_lpae target/arm: Remove loop from get_phys_addr_lpae target/arm: Add ARMFault_UnsuppAtomicUpdate ... Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 9306d7c057ecc85adcf05c564820d3e806a83b9a https://github.com/qemu/qemu/commit/9306d7c057ecc85adcf05c564820d3e806a83b9a Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-30 (Sun, 30 Oct 2022) Changed paths: M meson.build M qga/channel-posix.c A qga/commands-bsd.c M qga/commands-common.h A qga/commands-linux.c M qga/commands-posix.c M qga/main.c M qga/meson.build Log Message: ----------- Merge tag 'qga-pull-2022-10-26' of https://github.com/kostyanf14/qemu into staging qga-pull-2022-10-26 # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEwsLBCepDxjwUI+uE711egWG6hOcFAmNZcDMACgkQ711egWG6 # hOdRPQ/8D5T9GpkC+Ar9GLlx/DZFZx0+FxdolV06TcuSXTz3SXYtVKJUSaLjW3SF # ZRMbBYxqO1NKXWfe8kPKzSR7lJY9fBdn75AUbN88iYW7xu2x+A8LNskVOanu8vbo # eqcjO1x3sStzdZHfA4uFUsF7J9A2zqflmZxTMWm1UDt1HTklAJLPkb/E6DnVc3Rp # WhI89JWvAZBOZoVBq7MyfBPEyf3KibHHMWENVY7vGmmXaw9EJQYpXNEMTeBP1VI3 # tTLxrr8WoGr5w2K4a3Kku2ixD+IOPPWXbZXmSjAGgOwiVSkORwMbUVHnN/A11O3O # b8XOGZ5LkFjgORTsm9ePxXJvcHlsxWZIb80ZnZA9oGF/33S7RbW1Kcl6OAVGdm0S # ZzysqPLPJStxuUvesqmFfGkvZ29EHNlWjrIfXQz5mnlDsnOi/0Bus0vNjc/kBNPF # KfHW6MNw4A2gmVcrNg2f2rlYveHa6e+4XsS5xJJ74WDMHWxMZRaFXyO+qU6p7lEJ # I5pLD9oEM856y2CpQJpoJnZ6ddLEag652x08WpCFMI76x5XLN8D0lszlgJghR7M7 # 84TKSF6HBvrMS+jQc3xZZlK7ELSluKtUFnSTkNZg9WiuQC/FS+7XRcC6lek1qBAL # WVsKL5UwM/Eyq+O/B8R7w6TEWFxnEFmjddq1rD6kH8LYx1Lmt4M= # =h41f # -----END PGP SIGNATURE----- # gpg: Signature made Wed 26 Oct 2022 13:36:51 EDT # gpg: using RSA key C2C2C109EA43C63C1423EB84EF5D5E8161BA84E7 # gpg: Good signature from "Kostiantyn Kostiuk (Upstream PR sign) <kkost...@redhat.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: C2C2 C109 EA43 C63C 1423 EB84 EF5D 5E81 61BA 84E7 * tag 'qga-pull-2022-10-26' of https://github.com/kostyanf14/qemu: qga: add channel path to error messages qga: Add HW address getting for FreeBSD qga: Move HW address getting to a separate function qga: Add support for user password setting in FreeBSD qga: Add shutdown/halt/reboot support for FreeBSD qga: Add UFS freeze/thaw support for FreeBSD qga: Move Linux-specific FS freeze/thaw code to a separate file qga: Add initial FreeBSD support Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 75d30fde55485b965a1168a21d016dd07b50ed32 https://github.com/qemu/qemu/commit/75d30fde55485b965a1168a21d016dd07b50ed32 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2022-10-30 (Sun, 30 Oct 2022) Changed paths: M MAINTAINERS M block.c A block/blkio.c M block/blkverify.c M block/block-backend.c A block/block-ram-registrar.c M block/crypto.c M block/file-posix.c M block/gluster.c M block/io.c M block/meson.build M block/mirror.c M block/nbd.c M block/nvme.c M block/parallels.c M block/qcow.c M block/qed.c M block/raw-format.c M block/replication.c M block/ssh.c M block/vhdx.c M hw/block/virtio-blk.c M hw/core/numa.c M include/block/block-common.h M include/block/block-global-state.h M include/block/block_int-common.h M include/exec/cpu-common.h M include/hw/virtio/virtio-blk.h M include/qemu/coroutine.h M include/sysemu/block-backend-global-state.h A include/sysemu/block-ram-registrar.h M meson.build M meson_options.txt M qapi/block-core.json M qemu-img.c M scripts/meson-buildoptions.sh M softmmu/physmem.c M stubs/meson.build A stubs/physmem.c M tests/qtest/modules-test.c M util/qemu-coroutine-lock.c M util/vfio-helpers.c Log Message: ----------- Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into staging Pull request # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmNZg14ACgkQnKSrs4Gr # c8hwwwf/Udbnt6n4SShezEIYRe0udLvuyo1HwcMNLWjllHLfp/yNDcPsGk+r13Ue # TxrvbVaucxB5RPdN67KmzPyu+wPM/o0nij7c4CkBvwNPXmfUCF97Lj0prEL+ZeHp # HmNg08FRfHM2vKMFyJXqDAidBecUDizLrP9C3nc/LAF6fr9ds+vfFuB/12eSXvZ+ # RLnaAj7KLt2MzkgWbDiC6066TPZWCcwFJmc0zkCAthCepokDrKfSHc+0u9U/NXA9 # Qv7qKcEBYq3vP3SCvDtbKU3Ig4CoiwO3A3O9wZTypamU2816H9HtEJ5NPtjNUFPF # dm3siyKODbDx4mzba/Xv/26lHGSsJA== # =bmGV # -----END PGP SIGNATURE----- # gpg: Signature made Wed 26 Oct 2022 14:58:38 EDT # gpg: using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefa...@redhat.com>" [ultimate] # gpg: aka "Stefan Hajnoczi <stefa...@gmail.com>" [ultimate] # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * tag 'block-pull-request' of https://gitlab.com/stefanha/qemu: virtio-blk: use BDRV_REQ_REGISTERED_BUF optimization hint blkio: implement BDRV_REQ_REGISTERED_BUF optimization stubs: add qemu_ram_block_from_host() and qemu_ram_get_fd() exec/cpu-common: add qemu_ram_get_fd() block: add BlockRAMRegistrar numa: use QLIST_FOREACH_SAFE() for RAM block notifiers block: return errors from bdrv_register_buf() block: add BDRV_REQ_REGISTERED_BUF request flag block: use BdrvRequestFlags type for supported flag fields block: pass size to bdrv_unregister_buf() numa: call ->ram_block_removed() in ram_block_notifer_remove() blkio: add libblkio block driver coroutine: add flag to re-queue at front of CoQueue Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Compare: https://github.com/qemu/qemu/compare/344744e148e6...75d30fde5548