Skip to content
Snippets Groups Projects
  1. Aug 29, 2023
  2. Aug 28, 2023
    • Stefan Hajnoczi's avatar
      Merge tag 'pull-tcg-20230823-2' of https://gitlab.com/rth7680/qemu into staging · f5fe7c17
      Stefan Hajnoczi authored
      accel/*: Widen pc/saved_insn for *_sw_breakpoint
      accel/tcg: Replace remaining target_ulong in system-mode accel
      tcg: spelling fixes
      tcg: Document bswap, hswap, wswap byte patterns
      tcg: Introduce negsetcond opcodes
      tcg: Fold deposit with zero to and
      tcg: Unify TCG_TARGET_HAS_extr[lh]_i64_i32
      tcg/i386: Drop BYTEH deposits for 64-bit
      tcg/i386: Allow immediate as input to deposit
      target/*: Use tcg_gen_negsetcond_*
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmTnoP4dHHJpY2hhcmQu
      # aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV80MAf+NCEN7bwqGWmWGtfz
      # YGXp6J51rDwOWVVzTZDv2Gtkc4/Cv0wwtLk4JT5Sg/LQur3tie/bgqOY1SBb4cRq
      # UC1ERk3oqvmh8+aUqCc2SsncVtBduxAMqdlIhuD886SuZHgdry5cp2/MaOEFL/Un
      # yQoKl238OzTmIuKnf4p/NnfD4PZxEtzKy9vQyHKswDH5f2+egaqpmKOL/6Xtl8rL
      # 2nXPbd1UTlMu/QLlQ/CLKcW3Z9eBNrYDSQV1+K2J5ZjSFey8H5RUv3UAfqRpY00b
      # EObcNCMSc6D9bpb2p34QENZNh9GiHE9Stg9VGNFOGilaaMxoa6yowlgz9Dz9xlWN
      # OHG1ug==
      # =ed8f
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Thu 24 Aug 2023 14:27:10 EDT
      # gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
      # gpg:                issuer "richard.henderson@linaro.org"
      # gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" [full]
      # Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F
      
      * tag 'pull-tcg-20230823-2' of https://gitlab.com/rth7680/qemu
      
      : (48 commits)
        tcg: spelling fixes
        docs/devel/tcg-ops: fix missing newlines in "Host vector operations"
        target/cris: Fix a typo in gen_swapr()
        tcg/tcg-op: Document wswap_i64() byte pattern
        tcg/tcg-op: Document hswap_i32/64() byte pattern
        tcg/tcg-op: Document bswap64_i64() byte pattern
        tcg/tcg-op: Document bswap32_i64() byte pattern
        tcg/tcg-op: Document bswap32_i32() byte pattern
        tcg/tcg-op: Document bswap16_i64() byte pattern
        tcg/tcg-op: Document bswap16_i32() byte pattern
        tcg/i386: Implement negsetcond_*
        tcg/i386: Use shift in tcg_out_setcond
        tcg/i386: Clear dest first in tcg_out_setcond if possible
        tcg/i386: Use CMP+SBB in tcg_out_setcond
        tcg/i386: Merge tcg_out_movcond{32,64}
        tcg/i386: Merge tcg_out_setcond{32,64}
        tcg/i386: Merge tcg_out_brcond{32,64}
        tcg/sparc64: Implement negsetcond_*
        tcg/s390x: Implement negsetcond_*
        tcg/riscv: Implement negsetcond_*
        ...
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      f5fe7c17
    • Stefan Hajnoczi's avatar
      Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging · eaf760ac
      Stefan Hajnoczi authored
      * separate accepted and auto-installed versions of Python dependencies
      * bump tricore container to Debian 11
      * small configure cleanups
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmTsZ14UHHBib256aW5p
      # QHJlZGhhdC5jb20ACgkQv/vSX3jHroMlVQf+Juomqo/luBwWwwguEZp32s+c+CYI
      # HZJJJSIycq/VY2OsT9e+H1eMJYsCsdzJxn1NcnmEIUSMRkIuCxV5F62gaMl6BjgF
      # tH8v4y1ZBDc0i0zw6qkuZM4sydNkK1XohGeOp8NkTE7F2fX0DT2AO17rSKIHh77R
      # enNE5yq+s0YGHfYz7PbNvT1G+YXqt9SEEfCqIHkCQccjgFx9PEJu7PPuWdIYLG5s
      # VVIyrbZzcX7OmQCCWdEZCe5t8swbOHtzE5D3JUVvfnUDj3BONXQybp/14rEikrjU
      # fuy9sf3qW4XlwzPOUWFlPfxJIg8KWB1fL2wIppDn2gKrBB7fekwz5hlJRA==
      # =lZmw
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Mon 28 Aug 2023 05:22:38 EDT
      # gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
      # gpg:                issuer "pbonzini@redhat.com"
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
      # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
      #      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83
      
      * tag 'for-upstream' of https://gitlab.com/bonzini/qemu
      
      :
        configure: remove unnecessary mkdir -p
        configure: fix container_hosts misspellings and duplications
        target/i386: add support for VMX_SECONDARY_EXEC_ENABLE_USER_WAIT_PAUSE
        tests/docker: add python3-tomli dependency to containers
        Revert "tests: Use separate virtual environment for avocado"
        configure: switch to ensuregroup
        python: use vendored tomli
        configure: never use PyPI for Meson
        lcitool: bump libvirt-ci submodule and regenerate
        python: mkvenv: add ensuregroup command
        python: mkvenv: introduce TOML-like representation of dependencies
        python: mkvenv: tweak the matching of --diagnose to depspecs
        dockerfiles: bump tricore cross compiler container to Debian 11
        configure: fix and complete detection of tricore tools
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      eaf760ac
    • Stefan Hajnoczi's avatar
      Merge tag 'devel-hppa-priv-cleanup2-pull-request' of... · 98bdf241
      Stefan Hajnoczi authored
      Merge tag 'devel-hppa-priv-cleanup2-pull-request' of https://github.com/hdeller/qemu-hppa
      
       into staging
      
      target/hppa: Clean up conversion from/to MMU index and privilege level
      
      Make the conversion between privilege level and QEMU MMU index
      consistent, and afterwards switch to MMU indices 11-15.
      
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCZOtpFAAKCRD3ErUQojoP
      # X0lxAPwKfsMZOO/e81XXLgxeEZ5R4yjtIelErvOWmMvBfxEDUwEA6HgJt4gOe1uR
      # Dw7d+wTqr+CSOj5I87+sJYl1FmihzQU=
      # =01eA
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Sun 27 Aug 2023 11:17:40 EDT
      # gpg:                using EDDSA key BCE9123E1AD29F07C049BBDEF712B510A23A0F5F
      # gpg: Good signature from "Helge Deller <deller@gmx.de>" [unknown]
      # gpg:                 aka "Helge Deller <deller@kernel.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: 4544 8228 2CD9 10DB EF3D  25F8 3E5F 3D04 A7A2 4603
      #      Subkey fingerprint: BCE9 123E 1AD2 9F07 C049  BBDE F712 B510 A23A 0F5F
      
      * tag 'devel-hppa-priv-cleanup2-pull-request' of https://github.com/hdeller/qemu-hppa
      
      :
        target/hppa: Switch to use MMU indices 11-15
        target/hppa: Use privilege helper in hppa_get_physical_address()
        target/hppa: Do not use hardcoded value for tlb_flush_*()
        target/hppa: Add privilege to MMU index conversion helpers
        target/hppa: Add missing PL1 and PL2 privilege levels
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      98bdf241
    • Paolo Bonzini's avatar
      configure: remove unnecessary mkdir -p · 29a82385
      Paolo Bonzini authored
      
      It is already included in the symlink shell function.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      29a82385
    • Paolo Bonzini's avatar
      configure: fix container_hosts misspellings and duplications · a04f3372
      Paolo Bonzini authored
      
      container_hosts is matched against $cpu, so it must contain QEMU
      canonical architecture names, not Debian architecture names.
      Also do not set $container_hosts inside the loop, since it is
      already set before.
      
      Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a04f3372
    • Ake Koomsin's avatar
      target/i386: add support for VMX_SECONDARY_EXEC_ENABLE_USER_WAIT_PAUSE · 33cc8826
      Ake Koomsin authored
      
      Current QEMU can expose waitpkg to guests when it is available. However,
      VMX_SECONDARY_EXEC_ENABLE_USER_WAIT_PAUSE is still not recognized and
      masked by QEMU. This can lead to an unexpected situation when a L1
      hypervisor wants to expose waitpkg to a L2 guest. The L1 hypervisor can
      assume that VMX_SECONDARY_EXEC_ENABLE_USER_WAIT_PAUSE exists as waitpkg is
      available. The L1 hypervisor then can accidentally expose waitpkg to the
      L2 guest. This will cause invalid opcode exception in the L2 guest when
      it executes waitpkg related instructions.
      
      This patch adds VMX_SECONDARY_EXEC_ENABLE_USER_WAIT_PAUSE support, and
      sets up dependency between the bit and CPUID_7_0_ECX_WAITPKG. QEMU should
      not expose waitpkg feature if VMX_SECONDARY_EXEC_ENABLE_USER_WAIT_PAUSE is
      not available to avoid unexpected invalid opcode exception in L2 guests.
      
      Signed-off-by: default avatarAke Koomsin <ake@igel.co.jp>
      Message-ID: <20230807093339.32091-2-ake@igel.co.jp>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      33cc8826
    • Paolo Bonzini's avatar
      tests/docker: add python3-tomli dependency to containers · 7ace2193
      Paolo Bonzini authored
      
      Instead of having CI pick tomli from the vendored wheel at configure
      time, place it in the containers.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      7ace2193
    • Paolo Bonzini's avatar
      Revert "tests: Use separate virtual environment for avocado" · c03f57fd
      Paolo Bonzini authored
      This reverts commit e8e4298f.
      
      ensuregroup allows to specify both the acceptable versions of avocado,
      and a locked version to be used when avocado is not installed as a system
      pacakge.  This lets us install avocado in pyvenv/ using "mkvenv.py" and
      reuse the distro package on Fedora and CentOS Stream (the only distros
      where it's available).
      
      ensuregroup's usage of "(>=..., <=...)" constraints when evaluating
      the distro package, and "==" constraints when installing it from PyPI,
      makes it possible to avoid conflicts between the known-good version and
      a package plugins included in the distro.
      
      This is because package plugins have "==" constraints on the version
      that is included in the distro, and, using "pip install avocado==88.1"
      on a venv that includes system packages will result in an error:
      
         avocado-framework-plugin-varianter-yaml-to-mux 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible.
         avocado-framework-plugin-result-html 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible.
      
      But at the same time, if the venv does not include a system distribution
      of avocado then we can install a known-good version and stick to LTS
      releases.
      
      Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1663
      
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c03f57fd
    • Paolo Bonzini's avatar
      configure: switch to ensuregroup · c853c4d0
      Paolo Bonzini authored
      
      Using the new ensuregroup command, the desired versions of meson and
      sphinx can be placed in pythondeps.toml rather than configure.
      
      The meson.install entry in pythondeps.toml matches the version that is
      found in python/wheels.  This ensures that mkvenv.py uses the bundled
      wheel even if PyPI is enabled; thus not introducing warnings or errors
      from versions that are more recent than the one used in CI.
      
      The sphinx entries match what is shipped in Fedora 38.  It's the
      last release that has support for older versions of Python (sphinx 6.0
      requires Python 3.8) and especially docutils (of which sphinx 6.0 requires
      version 0.18).  This is important because Ubuntu 20.04 has docutils 0.14
      and Debian 11 has docutils 0.16.
      
      "mkvenv.py ensure" is only used to bootstrap tomli.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c853c4d0
    • Paolo Bonzini's avatar
      python: use vendored tomli · edc21078
      Paolo Bonzini authored
      
      Debian only introduced tomli in the bookworm release.  Use a
      vendored wheel to avoid requiring a package that is only in
      bullseye-backports and is also absent in Ubuntu 20.04.
      
      While at it, fix an issue in the vendor.py scripts which does
      not add a newline after each package and hash.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      edc21078
    • Paolo Bonzini's avatar
      configure: never use PyPI for Meson · 7c3fb52b
      Paolo Bonzini authored
      
      Since there is a vendored copy, there is no point in choosing online
      operation.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      7c3fb52b
    • Paolo Bonzini's avatar
      lcitool: bump libvirt-ci submodule and regenerate · dcb8541b
      Paolo Bonzini authored
      
      This brings in a newer version of the pipewire mapping, so rename it.
      
      Python 3.9 and 3.10 do not seem to work in OpenSUSE LEAP 15.5 (weird,
      because 3.9 persisted from 15.3 to 15.4) so bump the Python runtime
      version to 3.11.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      dcb8541b
    • Paolo Bonzini's avatar
      python: mkvenv: add ensuregroup command · 71ed611c
      Paolo Bonzini authored
      
      Introduce a new subcommand that retrieves the packages to be installed
      from a TOML file. This allows being more flexible in using the system
      version of a package, while at the same time using a known-good version
      when installing the package.  This is important for packages that
      sometimes have backwards-incompatible changes or that depend on
      specific versions of their dependencies.
      
      Compared to JSON, TOML is more human readable and easier to edit.  A
      parser is available in 3.11 but also available as a small (12k) package
      for older versions, tomli.  While tomli is bundled with pip, this is only
      true of recent versions of pip.  Of all the supported OSes pretty much
      only FreeBSD has a recent enough version of pip while staying on Python
      <3.11.  So we cannot use the same trick that is in place for distlib.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      71ed611c
    • Paolo Bonzini's avatar
      python: mkvenv: introduce TOML-like representation of dependencies · 0f1ec070
      Paolo Bonzini authored
      
      We would like to place all Python dependencies in the same file, so that
      we can add more information without having long and complex command lines.
      The plan is to have a TOML file with one entry per package, for example
      
        [avocado]
        avocado-framework = {
          accepted = "(>=88.1, <93.0)",
          installed = "88.1",
          canary = "avocado"
        }
      
      Each TOML section will thus be a dictionary of dictionaries.  Modify
      mkvenv.py's workhorse function, _do_ensure, to already operate on such
      a data structure.  The "ensure" subcommand is modified to separate the
      depspec into a name and a version part, and use the result (plus the
      --diagnose argument) to build a dictionary for each command line argument.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0f1ec070
    • Paolo Bonzini's avatar
      python: mkvenv: tweak the matching of --diagnose to depspecs · 67b9a83d
      Paolo Bonzini authored
      
      Move the matching between the "absent" array and dep_specs[0] inside
      the loop, preparing for the possibility of having multiple canaries
      among the installed packages.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      67b9a83d
    • Paolo Bonzini's avatar
      dockerfiles: bump tricore cross compiler container to Debian 11 · 87f77f58
      Paolo Bonzini authored
      
      With the release of version 12 on June 10, 2023, Debian 10 is
      not supported anymore.  Modify the cross compiler container to
      build on a newer version.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      87f77f58
    • Paolo Bonzini's avatar
      configure: fix and complete detection of tricore tools · a3d3de8e
      Paolo Bonzini authored
      
      The tricore tools are not detected when they are installed in
      the host system, only if they are taken from an external
      container.  For this reason the build-tricore-softmmu job
      was not running the TCG tests.
      
      In addition the container provides all tools, not just as/ld/gcc,
      so there is no need to special case tricore.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a3d3de8e
  3. Aug 27, 2023
  4. Aug 25, 2023
  5. Aug 24, 2023
Loading