Skip to content
Snippets Groups Projects
  1. Sep 13, 2023
    • Stefan Hajnoczi's avatar
      Merge tag 'nvme-next-pull-request' of https://gitlab.com/birkelund/qemu into staging · 6c71b8a5
      Stefan Hajnoczi authored
      hw/nvme updates
      
      Two fixes for dynamic array allocation.
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQEzBAABCgAdFiEEUigzqnXi3OaiR2bATeGvMW1PDekFAmUAc8AACgkQTeGvMW1P
      # DelwhQgAxD7imw85V89Dz58LgrFoq5XZz2cq6Q5BsudyZd8FW5r7lOn9c1i0Yu2x
      # iiP93FX0b5LPQ9/8/liz3oHu1HZ7+hX+VeDZSQ1/bugfXM/eDSPA7lf7GG1np312
      # 9lKRs8o+T4Di7v93kdiEi6G3b0jQSmZ722aMa54isk58hy1mcUTnGxvPZpVZutTP
      # lYhwuElQIsnnKXB0jaRlpcDkpXdHJ1wwziaYLM7pus+tElMiSkFP05j2pX9iigKu
      # 7g+Hs+DaqrOzdoF/6uu72IKygq3/5H8iou1No/7OICWbFti5Qhhra0OKQE6nrlKd
      # 51fnWA6VjpO5g9+diwRRYbjEiOrkqQ==
      # =wn4B
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Tue 12 Sep 2023 10:20:48 EDT
      # gpg:                using RSA key 522833AA75E2DCE6A24766C04DE1AF316D4F0DE9
      # gpg: Good signature from "Klaus Jensen <its@irrelevant.dk>" [unknown]
      # gpg:                 aka "Klaus Jensen <k.jensen@samsung.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: DDCA 4D9C 9EF9 31CC 3468  4272 63D5 6FC5 E55D A838
      #      Subkey fingerprint: 5228 33AA 75E2 DCE6 A247  66C0 4DE1 AF31 6D4F 0DE9
      
      * tag 'nvme-next-pull-request' of https://gitlab.com/birkelund/qemu
      
      :
        hw/nvme: Avoid dynamic stack allocation
        hw/nvme: Use #define to avoid variable length array
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      6c71b8a5
    • Stefan Hajnoczi's avatar
      Merge tag 'pull-request-2023-09-12' of https://gitlab.com/thuth/qemu into staging · 9a8af699
      Stefan Hajnoczi authored
      * Enable AP (crypto adapter) instructions for s390x PV-guests
      * Allow NVME for s390x machines
      * Update Linux headers to v6.6-rc1
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmUATY8RHHRodXRoQHJl
      # ZGhhdC5jb20ACgkQLtnXdP5wLbVjBhAAlfXhQuxFdSRkPLyPgSuAInGTZfsW7A56
      # 6vunyzP3ZyY5G0WtbgKZ5ovDIfjzlNYvkxWmQ4m4PWEY2JaBKOqeS9+lFkdZmGD9
      # Sj1u+EereQS5MsJ31Vg2LHDKv5QbtNbVOq4KIm30qpzj1OfhfZzzqU0tGnaDlz/T
      # PW2bSQl4cGHExcYpprWx02cXsMnodWwGV2FTgtc9D42YyE1q5IDX8phjFFzUHfcQ
      # p3cjM0S2M8KOGJ5+0w2/0C4DEKgLH0OuA/JY3W+f94O+jdqoYUJpom4m6FywIKrr
      # 38c7UqQESh7r/te1UkgvxfVCbTlptsS21xQNbsa+TS/apP6IMU7VJI3N14Qshtba
      # cqcP54aGC+9v5FRz7E5njCJWJQv9JWInrKYTEEtSTFCguGCQO2owulba70MNrQc8
      # hQkBXOzqnqYVxdktcHkbnq6QZoKLfsGAxfarQPPJySNUyGgoaM0JFlzp3z0hjAHY
      # aGRZdN4kU+hF7/0RQygYDN4AzTQhn3EMZ6q6o81xVeKzfbziA3fCLXX5J1bd+rO8
      # 3LKPrmOuk3dadRVlVTyFrtlG9SEMRen8dh12oru28ebW2WTeYm71zQf7SCPGzaKE
      # hJMtlN7B9ogGxDpLJvTDLHbKNbwyIcW00GjyWiUwBg88ACg63tulD2kpUxBs2PwF
      # bVk/lIWMqL0=
      # =zeRZ
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Tue 12 Sep 2023 07:37:51 EDT
      # gpg:                using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
      # gpg:                issuer "thuth@redhat.com"
      # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
      # gpg:                 aka "Thomas Huth <thuth@redhat.com>" [full]
      # gpg:                 aka "Thomas Huth <huth@tuxfamily.org>" [full]
      # gpg:                 aka "Thomas Huth <th.huth@posteo.de>" [unknown]
      # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3  EAB9 2ED9 D774 FE70 2DB5
      
      * tag 'pull-request-2023-09-12' of https://gitlab.com/thuth/qemu
      
      :
        tests/qtest/pflash: Clean up local variable shadowing
        kconfig: Add NVME to s390x machines
        target/s390x: AP-passthrough for PV guests
        target/s390x/kvm: Refactor AP functionalities
        linux-headers: Update to Linux v6.6-rc1
        s390x: do a subsystem reset before the unprotect on reboot
        s390x/ap: fix missing subsystem reset registration
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      9a8af699
    • Stefan Hajnoczi's avatar
      Merge tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging · 7754c971
      Stefan Hajnoczi authored
      UI patch queue
      
      - vhost-user-gpu: support dmabuf modifiers
      - fix VNC crash when there are no active_console
      - cleanups and refactoring in ui/vc code
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQJQBAABCAA6FiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmUAQX4cHG1hcmNhbmRy
      # ZS5sdXJlYXVAcmVkaGF0LmNvbQAKCRDa6OEJdZac5Y4jD/4/whR7a1KZqHytl6sc
      # cCQ0Xn0gpcPM8rn3tWItp2vAOlGmx8ACfAyXYa5QzO7pBOU/xoMJt8a99geNRXFu
      # nN33UJ0NRAWW6V0/cF5AVe9clckzs1Vq4VX2ITP+VAG+c+kt4E3fgFn9o8nwnBrd
      # zuiqYz4pO9yBVO/av/FZQcBY8s9/M8jrdraDNNhsY2O2k2zLTxt1xxNG5qeVvPUw
      # 2RZyc/EOG7RzW8eUA55BW/NU8Olg5u7dxsB0jfYnWBQxknOy5c+wF9MTGJSKmdGk
      # HmgfMns6intUdfHmmJuDpP1Tiy1sVK1lkrsMeeQ67M84lYZsrSI+kIG5+YbWN8vx
      # mMB/qwDmNMVMnGiBN5/ktvAJwcilYBUqen0KFrEHBghTpGhqAVoBNCC1MT/9w/bO
      # c3/E1viuCi8OamPixVu9LeqQsxuP2jK5qxjfyDYH87HdnljSY6wFbVzD/2zz5YNv
      # 43JtEbP9bv1yyRRd+JTpD54vCK0IZK7MBR8MbJqfknpbEw1FSPofRQxCSe9BlSJ/
      # nYamatH9I9i92kGg5eD573X+UcLX9eOPBw8gVNKxuttwSIW1cwjGKi12B9MiFMg7
      # Z6jP3gvpe9DrYef+4Wojo1PAioyweZVG5IFtWIqXRZjPwAoIzzVgBcEtcq4qeZwX
      # BAliXWeUcRGsbLorT3COx2DjBw==
      # =Xsr0
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Tue 12 Sep 2023 06:46:22 EDT
      # gpg:                using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5
      # gpg:                issuer "marcandre.lureau@redhat.com"
      # gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>" [full]
      # gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>" [full]
      # Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5
      
      * tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu
      
      :
        ui: add precondition for dpy_get_ui_info()
        ui: fix crash when there are no active_console
        virtio-gpu/win32: set the destroy function on load
        ui/console: move DisplaySurface to its own header
        ui/vc: split off the VC part from console.c
        ui/vc: preliminary QemuTextConsole changes before split
        ui/console: remove redundant format field
        ui/vc: rename kbd_put to qemu_text_console functions
        ui/vc: remove kbd_put_keysym() and update function calls
        vmmouse: use explicit code
        vmmouse: replace DPRINTF with tracing
        vhost-user-gpu: support dmabuf modifiers
        contrib/vhost-user-gpu: add support for sending dmabuf modifiers
        docs: vhost-user-gpu: add protocol changes for dmabuf modifiers
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      7754c971
  2. Sep 12, 2023
  3. Sep 11, 2023
    • Stefan Hajnoczi's avatar
      Merge tag 'pull-vfio-20230911' of https://github.com/legoater/qemu into staging · 9ef49775
      Stefan Hajnoczi authored
      vfio queue:
      
      * Small downtime optimisation for VFIO migration
      * P2P support for VFIO migration
      * Introduction of a save_prepare() handler to fail VFIO migration
      * Fix on DMA logging ranges calculation for OVMF enabling dynamic window
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQIzBAABCAAdFiEEoPZlSPBIlev+awtgUaNDx8/77KEFAmT+uZQACgkQUaNDx8/7
      # 7KGFSw//UIqSet6MUxZZh/t7yfNFUTnxx6iPdChC3BphBaDDh99FCQrw5mPZ8ImF
      # 4rz0cIwSaHXraugEsC42TDaGjEmcAmYD0Crz+pSpLU21nKtYyWtZy6+9kyYslMNF
      # bUq0UwD0RGTP+ZZi6GBy1hM30y/JbNAGeC6uX8kyJRuK5Korfzoa/X5h+B2XfouW
      # 78G1mARHq5eOkGy91+rAJowdjqtkpKrzkfCJu83330Bb035qAT/PEzGs5LxdfTla
      # ORNqWHy3W+d8ZBicBQ5vwrk6D5JIZWma7vdXJRhs1wGO615cuyt1L8nWLFr8klW5
      # MJl+wM7DZ6UlSODq7r839GtSuWAnQc2j7JKc+iqZuBBk1v9fGXv2tZmtuTGkG2hN
      # nYXSQfuq1igu1nGVdxJv6WorDxsK9wzLNO2ckrOcKTT28RFl8oCDNSPPTKpwmfb5
      # i5RrGreeXXqRXIw0VHhq5EqpROLjAFwE9tkJndO8765Ag154plxssaKTUWo5wm7/
      # kjQVuRuhs5nnMXfL9ixLZkwD1aFn5fWAIaR0psH5vGD0fnB1Pba+Ux9ZzHvxp5D8
      # Kg3H6dKlht6VXdQ/qb0Up1LXCGEa70QM6Th2iO924ydZkkmqrSj+CFwGHvBsINa4
      # 89fYd77nbRbdwWurj3JIznJYVipau2PmfbjZ/jTed4RxjBQ+fPA=
      # =44e0
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Mon 11 Sep 2023 02:54:12 EDT
      # gpg:                using RSA key A0F66548F04895EBFE6B0B6051A343C7CFFBECA1
      # gpg: Good signature from "Cédric Le Goater <clg@redhat.com>" [unknown]
      # gpg:                 aka "Cédric Le Goater <clg@kaod.org>" [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: A0F6 6548 F048 95EB FE6B  0B60 51A3 43C7 CFFB ECA1
      
      * tag 'pull-vfio-20230911' of https://github.com/legoater/qemu
      
      :
        vfio/common: Separate vfio-pci ranges
        vfio/migration: Block VFIO migration with background snapshot
        vfio/migration: Block VFIO migration with postcopy migration
        migration: Add .save_prepare() handler to struct SaveVMHandlers
        migration: Move more initializations to migrate_init()
        vfio/migration: Fail adding device with enable-migration=on and existing blocker
        migration: Add migration prefix to functions in target.c
        vfio/migration: Allow migration of multiple P2P supporting devices
        vfio/migration: Add P2P support for VFIO migration
        vfio/migration: Refactor PRE_COPY and RUNNING state checks
        qdev: Add qdev_add_vm_change_state_handler_full()
        sysemu: Add prepare callback to struct VMChangeStateEntry
        vfio/migration: Move from STOP_COPY to STOP in vfio_save_cleanup()
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      9ef49775
    • Stefan Hajnoczi's avatar
      Merge tag 'pull-riscv-to-apply-20230911' of https://github.com/alistair23/qemu into staging · cb6c406e
      Stefan Hajnoczi authored
      First RISC-V PR for 8.2
      
       * Remove 'host' CPU from TCG
       * riscv_htif Fixup printing on big endian hosts
       * Add zmmul isa string
       * Add smepmp isa string
       * Fix page_check_range use in fault-only-first
       * Use existing lookup tables for MixColumns
       * Add RISC-V vector cryptographic instruction set support
       * Implement WARL behaviour for mcountinhibit/mcounteren
       * Add Zihintntl extension ISA string to DTS
       * Fix zfa fleq.d and fltq.d
       * Fix upper/lower mtime write calculation
       * Make rtc variable names consistent
       * Use abi type for linux-user target_ucontext
       * Add RISC-V KVM AIA Support
       * Fix riscv,pmu DT node path in the virt machine
       * Update CSR bits name for svadu extension
       * Mark zicond non-experimental
       * Fix satp_mode_finalize() when satp_mode.supported = 0
       * Fix non-KVM --enable-debug build
       * Add new extensions to hwprobe
       * Use accelerated helper for AES64KS1I
       * Allocate itrigger timers only once
       * Respect mseccfg.RLB for pmpaddrX changes
       * Align the AIA model to v1.0 ratified spec
       * Don't read the CSR in riscv_csrrw_do64
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQIzBAABCAAdFiEEaukCtqfKh31tZZKWr3yVEwxTgBMFAmT+ttMACgkQr3yVEwxT
      # gBN/rg/+KhOvL9xWSNb8pzlIsMQHLvndno0Sq5b9Rb/o5z1ekyYfyg6712N3JJpA
      # TIfZzOIW7oYZV8gHyaBtOt8kIbrjwzGB2rpCh4blhm+yNZv7Ym9Ko6AVVzoUDo7k
      # 2dWkLnC+52/l3SXGeyYMJOlgUUsQMwjD6ykDEr42P6DfVord34fpTH7ftwSasO9K
      # 35qJQqhUCgB3fMzjKTYICN6Rm1UluijTjRNXUZXC0XZlr+UKw2jT/UsybbWVXyNs
      # SmkRtF1MEVGvw+b8XOgA/nG1qVCWglTMcPvKjWMY+cY9WLM6/R9nXAV8OL/JPead
      # v1LvROJNukfjNtDW6AOl5/svOJTRLbIrV5EO7Hlm1E4kftGmE5C+AKZZ/VT4ucUK
      # XgqaHoXh26tFEymVjzbtyFnUHNv0zLuGelTnmc5Ps1byLSe4lT0dBaJy6Zizg0LE
      # DpTR7s3LpyV3qB96Xf9bOMaTPsekUjD3dQI/3X634r36+YovRXapJDEDacN9whbU
      # BSZc20NoM5UxVXFTbELQXolue/X2BRLxpzB+BDG8/cpu/MPgcCNiOZaVrr/pOo33
      # 6rwwrBhLSCfYAXnJ52qTUEBz0Z/FnRPza8AU/uuRYRFk6JhUXIonmO6xkzsoNKuN
      # QNnih/v1J+1XqUyyT2InOoAiTotzHiWgKZKaMfAhomt2j/slz+A=
      # =aqcx
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Mon 11 Sep 2023 02:42:27 EDT
      # gpg:                using RSA key 6AE902B6A7CA877D6D659296AF7C95130C538013
      # gpg: Good signature from "Alistair Francis <alistair@alistair23.me>" [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: 6AE9 02B6 A7CA 877D 6D65  9296 AF7C 9513 0C53 8013
      
      * tag 'pull-riscv-to-apply-20230911' of https://github.com/alistair23/qemu
      
      : (45 commits)
        target/riscv: don't read CSR in riscv_csrrw_do64
        target/riscv: Align the AIA model to v1.0 ratified spec
        target/riscv/pmp.c: respect mseccfg.RLB for pmpaddrX changes
        target/riscv: Allocate itrigger timers only once
        target/riscv: Use accelerated helper for AES64KS1I
        linux-user/riscv: Add new extensions to hwprobe
        hw/intc/riscv_aplic.c fix non-KVM --enable-debug build
        hw/riscv/virt.c: fix non-KVM --enable-debug build
        riscv: zicond: make non-experimental
        target/riscv: fix satp_mode_finalize() when satp_mode.supported = 0
        target/riscv: Update CSR bits name for svadu extension
        hw/riscv: virt: Fix riscv,pmu DT node path
        target/riscv: select KVM AIA in riscv virt machine
        target/riscv: update APLIC and IMSIC to support KVM AIA
        target/riscv: Create an KVM AIA irqchip
        target/riscv: check the in-kernel irqchip support
        target/riscv: support the AIA device emulation with KVM enabled
        linux-user/riscv: Use abi type for target_ucontext
        hw/intc: Make rtc variable names consistent
        hw/intc: Fix upper/lower mtime write calculation
        ...
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      cb6c406e
    • Stefan Hajnoczi's avatar
      Merge tag 'for-upstream' of https://repo.or.cz/qemu/kevin into staging · 78f8b6d9
      Stefan Hajnoczi authored
      Block layer patches
      
      - Optimise reqs_lock to make multiqueue actually scale
      - virtio: Drop out of coroutine context in virtio_load()
      - iotests: Fix reference output for some tests after recent changes
      - vpc: Avoid dynamic stack allocation
      - Code cleanup, improved documentation
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQJFBAABCAAvFiEE3D3rFZqa+V09dFb+fwmycsiPL9YFAmT7VYgRHGt3b2xmQHJl
      # ZGhhdC5jb20ACgkQfwmycsiPL9YfOg/7BoYF6lkB7DF/jH3XLY6f8zoI+OVM7dg1
      # QFEjyVO+uZiJVh0CeBNI9WgnBe7f5vXMbiStyGbWKo3BLUsjnwoQcW/Sxpw61bR2
      # jZYK6UHe0RhFqTQpbt8G1iCmlpRS+sX+Cy+lxcVcbqxcnLRXCOjT6ivyA4bGbYIC
      # q9BHg/9hBmjuM05NTV6Axy8qjqBGVaIWE9ALTnw8H//waBr4/ydJPTl7EWHe3+tO
      # Stm73evgPG7aLHM6W4qdFW4gwAQ8f+f42Q+0NH1YavB/pN3LTN1B6sLQY/51du+0
      # d/JCsXex0IZQXmNPhqv1h01vhOyU9WBmlwpPG2iZv3a06SXk1ys3rQt/L7uIcsZg
      # Z58CpcUJ517FERnkl0BWXzYhsdcW2K+RdlaiL5PX6H1A2B9LT05ouZfD47hh7kKv
      # oX+Ulk05PFr3JRCKQF6QDEejRKXt169bGzInTlns/wXinD/V4sCkUnr9aWQuhoWk
      # KhQm7WMscTTIyHP2FznO4x9kq0ALsoX/NKqBW2wgJUtqRzsd4XxPp5CXEsAir8Vt
      # dpne/DaV5iDI1mGFJrvkctJN545tEoezBtUzC8/9rZGE0cxHAkhvQVZUDo7xVmrq
      # PlGQ1ko9cNui/Gf9B6qDqaJJwSyw0S6vHurGVQJRwbyly57Fi5aisWkr4w7Rc4eA
      # 7u9B1RvwF/Q=
      # =2wGD
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Fri 08 Sep 2023 13:10:32 EDT
      # gpg:                using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6
      # gpg:                issuer "kwolf@redhat.com"
      # gpg: Good signature from "Kevin Wolf <kwolf@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
      
      :
        virtio: Drop out of coroutine context in virtio_load()
        vmstate: Mark VMStateInfo.get/put() coroutine_mixed_fn
        block: Make more BlockDriver definitions static
        block/meson.build: Restore alphabetical order of files
        block: Remove unnecessary variable in bdrv_block_device_info
        block: Remove bdrv_query_block_node_info
        vmdk: Clean up bdrv_open_child() return value check
        qemu-img: Update documentation for compressed images
        block: Be more verbose in create fallback
        block/iscsi: Document why we use raw malloc()
        qemu-img: omit errno value in error message
        block: change reqs_lock to QemuMutex
        block: minimize bs->reqs_lock section in tracked_request_end()
        iotests: adapt test output for new qemu_cleanup() behavior
        block/vpc: Avoid dynamic stack allocation
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      78f8b6d9
    • Stefan Hajnoczi's avatar
      Merge tag 'pull-target-arm-20230908' of... · a7e8e30e
      Stefan Hajnoczi authored
      Merge tag 'pull-target-arm-20230908' of https://git.linaro.org/people/pmaydell/qemu-arm into staging
      
      target-arm queue:
       * New CPU type: cortex-a710
       * Implement new architectural features:
          - FEAT_PACQARMA3
          - FEAT_EPAC
          - FEAT_Pauth2
          - FEAT_FPAC
          - FEAT_FPACCOMBINE
          - FEAT_TIDCP1
       * Xilinx Versal: Model the CFU/CFI
       * Implement RMR_ELx registers
       * Implement handling of HCR_EL2.TIDCP trap bit
       * arm/kvm: Enable support for KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE
       * hw/intc/arm_gicv3_its: Avoid maybe-uninitialized error in get_vte()
       * target/arm: Do not use gen_mte_checkN in trans_STGP
       * arm64: Restore trapless ptimer access
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmT7VEkZHHBldGVyLm1h
      # eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3v7BEACENUKCxsFHRQSLmQkoBCT9
      # Lc4SJrGCbVUC6b+4s5ligZSWIoFzp/kY6NPpeRYqFa0DCxozd2T5D81/j7TpSo0C
      # wUFkZfUq1nGFJ4K5arYcDwhdTtJvvc07YrSbUqufBp6uNGqhR4YmDWPECqBfOlaj
      # 7bgJM6axsg7FkJJh5zp4cQ4WEfp14MHWRPQWpVTI+9cxNmNymokSVRBhVFkM0Wen
      # WD4C/nYud8bOxpDfR8GkIqJ+UnUMhUNEhp28QmHdwywgg0zLWOE4ysIxo55cM0+0
      # FL3q45PL2e4S24UUx9dkxDBWnKEZ5qpQpPn9F6EhWzfm3n2dqr4uUnfWAEOg6NAi
      # vnGS9MlL7nZo69OM3h8g7yKDfTKYm2vl9HVZ0ytFA6PLoSnaQyQwli58qnLtiid3
      # 17MWPoNQlq6G8tHUTPkrJjdA8XLz0iNPXe5G2kwhuM/S0Lv7ORzDc2pq4qBYLvIw
      # 9nV0oUWqzyE7zH6bRKxbbPw2sMI7c8qQr9QRyZeLHL7HdcY5ExvX9FH+qii5JDR/
      # fZohi1pBoNNwYYTeSRnxgHiQ7OizYq0xQJhrdqcFF9voytZj1yZEZ0mp6Tq0/CIj
      # YkC/vEyLYBqgrJ2JeUjbV3h1RIzQcVaXxnxwGsyMyceACd6MNMmdbjR7bZk0lNIu
      # kh+aFEdKajPp56UseJiKBQ==
      # =5Shq
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Fri 08 Sep 2023 13:05:13 EDT
      # gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
      # gpg:                issuer "peter.maydell@linaro.org"
      # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [full]
      # gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [full]
      # gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [full]
      # gpg:                 aka "Peter Maydell <peter@archaic.org.uk>" [unknown]
      # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE
      
      * tag 'pull-target-arm-20230908' of https://git.linaro.org/people/pmaydell/qemu-arm
      
      : (26 commits)
        arm/kvm: Enable support for KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE
        target/arm: Enable SCTLR_EL1.TIDCP for user-only
        target/arm: Implement FEAT_TIDCP1
        target/arm: Implement HCR_EL2.TIDCP
        target/arm: Implement cortex-a710
        target/arm: Implement RMR_ELx
        arm64: Restore trapless ptimer access
        target/arm: Do not use gen_mte_checkN in trans_STGP
        hw/arm/versal: Connect the CFRAME_REG and CFRAME_BCAST_REG
        hw/arm/xlnx-versal: Connect the CFU_APB, CFU_FDRO and CFU_SFR
        hw/misc: Introduce a model of Xilinx Versal's CFRAME_BCAST_REG
        hw/misc: Introduce a model of Xilinx Versal's CFRAME_REG
        hw/misc/xlnx-versal-cfu: Introduce a model of Xilinx Versal's CFU_SFR
        hw/misc/xlnx-versal-cfu: Introduce a model of Xilinx Versal CFU_FDRO
        hw/misc: Introduce a model of Xilinx Versal's CFU_APB
        hw/misc: Introduce the Xilinx CFI interface
        hw/intc/arm_gicv3_its: Avoid maybe-uninitialized error in get_vte()
        target/arm: Implement FEAT_FPAC and FEAT_FPACCOMBINE
        target/arm: Inform helpers whether a PAC instruction is 'combined'
        target/arm: Implement FEAT_Pauth2
        ...
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      a7e8e30e
    • Joao Martins's avatar
      vfio/common: Separate vfio-pci ranges · a31fe5da
      Joao Martins authored
      
      QEMU computes the DMA logging ranges for two predefined ranges: 32-bit
      and 64-bit. In the OVMF case, when the dynamic MMIO window is enabled,
      QEMU includes in the 64-bit range the RAM regions at the lower part
      and vfio-pci device RAM regions which are at the top of the address
      space. This range contains a large gap and the size can be bigger than
      the dirty tracking HW limits of some devices (MLX5 has a 2^42 limit).
      
      To avoid such large ranges, introduce a new PCI range covering the
      vfio-pci device RAM regions, this only if the addresses are above 4GB
      to avoid breaking potential SeaBIOS guests.
      
      [ clg: - wrote commit log
             - fixed overlapping 32-bit and PCI ranges when using SeaBIOS ]
      
      Signed-off-by: default avatarJoao Martins <joao.m.martins@oracle.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      Fixes: 5255bbf4 ("vfio/common: Add device dirty page tracking start/stop")
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      a31fe5da
    • Avihai Horon's avatar
      vfio/migration: Block VFIO migration with background snapshot · 61537976
      Avihai Horon authored
      
      Background snapshot allows creating a snapshot of the VM while it's
      running and keeping it small by not including dirty RAM pages.
      
      The way it works is by first stopping the VM, saving the non-iterable
      devices' state and then starting the VM and saving the RAM while write
      protecting it with UFFD. The resulting snapshot represents the VM state
      at snapshot start.
      
      VFIO migration is not compatible with background snapshot.
      First of all, VFIO device state is not even saved in background snapshot
      because only non-iterable device state is saved. But even if it was
      saved, after starting the VM, a VFIO device could dirty pages without it
      being detected by UFFD write protection. This would corrupt the
      snapshot, as the RAM in it would not represent the RAM at snapshot
      start.
      
      To prevent this, block VFIO migration with background snapshot.
      
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      61537976
    • Avihai Horon's avatar
      vfio/migration: Block VFIO migration with postcopy migration · bf7ef7a2
      Avihai Horon authored
      
      VFIO migration is not compatible with postcopy migration. A VFIO device
      in the destination can't handle page faults for pages that have not been
      sent yet.
      
      Doing such migration will cause the VM to crash in the destination:
      
      qemu-system-x86_64: VFIO_MAP_DMA failed: Bad address
      qemu-system-x86_64: vfio_dma_map(0x55a28c7659d0, 0xc0000, 0xb000, 0x7f1b11a00000) = -14 (Bad address)
      qemu: hardware error: vfio: DMA mapping failed, unable to continue
      
      To prevent this, block VFIO migration with postcopy migration.
      
      Reported-by: default avatarYanghang Liu <yanghliu@redhat.com>
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Tested-by: default avatarYanghang Liu <yanghliu@redhat.com>
      Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      bf7ef7a2
    • Avihai Horon's avatar
      migration: Add .save_prepare() handler to struct SaveVMHandlers · 08fc4cb5
      Avihai Horon authored
      
      Add a new .save_prepare() handler to struct SaveVMHandlers. This handler
      is called early, even before migration starts, and can be used by
      devices to perform early checks.
      
      Refactor migrate_init() to be able to return errors and call
      .save_prepare() from there.
      
      Suggested-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
      Reviewed-by: default avatarCédric Le Goater <clg@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      08fc4cb5
    • Avihai Horon's avatar
      migration: Move more initializations to migrate_init() · f543aa22
      Avihai Horon authored
      
      Initialization of mig_stats, compression_counters and VFIO bytes
      transferred is hard-coded in migration code path and snapshot code path.
      
      Make the code cleaner by initializing them in migrate_init().
      
      Suggested-by: default avatarCédric Le Goater <clg@redhat.com>
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Reviewed-by: default avatarCédric Le Goater <clg@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      f543aa22
    • Avihai Horon's avatar
      vfio/migration: Fail adding device with enable-migration=on and existing blocker · 8118349b
      Avihai Horon authored
      
      If a device with enable-migration=on is added and it causes a migration
      blocker, adding the device should fail with a proper error.
      
      This is not the case with multiple device migration blocker when the
      blocker already exists. If the blocker already exists and a device with
      enable-migration=on is added which causes a migration blocker, adding
      the device will succeed.
      
      Fix it by failing adding the device in such case.
      
      Fixes: 8bbcb64a ("vfio/migration: Make VFIO migration non-experimental")
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Reviewed-by: default avatarCédric Le Goater <clg@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      8118349b
    • Avihai Horon's avatar
      migration: Add migration prefix to functions in target.c · 38c482b4
      Avihai Horon authored
      
      The functions in target.c are not static, yet they don't have a proper
      migration prefix. Add such prefix.
      
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Reviewed-by: default avatarCédric Le Goater <clg@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      38c482b4
    • Avihai Horon's avatar
      vfio/migration: Allow migration of multiple P2P supporting devices · 5c7a4b60
      Avihai Horon authored
      
      Now that P2P support has been added to VFIO migration, allow migration
      of multiple devices if all of them support P2P migration.
      
      Single device migration is allowed regardless of P2P migration support.
      
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Signed-off-by: default avatarJoao Martins <joao.m.martins@oracle.com>
      Reviewed-by: default avatarCédric Le Goater <clg@redhat.com>
      Tested-by: default avatarYangHang Liu <yanghliu@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      5c7a4b60
    • Avihai Horon's avatar
      vfio/migration: Add P2P support for VFIO migration · 94f775e4
      Avihai Horon authored
      
      VFIO migration uAPI defines an optional intermediate P2P quiescent
      state. While in the P2P quiescent state, P2P DMA transactions cannot be
      initiated by the device, but the device can respond to incoming ones.
      Additionally, all outstanding P2P transactions are guaranteed to have
      been completed by the time the device enters this state.
      
      The purpose of this state is to support migration of multiple devices
      that might do P2P transactions between themselves.
      
      Add support for P2P migration by transitioning all the devices to the
      P2P quiescent state before stopping or starting the devices. Use the new
      VMChangeStateHandler prepare_cb to achieve that behavior.
      
      This will allow migration of multiple VFIO devices if all of them
      support P2P migration.
      
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Tested-by: default avatarYangHang Liu <yanghliu@redhat.com>
      Reviewed-by: default avatarCédric Le Goater <clg@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      94f775e4
    • Joao Martins's avatar
      vfio/migration: Refactor PRE_COPY and RUNNING state checks · 3d4d0f0e
      Joao Martins authored
      
      Move the PRE_COPY and RUNNING state checks to helper functions.
      
      This is in preparation for adding P2P VFIO migration support, where
      these helpers will also test for PRE_COPY_P2P and RUNNING_P2P states.
      
      Signed-off-by: default avatarJoao Martins <joao.m.martins@oracle.com>
      Signed-off-by: default avatarAvihai Horon <avihaih@nvidia.com>
      Reviewed-by: default avatarCédric Le Goater <clg@redhat.com>
      Tested-by: default avatarYangHang Liu <yanghliu@redhat.com>
      Signed-off-by: default avatarCédric Le Goater <clg@redhat.com>
      3d4d0f0e
Loading