qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 9ad2ba: target/i386: Fix BZHI instruction


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 9ad2ba: target/i386: Fix BZHI instruction
Date: Tue, 28 Feb 2023 07:09:10 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 9ad2ba6e8e7fc195d0dd0b76ab38bd2fceb1bdd4
      
https://github.com/qemu/qemu/commit/9ad2ba6e8e7fc195d0dd0b76ab38bd2fceb1bdd4
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M target/i386/tcg/emit.c.inc
    M tests/tcg/i386/test-i386-bmi2.c

  Log Message:
  -----------
  target/i386: Fix BZHI instruction

We did not correctly handle N >= operand size.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1374
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230114233206.3118472-1-richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1248a15965b77f9b9b5d6efcd9138ae299fbc8c2
      
https://github.com/qemu/qemu/commit/1248a15965b77f9b9b5d6efcd9138ae299fbc8c2
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M scripts/make-config-poison.sh

  Log Message:
  -----------
  meson: Avoid duplicates in generated config-poison.h again

Commit eed56e9a89f "configure, meson: move config-poison.h to meson"
lost a "| sort -u".  Restore it.  config-poison shrinks from ~4500 to
~700 lines when all targets are enabled.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20230206102037.3621709-1-armbru@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1b1be8d3cc57a6ad86c3a54fb2750adfae707ae3
      
https://github.com/qemu/qemu/commit/1b1be8d3cc57a6ad86c3a54fb2750adfae707ae3
  Author: John Snow <jsnow@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M docs/meson.build
    M meson_options.txt
    M scripts/meson-buildoptions.sh

  Log Message:
  -----------
  meson: stop looking for 'sphinx-build-3'

Once upon a time, "sphinx-build" on certain RPM platforms invoked
specifically a Python 2.x version, while "sphinx-build-3" was a distro
shim for the Python 3.x version.

These days, none of our supported platforms utilize a 2.x version, and
those that still have 'sphinx-build-3' make it a symbolic link to
'sphinx-build'.  Not searching for 'sphinx-build-3' will prefer
pip/venv installed versions of sphinx if they're available.

This adds an extremely convenient ability to test document building
ability in QEMU across multiple versions of Sphinx for the purposes of
compatibility testing.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20230221012456.2607692-6-jsnow@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 462a65678e0fc15f924bf0f9f4d384fc18487b9b
      
https://github.com/qemu/qemu/commit/462a65678e0fc15f924bf0f9f4d384fc18487b9b
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: protect against escaping venv when running Meson

If neither --python nor --meson are specified, Meson's generated
build.ninja will invoke Python script using the interpreter *that Meson
itself is running under*; not the one identified by configure.

This is only an issue if Meson's Python interpreter is not "the first
one in the path", which is the one that is used if --python is not
specified.  A common case where this happen is when the "python3" binary
comes from a virtual environment but Meson is not installed (with pip)
in the virtual environment.  In this case (presumably) whoever set up
the venv wanted to use the venv's Python interpreter to build QEMU,
while Meson might use a different one, for example an enterprise
distro's older runtime.

So, detect whether a virtual environment is setup, and if the virtual
environment does not have Meson, use the meson submodule.  Meson will
then run under the virtual environment's Python interpreter.

Reported-by: John Snow <jsnow@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: fee6d4124a470a541eeb51c59ee2b4aea09c6c49
      
https://github.com/qemu/qemu/commit/fee6d4124a470a541eeb51c59ee2b4aea09c6c49
  Author: John Snow <jsnow@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: Look for auxiliary Python installations

At the moment, we look for just "python3" and "python", which is good
enough almost all of the time. But ... if you are on a platform that
uses an older Python by default and only offers a newer Python as an
option, you'll have to specify --python=/usr/bin/foo every time.

We can be kind and instead make a cursory attempt to locate a suitable
Python binary ourselves, looking for the remaining well-known binaries.

This configure loop will prefer, in order:

1. Whatever is specified in $PYTHON
2. python3
3. python
4. python3.11 down through python3.6

Notes:

- Python virtual environment provides binaries for "python3", "python",
  and whichever version you used to create the venv,
  e.g. "python3.8". If configure is invoked from inside of a venv, this
  configure loop will not "break out" of that venv unless that venv is
  created using an explicitly non-suitable version of Python that we
  cannot use.

- In the event that no suitable python is found, the first python found
  is the version used to generate the human-readable error message.

- The error message isn't printed right away to allow later
  configuration code to pick up an explicitly configured python.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 586d3bb944b207873b2a1df269bf22748e38211c
      
https://github.com/qemu/qemu/commit/586d3bb944b207873b2a1df269bf22748e38211c
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M tests/docker/dockerfiles/alpine.docker
    M tests/docker/dockerfiles/fedora-win32-cross.docker
    M tests/docker/dockerfiles/fedora-win64-cross.docker
    M tests/lcitool/libvirt-ci

  Log Message:
  -----------
  lcitool: update submodule

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: fa1ce1dda9206d11684427ad3ef0a9b51225d387
      
https://github.com/qemu/qemu/commit/fa1ce1dda9206d11684427ad3ef0a9b51225d387
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M docs/devel/testing.rst

  Log Message:
  -----------
  docs/devel: update and clarify lcitool instructions

Shorten a bit the description of what libvirt-ci does, the name of the
data files is not relevant at that point.  However, the procedures to add
new build prerequisites are lacking some information, particularly with
respect to regenerating the output test files for lcitool's unit tests.
While at it, also update the paths in the libvirt-ci repository.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 32c0613113f0f5ab1eea05a05d6e52096e9bd11e
      
https://github.com/qemu/qemu/commit/32c0613113f0f5ab1eea05a05d6e52096e9bd11e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M docs/devel/testing.rst
    M tests/docker/dockerfiles/centos8.docker
    M tests/docker/dockerfiles/opensuse-leap.docker
    M tests/docker/dockerfiles/ubuntu2004.docker
    A tests/lcitool/mappings.yml
    A tests/lcitool/targets/centos-stream-8.yml
    A tests/lcitool/targets/opensuse-leap-153.yml

  Log Message:
  -----------
  ci, docker: update CentOS and OpenSUSE Python to non-EOL versions

Python 3.6 is at end-of-life.  Update the libvirt-ci module to a
version that supports overrides for targets and package mappings;
this way, QEMU can use the newer versions provided by CentOS 8 (Python
3.8) and OpenSUSE 15.3 (Python 3.9).

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: fc3b9dfacc4017aed8e2b010bc85f4dd50ca6e8b
      
https://github.com/qemu/qemu/commit/fc3b9dfacc4017aed8e2b010bc85f4dd50ca6e8b
  Author: Philippe Mathieu-Daudé <philmd@linaro.org>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Cover RCU documentation

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c0728d4e3d23356691e4182eac54c67e1ca26618
      
https://github.com/qemu/qemu/commit/c0728d4e3d23356691e4182eac54c67e1ca26618
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386: add FSRM to TCG

Fast short REP MOVS can be added to TCG, since a trivial translation
of string operation is a good option for short lengths.

Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 58794f644e43ef8e60ed05395c58099311c1fcd1
      
https://github.com/qemu/qemu/commit/58794f644e43ef8e60ed05395c58099311c1fcd1
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M target/i386/cpu.c
    M target/i386/cpu.h

  Log Message:
  -----------
  target/i386: add FZRM, FSRS, FSRC

These are three more markers for string operation optimizations.
They can all be added to TCG, whose string operations are more or
less as fast as they can be for short lengths.

Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 3023c9b4d1092eb27a523c08d9e78cbaec67b59b
      
https://github.com/qemu/qemu/commit/3023c9b4d1092eb27a523c08d9e78cbaec67b59b
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M target/i386/kvm/kvm.c

  Log Message:
  -----------
  target/i386: KVM: allow fast string operations if host supports them

These are just a flag that documents the performance characteristic of
an instruction; it needs no hypervisor support.  So include them even
if KVM does not show them.  In particular, FZRM/FSRS/FSRC have only
been added very recently, but they are available on Sapphire Rapids
processors.

Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 7eb061b06e97af9a8da7f31b839d78997ae737fc
      
https://github.com/qemu/qemu/commit/7eb061b06e97af9a8da7f31b839d78997ae737fc
  Author: Wang, Lei <lei4.wang@intel.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M target/i386/cpu.c
    M target/i386/cpu.h

  Log Message:
  -----------
  i386: Add new CPU model SapphireRapids

The new CPU model mostly inherits features from Icelake-Server, while
adding new features:
 - AMX (Advance Matrix eXtensions)
 - Bus Lock Debug Exception
and new instructions:
 - AVX VNNI (Vector Neural Network Instruction):
    - VPDPBUS: Multiply and Add Unsigned and Signed Bytes
    - VPDPBUSDS: Multiply and Add Unsigned and Signed Bytes with Saturation
    - VPDPWSSD: Multiply and Add Signed Word Integers
    - VPDPWSSDS: Multiply and Add Signed Integers with Saturation
 - FP16: Replicates existing AVX512 computational SP (FP32) instructions
   using FP16 instead of FP32 for ~2X performance gain
 - SERIALIZE: Provide software with a simple way to force the processor to
   complete all modifications, faster, allowed in all privilege levels and
   not causing an unconditional VM exit
 - TSX Suspend Load Address Tracking: Allows programmers to choose which
   memory accesses do not need to be tracked in the TSX read set
 - AVX512_BF16: Vector Neural Network Instructions supporting BFLOAT16
   inputs and conversion instructions from IEEE single precision
 - fast zero-length MOVSB (KVM doesn't support yet)
 - fast short STOSB (KVM doesn't support yet)
 - fast short CMPSB, SCASB (KVM doesn't support yet)

Features that may be added in future versions:
 - CET (virtualization support hasn't been merged)

Signed-off-by: Wang, Lei <lei4.wang@intel.com>
Reviewed-by: Robert Hoo <robert.hu@linux.intel.com>
Message-Id: <20220812055751.14553-1-lei4.wang@intel.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 33dc95d032a86dd007073d72cf006f663c614de2
      
https://github.com/qemu/qemu/commit/33dc95d032a86dd007073d72cf006f663c614de2
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M MAINTAINERS
    M configure
    M docs/devel/testing.rst
    M docs/meson.build
    M meson_options.txt
    M scripts/make-config-poison.sh
    M scripts/meson-buildoptions.sh
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/kvm/kvm.c
    M target/i386/tcg/emit.c.inc
    M tests/docker/dockerfiles/alpine.docker
    M tests/docker/dockerfiles/centos8.docker
    M tests/docker/dockerfiles/fedora-win32-cross.docker
    M tests/docker/dockerfiles/fedora-win64-cross.docker
    M tests/docker/dockerfiles/opensuse-leap.docker
    M tests/docker/dockerfiles/ubuntu2004.docker
    M tests/lcitool/libvirt-ci
    A tests/lcitool/mappings.yml
    A tests/lcitool/targets/centos-stream-8.yml
    A tests/lcitool/targets/opensuse-leap-153.yml
    M tests/tcg/i386/test-i386-bmi2.c

  Log Message:
  -----------
  Merge tag 'for-upstream-8.0' of https://gitlab.com/bonzini/qemu into staging

* New Sapphire Rapids model support
* x86 bugfixes
* Prepare to drop support for Python 3.6

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmP87gcUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroM+TAf/TcRrukw+FXUs0Ld3AadRY6g3xV2x
# n1VIfkMC2Bp1LVOS1W9aw7V6jPg8KMAV9SCQJjsVtyB5E9yPQg+/w7UgexqISYQG
# 7NK3jDXmslSGIHNHh4qH9xAjQGjw/6e7N/gyWP+99vHPwZSbFJT6k7KP0/3O9yCu
# /9KINq8AvvGbfW5m2d/umV1v1Gq4KwXkTa5uVIOciDMJtaA0QjADHg1MqsHPzBUP
# F4du5BbuMaJkgQgJV5zsn7W9NnEQt1XzSug1c/vp2vyqEV00L4TjL9BzTqsTEBtS
# KjUcQif5R5a+o8QRND9j8f74xjFpOR/nAEleNsfo6iwZQwWAiBQZ8ETsew==
# =2aMG
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 27 Feb 2023 17:53:11 GMT
# 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-8.0' of https://gitlab.com/bonzini/qemu:
  i386: Add new CPU model SapphireRapids
  target/i386: KVM: allow fast string operations if host supports them
  target/i386: add FZRM, FSRS, FSRC
  target/i386: add FSRM to TCG
  MAINTAINERS: Cover RCU documentation
  ci, docker: update CentOS and OpenSUSE Python to non-EOL versions
  docs/devel: update and clarify lcitool instructions
  lcitool: update submodule
  configure: Look for auxiliary Python installations
  configure: protect against escaping venv when running Meson
  meson: stop looking for 'sphinx-build-3'
  meson: Avoid duplicates in generated config-poison.h again
  target/i386: Fix BZHI instruction

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/e1f9f73ba15e...33dc95d032a8



reply via email to

[Prev in Thread] Current Thread [Next in Thread]