qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 388b84: stubs: avoid duplicate symbols in lib


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 388b84: stubs: avoid duplicate symbols in libqemuutil.a
Date: Sat, 02 Nov 2024 09:22:16 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 388b849fb6c33882b481123568995a749a54f648
      
https://github.com/qemu/qemu/commit/388b849fb6c33882b481123568995a749a54f648
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-30 (Wed, 30 Oct 2024)

  Changed paths:
    M stubs/meson.build

  Log Message:
  -----------
  stubs: avoid duplicate symbols in libqemuutil.a

qapi_event_send_device_deleted is always included (together with the
rest of QAPI) in libqemuutil.a if either system-mode emulation or tools
are being built, and in that case the stub causes a duplicate symbol
to appear in libqemuutil.a.

Add the symbol only if events are not being requested.

Cc: qemu-stable@nongnu.org
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 548de8f8dc291448df94b13fed5c57421c21edea
      
https://github.com/qemu/qemu/commit/548de8f8dc291448df94b13fed5c57421c21edea
  Author: Daniel P. Berrangé <berrange@redhat.com>
  Date:   2024-10-30 (Wed, 30 Oct 2024)

  Changed paths:
    M .gitlab-ci.d/cirrus/freebsd-14.vars
    M .gitlab-ci.d/cirrus/macos-14.vars
    M .gitlab-ci.d/cirrus/macos-15.vars
    M scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
    M scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
    M tests/docker/dockerfiles/alpine.docker
    M tests/docker/dockerfiles/centos9.docker
    M tests/docker/dockerfiles/debian-amd64-cross.docker
    M tests/docker/dockerfiles/debian-arm64-cross.docker
    M tests/docker/dockerfiles/debian-armhf-cross.docker
    M tests/docker/dockerfiles/debian-i686-cross.docker
    M tests/docker/dockerfiles/debian-mips64el-cross.docker
    M tests/docker/dockerfiles/debian-mipsel-cross.docker
    M tests/docker/dockerfiles/debian-ppc64el-cross.docker
    M tests/docker/dockerfiles/debian-s390x-cross.docker
    M tests/docker/dockerfiles/debian.docker
    M tests/docker/dockerfiles/fedora-rust-nightly.docker
    M tests/docker/dockerfiles/fedora-win64-cross.docker
    M tests/docker/dockerfiles/fedora.docker
    M tests/docker/dockerfiles/opensuse-leap.docker
    M tests/docker/dockerfiles/ubuntu2204.docker
    M tests/lcitool/projects/qemu.yml
    M tests/vm/generated/freebsd.json

  Log Message:
  -----------
  tests: add 'rust' and 'bindgen' to CI package list

Although we're not enabling rust by default yet, we can still add
rust and bindgen to the CI package list.

This demonstrates that we're not accidentally triggering unexpected
build behaviour merely from Rust being present. When we do dev work
to enable rust by default, this will show we're building correctly
on all platforms we target.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Link: https://lore.kernel.org/r/20241015133925.311587-2-berrange@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 15195de6a93438be99fdf9a90992c4228527130d
      
https://github.com/qemu/qemu/commit/15195de6a93438be99fdf9a90992c4228527130d
  Author: Daniel P. Berrangé <berrange@redhat.com>
  Date:   2024-10-30 (Wed, 30 Oct 2024)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml

  Log Message:
  -----------
  ci: enable rust in the Fedora system build job

We previously added a new job running Fedora with nightly rust
toolchain.

The standard rust toolchain distributed by Fedora is new enough,
however, to let us enable a CI build with that too.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Link: https://lore.kernel.org/r/20241015133925.311587-3-berrange@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 14bde8cd7613753182baee636f216cb2d840a9e3
      
https://github.com/qemu/qemu/commit/14bde8cd7613753182baee636f216cb2d840a9e3
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-30 (Wed, 30 Oct 2024)

  Changed paths:
    M target/i386/tcg/decode-new.c.inc

  Log Message:
  -----------
  target/i386: fix CPUID check for LFENCE and SFENCE

LFENCE and SFENCE were introduced with the original SSE instruction set;
marking them incorrectly as cpuid(SSE2) causes failures for CPU models
that lack SSE2, for example pentium3.

Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b57e4e785b408b59b82d834501b37a57b837d203
      
https://github.com/qemu/qemu/commit/b57e4e785b408b59b82d834501b37a57b837d203
  Author: Pierrick Bouvier <pierrick.bouvier@linaro.org>
  Date:   2024-10-30 (Wed, 30 Oct 2024)

  Changed paths:
    R scripts/meson-buildoptions.

  Log Message:
  -----------
  scripts: remove erroneous file that breaks git clone on Windows

This file was created by mistake in recent ed7667188 (9p: remove
'proxy' filesystem backend driver).

When cloning the repository using native git for windows, we see this:
Error: error: invalid path 'scripts/meson-buildoptions.'
Error: The process 'C:\Program Files\Git\bin\git.exe' failed with exit code 128
Link: 
https://lore.kernel.org/r/20241023073914.895438-1-pierrick.bouvier@linaro.org

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0665b3f9925ee7041e6a8eee9d1deda59a726383
      
https://github.com/qemu/qemu/commit/0665b3f9925ee7041e6a8eee9d1deda59a726383
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: detect 64-bit MIPS

While right now 64-bit MIPS and 32-bit MIPS share the code in QEMU,
Rust uses different rules for the target.  Set $cpu correctly to
either mips or mips64 (--cpu=mips64* is already accepted in the case
statement that canonicalizes cpu/host_arch/linux_arch), and adjust
the checks to account for the different between $cpu (which handles
mips/mips64 separately) and $host_arch (which does not).

Fixes: 1a6ef6ff624 ("configure, meson: detect Rust toolchain", 2024-10-11)
Acked-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 14ed29da419f2bfcf177af21348e0e3c643ac6b0
      
https://github.com/qemu/qemu/commit/14ed29da419f2bfcf177af21348e0e3c643ac6b0
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M docs/about/build-platforms.rst
    M docs/about/deprecated.rst
    M meson.build

  Log Message:
  -----------
  configure, meson: deprecate 32-bit MIPS

The mipsel architecture is not available in Debian Trixie, and it will
likely be a hard failure as soon as we drop support for the old Rust
toolchain in Debian Bookworm.  Prepare by deprecating 32-bit little
endian MIPS in QEMU 9.2.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 3139ad088b52ab840d760d40962fc0db57c62d83
      
https://github.com/qemu/qemu/commit/3139ad088b52ab840d760d40962fc0db57c62d83
  Author: Zhao Liu <zhao1.liu@intel.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Add myself as a reviewer of x86 general architecture support

X86 architecture has always been a focus of my work. I would like to
help to review more related patches.

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20241022023628.1743686-1-zhao1.liu@intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 8aade934dfa6ef9a1ca20666078e7c2d19e56368
      
https://github.com/qemu/qemu/commit/8aade934dfa6ef9a1ca20666078e7c2d19e56368
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M accel/accel-system.c

  Log Message:
  -----------
  accel: remove dead statement and useless assertion

ops is assigned again just below, and the result of the assignment must
be non-NULL.

Originally, the check for NULL was meant to be a check for the existence
of the ops class:

    ops = ACCEL_OPS_CLASS(object_class_by_name(ops_name));
    ...
    g_assert(ops != NULL);

(where the ops assignment begot the one that I am removing); but this is
meaningless now that oc is checked to be non-NULL before ops is assigned
(commit 5141e9a23fc, "accel: abort if we fail to load the accelerator
plugin", 2022-11-06).

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 855bdb6c8a60ae20043531dc965fcb1ed171d7d9
      
https://github.com/qemu/qemu/commit/855bdb6c8a60ae20043531dc965fcb1ed171d7d9
  Author: Xiaoyao Li <xiaoyao.li@intel.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/host-cpu.c

  Log Message:
  -----------
  i386/cpu: Drop the check of phys_bits in host_cpu_realizefn()

The check of cpu->phys_bits to be in range between
[32, TARGET_PHYS_ADDR_SPACE_BITS] in host_cpu_realizefn()
is duplicated with check in x86_cpu_realizefn().

Since the ckeck in x86_cpu_realizefn() is called later and can cover all
the x86 cases. Remove the one in host_cpu_realizefn().

Opportunistically adjust cpu->phys_bits directly in
host_cpu_adjust_phys_bits(), which matches more with the function name.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20240929085747.2023198-1-xiaoyao.li@intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 845b54efafa5c28040570dcb6d7f8f84d23e37f3
      
https://github.com/qemu/qemu/commit/845b54efafa5c28040570dcb6d7f8f84d23e37f3
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M include/qom/object.h
    M qom/object.c

  Log Message:
  -----------
  qom: remove unused function

The function has been unused since commit 4fa28f23906 ("ppc/pnv:
Instantiate cores separately", 2019-12-17).  The idea was that
you could use it to build an array of objects via pointer
arithmetic, but no one is doing it anymore.

Cc: Dr. David Alan Gilbert <dave@treblig.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b801e3cb2a7fd631a219222a8cbe9d554c906070
      
https://github.com/qemu/qemu/commit/b801e3cb2a7fd631a219222a8cbe9d554c906070
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M hw/core/qdev.c
    M qom/object_interfaces.c
    M qom/qom-qmp-cmds.c

  Log Message:
  -----------
  qom: use object_new_with_class when possible

A small optimization/code simplification, that also makes it clear that
we won't look for a type in a not-loaded-yet module---the module will
have been loaded by a call to module_object_class_by_name(), if present.

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


  Commit: 144d80f69e9ee614bf7fb06ad586cef610cec0f7
      
https://github.com/qemu/qemu/commit/144d80f69e9ee614bf7fb06ad586cef610cec0f7
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M qom/object.c

  Log Message:
  -----------
  qom: centralize module-loading functionality

Put together the common code of object_initialize() and
module_object_class_by_name() into a function that supports
Error **.  Rename the existing function type_get_by_name() to
clarify that it will only look at defined types; this is often
okay within object.c to look at the parents, but not outside it.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 02009a12bcd7927a968df7641eaa609b659b3470
      
https://github.com/qemu/qemu/commit/02009a12bcd7927a968df7641eaa609b659b3470
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M hw/core/qdev.c
    M qom/object.c

  Log Message:
  -----------
  qom: let object_new use a module if the type is not present

object_initialize() can use modules (it was added there because
virtio-gpu-device is a child device of virtio-gpu-pci; commit
64f7aece8ea, "object_initialize: try module load", 2020-09-15).
object_new() cannot; make things consistent.

qdev_new() is now just a simple wrapper that returns DeviceState.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f41823e059d3460e116d1c29d8577649d48fcf33
      
https://github.com/qemu/qemu/commit/f41823e059d3460e116d1c29d8577649d48fcf33
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M qom/object_interfaces.c
    M qom/qom-qmp-cmds.c

  Log Message:
  -----------
  qom: allow user-creatable classes to be in modules

There is no real reason to make user-creatable classes different
from other backends in this respect.  This also allows modularized
character devices to be treated by qom-list-properties just like
builtin ones.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9c882ad4dc96f658ff9f92b88b3749d0398e6fa2
      
https://github.com/qemu/qemu/commit/9c882ad4dc96f658ff9f92b88b3749d0398e6fa2
  Author: Babu Moger <babu.moger@amd.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

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

  Log Message:
  -----------
  target/i386: Fix minor typo in NO_NESTED_DATA_BP feature bit

Rename CPUID_8000_0021_EAX_No_NESTED_DATA_BP to
       CPUID_8000_0021_EAX_NO_NESTED_DATA_BP.

No functional change intended.

Signed-off-by: Babu Moger <babu.moger@amd.com>
Link: 
https://lore.kernel.org/r/a6749acd125670d3930f4ca31736a91b1d965f2f.1729807947.git.babu.moger@amd.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 209b0ac12074341d0093985eb9ad3e7edb252ce5
      
https://github.com/qemu/qemu/commit/209b0ac12074341d0093985eb9ad3e7edb252ce5
  Author: Sandipan Das <sandipan.das@amd.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

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

  Log Message:
  -----------
  target/i386: Add PerfMonV2 feature bit

CPUID leaf 0x80000022, i.e. ExtPerfMonAndDbg, advertises new performance
monitoring features for AMD processors. Bit 0 of EAX indicates support
for Performance Monitoring Version 2 (PerfMonV2) features. If found to
be set during PMU initialization, the EBX bits can be used to determine
the number of available counters for different PMUs. It also denotes the
availability of global control and status registers.

Add the required CPUID feature word and feature bit to allow guests to
make use of the PerfMonV2 features.

Signed-off-by: Sandipan Das <sandipan.das@amd.com>
Signed-off-by: Babu Moger <babu.moger@amd.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Link: 
https://lore.kernel.org/r/a96f00ee2637674c63c61e9fc4dee343ea818053.1729807947.git.babu.moger@amd.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 2ec282b8eaaddf5c136f7566b5f61d80288a2065
      
https://github.com/qemu/qemu/commit/2ec282b8eaaddf5c136f7566b5f61d80288a2065
  Author: Babu Moger <babu.moger@amd.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

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

  Log Message:
  -----------
  target/i386: Expose bits related to SRSO vulnerability

Add following bits related Speculative Return Stack Overflow (SRSO).
Guests can make use of these bits if supported.

These bits are reported via CPUID Fn8000_0021_EAX.
===================================================================
Bit Feature Description
===================================================================
27  SBPB                Indicates support for the Selective Branch Predictor 
Barrier.
28  IBPB_BRTYPE         MSR_PRED_CMD[IBPB] flushes all branch type predictions.
29  SRSO_NO             Not vulnerable to SRSO.
30  SRSO_USER_KERNEL_NO Not vulnerable to SRSO at the user-kernel boundary.
===================================================================

Link: 
https://www.amd.com/content/dam/amd/en/documents/corporate/cr/speculative-return-stack-overflow-whitepaper.pdf
Link: 
https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/57238.zip
Signed-off-by: Babu Moger <babu.moger@amd.com>
Link: 
https://lore.kernel.org/r/dadbd70c38f4e165418d193918a3747bd715c5f4.1729807947.git.babu.moger@amd.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9c07a7af5da66f11a97f56ad1b21f3b12e138a67
      
https://github.com/qemu/qemu/commit/9c07a7af5da66f11a97f56ad1b21f3b12e138a67
  Author: Babu Moger <babu.moger@amd.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

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

  Log Message:
  -----------
  target/i386: Expose new feature bits in CPUID 8000_0021_EAX/EBX

Newer AMD CPUs support ERAPS (Enhanced Return Address Prediction Security)
feature that enables the auto-clear of RSB entries on a TLB flush, context
switches and VMEXITs. The number of default RSP entries is reflected in
RapSize.

Add the feature bit and feature word to support these features.

CPUID_Fn80000021_EAX
Bits   Feature Description
24     ERAPS:
       Indicates support for enhanced return address predictor security.

CPUID_Fn80000021_EBX
Bits   Feature Description
31-24  Reserved
23:16  RapSize:
       Return Address Predictor size. RapSize x 8 is the minimum number
       of CALL instructions software needs to execute to flush the RAP.
15-00  MicrocodePatchSize. Read-only.
       Reports the size of the Microcode patch in 16-byte multiples.
       If 0, the size of the patch is at most 5568 (15C0h) bytes.

Link: 
https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/57238.zip
Signed-off-by: Babu Moger <babu.moger@amd.com>
Link: 
https://lore.kernel.org/r/7c62371fe60af1e9bbd853f5f8e949bf2d908bd0.1729807947.git.babu.moger@amd.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 7cac7aa7040a823c585f1578a38f28e83c8bf3e1
      
https://github.com/qemu/qemu/commit/7cac7aa7040a823c585f1578a38f28e83c8bf3e1
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M host/include/i386/host/cpuinfo.h
    M target/i386/hvf/x86_cpuid.c
    M util/cpuinfo-i386.c

  Log Message:
  -----------
  target/i386/hvf: fix handling of XSAVE-related CPUID bits

The call to xgetbv() is passing the ecx value for cpuid function 0xD,
index 0. The xgetbv call thus returns false (OSXSAVE is bit 27, which is
well out of the range of CPUID[0xD,0].ECX) and eax is not modified. While
fixing it, cache the whole computation of supported XCR0 bits since it
will be used for more than just CPUID leaf 0xD.

Furthermore, unsupported subleafs of CPUID 0xD (including all those
corresponding to zero bits in host's XCR0) must be hidden; if OSXSAVE
is not set at all, the whole of CPUID leaf 0xD plus the XSAVE bit must
be hidden.

Finally, unconditionally drop XSTATE_BNDREGS_MASK and XSTATE_BNDCSR_MASK;
real hardware will only show them if the MPX bit is set in CPUID;
this is never the case for hvf_get_supported_cpuid() because QEMU's
Hypervisor.framework support does not handle the VMX fields related to
MPX (even in the unlikely possibility that the host has MPX enabled).
So hide those bits in the new cache_host_xcr0().

Cc: Phil Dennis-Jordan <lists@philjordan.eu>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1ac32dc8eaa23e913be6afc175b2b43bf2aa5fac
      
https://github.com/qemu/qemu/commit/1ac32dc8eaa23e913be6afc175b2b43bf2aa5fac
  Author: Dorjoy Chowdhury <dorjoychy111@gmail.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M .gitlab-ci.d/cirrus/macos-14.vars
    M .gitlab-ci.d/cirrus/macos-15.vars
    M scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
    M scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
    M tests/docker/dockerfiles/alpine.docker
    M tests/docker/dockerfiles/debian-amd64-cross.docker
    M tests/docker/dockerfiles/debian-arm64-cross.docker
    M tests/docker/dockerfiles/debian-armhf-cross.docker
    M tests/docker/dockerfiles/debian-i686-cross.docker
    M tests/docker/dockerfiles/debian-mips64el-cross.docker
    M tests/docker/dockerfiles/debian-mipsel-cross.docker
    M tests/docker/dockerfiles/debian-ppc64el-cross.docker
    M tests/docker/dockerfiles/debian-s390x-cross.docker
    M tests/docker/dockerfiles/debian.docker
    M tests/docker/dockerfiles/fedora-rust-nightly.docker
    M tests/docker/dockerfiles/fedora.docker
    M tests/docker/dockerfiles/opensuse-leap.docker
    M tests/docker/dockerfiles/ubuntu2204.docker
    M tests/lcitool/projects/qemu.yml

  Log Message:
  -----------
  tests/lcitool: Update libvirt-ci and add libcbor dependency

libcbor dependecy is necessary for adding virtio-nsm and nitro-enclave
machine support in the following commits. libvirt-ci has already been
updated with the dependency upstream and this commit updates libvirt-ci
submodule in QEMU to latest upstream. Also the libcbor dependency has
been added to tests/lcitool/projects/qemu.yml.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Link: https://lore.kernel.org/r/20241008211727.49088-2-dorjoychy111@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: bb154e3e0cc715605d915f0761e0cd7a4e64d1bd
      
https://github.com/qemu/qemu/commit/bb154e3e0cc715605d915f0761e0cd7a4e64d1bd
  Author: Dorjoy Chowdhury <dorjoychy111@gmail.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M Kconfig.host
    M MAINTAINERS
    M hw/virtio/Kconfig
    A hw/virtio/cbor-helpers.c
    M hw/virtio/meson.build
    A hw/virtio/virtio-nsm-pci.c
    A hw/virtio/virtio-nsm.c
    A include/hw/virtio/cbor-helpers.h
    A include/hw/virtio/virtio-nsm.h
    M meson.build
    M meson_options.txt
    M scripts/meson-buildoptions.sh

  Log Message:
  -----------
  device/virtio-nsm: Support for Nitro Secure Module device

Nitro Secure Module (NSM)[1] device is used in AWS Nitro Enclaves[2]
for stripped down TPM functionality like cryptographic attestation.
The requests to and responses from NSM device are CBOR[3] encoded.

This commit adds support for NSM device in QEMU. Although related to
AWS Nitro Enclaves, the virito-nsm device is independent and can be
used in other machine types as well. The libcbor[4] library has been
used for the CBOR encoding and decoding functionalities.

[1] https://lists.oasis-open.org/archives/virtio-comment/202310/msg00387.html
[2] https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html
[3] http://cbor.io/
[4] https://libcbor.readthedocs.io/en/latest/

Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Link: https://lore.kernel.org/r/20241008211727.49088-3-dorjoychy111@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 63d2a5c78791e5df1d3173e553a09838fb4f7c9c
      
https://github.com/qemu/qemu/commit/63d2a5c78791e5df1d3173e553a09838fb4f7c9c
  Author: Dorjoy Chowdhury <dorjoychy111@gmail.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M Kconfig.host
    M MAINTAINERS
    M hw/core/Kconfig
    A hw/core/eif.c
    A hw/core/eif.h
    M hw/core/meson.build
    M meson.build

  Log Message:
  -----------
  hw/core: Add Enclave Image Format (EIF) related helpers

An EIF (Enclave Image Format)[1] file is used to boot an AWS nitro
enclave[2] virtual machine. The EIF file contains the necessary kernel,
cmdline, ramdisk(s) sections to boot.

Some helper functions have been introduced for extracting the necessary
sections from an EIF file and then writing them to temporary files as
well as computing SHA384 hashes from the section data. These will be
used in the following commit to add support for nitro-enclave machine
type in QEMU.

The files added in this commit are not compiled yet but will be added
to the hw/core/meson.build file in the following commit where
CONFIG_NITRO_ENCLAVE will be introduced.

[1] https://github.com/aws/aws-nitro-enclaves-image-format
[2] https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html

Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Link: https://lore.kernel.org/r/20241008211727.49088-4-dorjoychy111@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1a9867498dddcdfc5021f6ef453d75c347455e32
      
https://github.com/qemu/qemu/commit/1a9867498dddcdfc5021f6ef453d75c347455e32
  Author: Dorjoy Chowdhury <dorjoychy111@gmail.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M backends/hostmem-memfd.c
    M hw/core/machine.c
    M include/hw/boards.h
    M include/sysemu/hostmem.h

  Log Message:
  -----------
  core/machine: Make create_default_memdev machine a virtual method

This is in preparation for the next commit where the nitro-enclave
machine type will need to instead use a memfd backend, for the built-in
vhost-user-vsock device to work.

Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Link: https://lore.kernel.org/r/20241008211727.49088-5-dorjoychy111@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f1826463d2e82115ebf2b2aa8e041c85cceaec5e
      
https://github.com/qemu/qemu/commit/f1826463d2e82115ebf2b2aa8e041c85cceaec5e
  Author: Dorjoy Chowdhury <dorjoychy111@gmail.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M MAINTAINERS
    M configs/devices/i386-softmmu/default.mak
    M hw/i386/Kconfig
    M hw/i386/meson.build
    M hw/i386/microvm.c
    A hw/i386/nitro_enclave.c
    M include/hw/i386/microvm.h
    A include/hw/i386/nitro_enclave.h

  Log Message:
  -----------
  machine/nitro-enclave: New machine type for AWS Nitro Enclaves

AWS nitro enclaves[1] is an Amazon EC2[2] feature that allows creating
isolated execution environments, called enclaves, from Amazon EC2
instances which are used for processing highly sensitive data. Enclaves
have no persistent storage and no external networking. The enclave VMs
are based on the Firecracker microvm with a vhost-vsock device for
communication with the parent EC2 instance that spawned it and a Nitro
Secure Module (NSM) device for cryptographic attestation. The parent
instance VM always has CID 3 while the enclave VM gets a dynamic CID.

An EIF (Enclave Image Format)[3] file is used to boot an AWS nitro enclave
virtual machine. This commit adds support for AWS nitro enclave emulation
using a new machine type option '-M nitro-enclave'. This new machine type
is based on the 'microvm' machine type, similar to how real nitro enclave
VMs are based on Firecracker microvm. For nitro-enclave to boot from an
EIF file, the kernel and ramdisk(s) are extracted into a temporary kernel
and a temporary initrd file which are then hooked into the regular x86
boot mechanism along with the extracted cmdline. The EIF file path should
be provided using the '-kernel' QEMU option.

In QEMU, the vsock emulation for nitro enclave is added using vhost-user-
vsock as opposed to vhost-vsock. vhost-vsock doesn't support sibling VM
communication which is needed for nitro enclaves. So for the vsock
communication to CID 3 to work, another process that does the vsock
emulation in  userspace must be run, for example, vhost-device-vsock[4]
from rust-vmm, with necessary vsock communication support in another
guest VM with CID 3. Using vhost-user-vsock also enables the possibility
to implement some proxying support in the vhost-user-vsock daemon that
will forward all the packets to the host machine instead of CID 3 so
that users of nitro-enclave can run the necessary applications in their
host machine instead of running another whole VM with CID 3. The following
mandatory nitro-enclave machine option has been added related to the
vhost-user-vsock device.
  - 'vsock': The chardev id from the '-chardev' option for the
vhost-user-vsock device.

AWS Nitro Enclaves have built-in Nitro Secure Module (NSM) device which
has been added using the virtio-nsm device added in a previous commit.
In Nitro Enclaves, all the PCRs start in a known zero state and the first
16 PCRs are locked from boot and reserved. The PCR0, PCR1, PCR2 and PCR8
contain the SHA384 hashes related to the EIF file used to boot the VM
for validation. The following optional nitro-enclave machine options
have been added related to the NSM device.
  - 'id': Enclave identifier, reflected in the module-id of the NSM
device. If not provided, a default id will be set.
  - 'parent-role': Parent instance IAM role ARN, reflected in PCR3
of the NSM device.
  - 'parent-id': Parent instance identifier, reflected in PCR4 of the
NSM device.

[1] https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html
[2] https://aws.amazon.com/ec2/
[3] https://github.com/aws/aws-nitro-enclaves-image-format
[4] https://github.com/rust-vmm/vhost-device/tree/main/vhost-device-vsock

Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Link: https://lore.kernel.org/r/20241008211727.49088-6-dorjoychy111@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 05bad41ba96bb1de2403e845038e4195693d5272
      
https://github.com/qemu/qemu/commit/05bad41ba96bb1de2403e845038e4195693d5272
  Author: Dorjoy Chowdhury <dorjoychy111@gmail.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M MAINTAINERS
    A docs/system/i386/nitro-enclave.rst
    M docs/system/target-i386.rst
    M tests/qtest/libqtest.c

  Log Message:
  -----------
  docs/nitro-enclave: Documentation for nitro-enclave machine type

Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com>
Reviewed-by: Alexander Graf <graf@amazon.com>
Link: https://lore.kernel.org/r/20241008211727.49088-7-dorjoychy111@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: cf4344639bbedb3f941488af75f44da9aa3d8650
      
https://github.com/qemu/qemu/commit/cf4344639bbedb3f941488af75f44da9aa3d8650
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M .gitlab-ci.d/buildtest-template.yml

  Log Message:
  -----------
  ci: always invoke meson through pyvenv

Do not assume that the distro-installed meson is compatible with the one
in the virtual environment.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a635390f05f37e6e1d3ce2850a1d8564be0081ad
      
https://github.com/qemu/qemu/commit/a635390f05f37e6e1d3ce2850a1d8564be0081ad
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: use tcg_gen_ext_tl when applicable

Prefer it to gen_ext_tl in the common case where the destination is known.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c2954745f2c1ed0c8b8fe7c47c2b09479e3c6d81
      
https://github.com/qemu/qemu/commit/c2954745f2c1ed0c8b8fe7c47c2b09479e3c6d81
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu-dump.c

  Log Message:
  -----------
  target/i386: Tidy cc_op_str usage

Make const.  Use the read-only strings directly; do not copy
them into an on-stack buffer with snprintf.  Allow for holes
in the cc_op_str array, now present with CC_OP_POPCNT.

Fixes: 460231ad369 ("target/i386: give CC_OP_POPCNT low bits corresponding to 
MO_TL")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Link: 
https://lore.kernel.org/r/20240701025115.1265117-2-richard.henderson@linaro.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: e09447c39f3afad9920f2a1764e284976767d96e
      
https://github.com/qemu/qemu/commit/e09447c39f3afad9920f2a1764e284976767d96e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu-dump.c
    M target/i386/cpu.h
    M target/i386/tcg/cc_helper.c
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: remove CC_OP_CLR

Just use CC_OP_EFLAGS; it is not that likely that the flags computed by
CC_OP_CLR survive the end of the basic block, in which case there is no
need to spill cc_op_src.

cc_op_src now does need spilling if the XOR is followed by a memory
operation, but this only costs 0.2% extra TCG ops.  They will be recouped
by simplifications in how QEMU evaluates ZF at runtime, which are even
greater with this change.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ee806f9f67ba908187a7d273d96ded398ae9192d
      
https://github.com/qemu/qemu/commit/ee806f9f67ba908187a7d273d96ded398ae9192d
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu.h

  Log Message:
  -----------
  target/i386: Rearrange CCOp

Give the first few enumerators explicit integer constants,
align the BWLQ enumerators.

This will be used to simplify ((op - CC_OP_*B) & 3).

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Link: 
https://lore.kernel.org/r/20240701025115.1265117-4-richard.henderson@linaro.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f359b2fb71c379db28a5184b565f43af6b5ec268
      
https://github.com/qemu/qemu/commit/f359b2fb71c379db28a5184b565f43af6b5ec268
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu.h
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: Introduce cc_op_size

Replace arithmetic on cc_op with a helper function.
Assert that the op has a size and that it is valid
for the configuration.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Link: 
https://lore.kernel.org/r/20240701025115.1265117-6-richard.henderson@linaro.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1f7f72bdc4faece6af875503a3abe992e87e776b
      
https://github.com/qemu/qemu/commit/1f7f72bdc4faece6af875503a3abe992e87e776b
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu.h
    M target/i386/tcg/decode-new.c.inc
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: Wrap cc_op_live with a validity check

Assert that op is known and that cc_op_live_ is populated.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ae14b33de8d329d5497db5446bdc0b0cb6ba756b
      
https://github.com/qemu/qemu/commit/ae14b33de8d329d5497db5446bdc0b0cb6ba756b
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/helper.h
    M target/i386/tcg/cc_helper.c
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: optimize computation of ZF from CC_OP_DYNAMIC

Most uses of CC_OP_DYNAMIC are for CMP/JB/JE or similar sequences.
We can optimize many of them to avoid computation of the flags.
This eliminates both TCG ops to set up the new cc_op, and helper
instructions because evaluating just ZF is much cheaper.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 37df7c4d577124e01f087f598842b253aa2c9eca
      
https://github.com/qemu/qemu/commit/37df7c4d577124e01f087f598842b253aa2c9eca
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: optimize TEST+Jxx sequences

Mostly used for TEST+JG and TEST+JLE, but it is easy to cover
also JBE/JA and JL/JGE; shaves about 0.5% TCG ops.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: cea677e821c5d4efad5e25e504e935751fa61c95
      
https://github.com/qemu/qemu/commit/cea677e821c5d4efad5e25e504e935751fa61c95
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: add a few more trivial CCPrepare cases

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 44d58e938b649a3d73af9b12aba491ebc39e5f7c
      
https://github.com/qemu/qemu/commit/44d58e938b649a3d73af9b12aba491ebc39e5f7c
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: add a note about gen_jcc1

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 46c04e4bcfc0e3afc24c40f89a16475e564f0b10
      
https://github.com/qemu/qemu/commit/46c04e4bcfc0e3afc24c40f89a16475e564f0b10
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/tcg/cc_helper_template.h.inc

  Log Message:
  -----------
  target/i386: make flag variables unsigned

This makes it easier for the compiler to understand which bits are set,
and it also removes "cltq" instructions to canonicalize the output value
as 32-bit signed.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 24899cdcd238f885e9b7c0c708f624aa29090c21
      
https://github.com/qemu/qemu/commit/24899cdcd238f885e9b7c0c708f624aa29090c21
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M include/qemu/host-utils.h
    M target/i386/tcg/cc_helper.c
    M target/i386/tcg/cc_helper_template.h.inc
    M target/i386/tcg/helper-tcg.h
    M target/i386/tcg/int_helper.c

  Log Message:
  -----------
  target/i386: use compiler builtin to compute PF

This removes the 256 byte parity table from the executable.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 134ffcb276be569fcb7531b2266b0df0d2a1db81
      
https://github.com/qemu/qemu/commit/134ffcb276be569fcb7531b2266b0df0d2a1db81
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/tcg/cc_helper_template.h.inc

  Log Message:
  -----------
  target/i386: use higher-precision arithmetic to compute CF

If the operands of the arithmetic instruction fit within a half-register,
it's easiest to use a comparison instruction to compute the carry.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 6d8623b5c0854a422c2aa57fff90d39275886a47
      
https://github.com/qemu/qemu/commit/6d8623b5c0854a422c2aa57fff90d39275886a47
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/tcg/cc_helper_template.h.inc

  Log Message:
  -----------
  target/i386: use + to put flags together

This gives greater opportunity for reassociation on x86 targets,
since addition can use the LEA instruction.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 33098002a838a0450f243f5e17463aca700e923d
      
https://github.com/qemu/qemu/commit/33098002a838a0450f243f5e17463aca700e923d
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386: cpu: set correct supported XCR0 features for TCG

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20241031085233.425388-2-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b888c7807049cc044d10d70139cb945202fb7cd2
      
https://github.com/qemu/qemu/commit/b888c7807049cc044d10d70139cb945202fb7cd2
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

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

  Log Message:
  -----------
  target/i386: do not rely on ExtSaveArea for accelerator-supported XCR0 bits

Right now, QEMU is using the "feature" and "bits" fields of ExtSaveArea
to query the accelerator for the support status of extended save areas.
This is a problem for AVX10, which attaches two feature bits (AVX512F
and AVX10) to the same extended save states.

To keep the AVX10 hacks to the minimum, limit usage of esa->features
and esa->bits.  Instead, just query the accelerator for the 0xD leaf.
Do it in common code and clear esa->size if an extended save state is
unsupported.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20241031085233.425388-3-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 3507c6f04606593711408a6d26141bdbceff9377
      
https://github.com/qemu/qemu/commit/3507c6f04606593711408a6d26141bdbceff9377
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386: return bool from x86_cpu_filter_features

Prepare for filtering non-boolean features such as AVX10 version.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
Link: https://lore.kernel.org/r/20241031085233.425388-4-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: bccfb846fd52d6f20704ecfa4d01b60b43c6f640
      
https://github.com/qemu/qemu/commit/bccfb846fd52d6f20704ecfa4d01b60b43c6f640
  Author: Tao Su <tao1.su@linux.intel.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

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

  Log Message:
  -----------
  target/i386: add AVX10 feature and AVX10 version property

When AVX10 enable bit is set, the 0x24 leaf will be present as "AVX10
Converged Vector ISA leaf" containing fields for the version number and
the supported vector bit lengths.

Introduce avx10-version property so that avx10 version can be controlled
by user and cpu model. Per spec, avx10 version can never be 0, the default
value of avx10-version is set to 0 to determine whether it is specified by
user.  The default can come from the device model or, for the max model,
from KVM's reported value.

Signed-off-by: Tao Su <tao1.su@linux.intel.com>
Link: https://lore.kernel.org/r/20241028024512.156724-3-tao1.su@linux.intel.com
Link: https://lore.kernel.org/r/20241028024512.156724-4-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Tested-by: Xuelian Guo <xuelian.guo@intel.com>
Link: https://lore.kernel.org/r/20241031085233.425388-5-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 2d055b8fe11ee567c2ae8047311fd83697e494b6
      
https://github.com/qemu/qemu/commit/2d055b8fe11ee567c2ae8047311fd83697e494b6
  Author: Tao Su <tao1.su@linux.intel.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

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

  Log Message:
  -----------
  target/i386: add CPUID.24 features for AVX10

Introduce features for the supported vector bit lengths.

Signed-off-by: Tao Su <tao1.su@linux.intel.com>
Link: https://lore.kernel.org/r/20241028024512.156724-3-tao1.su@linux.intel.com
Link: https://lore.kernel.org/r/20241028024512.156724-4-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Tested-by: Xuelian Guo <xuelian.guo@intel.com>
Link: https://lore.kernel.org/r/20241031085233.425388-6-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 150ab84b2d0083e6af344cca70290614d4fe568d
      
https://github.com/qemu/qemu/commit/150ab84b2d0083e6af344cca70290614d4fe568d
  Author: Tao Su <tao1.su@linux.intel.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

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

  Log Message:
  -----------
  target/i386: Add feature dependencies for AVX10

Since the highest supported vector length for a processor implies that
all lesser vector lengths are also supported, add the dependencies of
the supported vector lengths. If all vector lengths aren't supported,
clear AVX10 enable bit as well.

Note that the order of AVX10 related dependencies should be kept as:
        CPUID_24_0_EBX_AVX10_128     -> CPUID_24_0_EBX_AVX10_256,
        CPUID_24_0_EBX_AVX10_256     -> CPUID_24_0_EBX_AVX10_512,
        CPUID_24_0_EBX_AVX10_VL_MASK -> CPUID_7_1_EDX_AVX10,
        CPUID_7_1_EDX_AVX10          -> CPUID_24_0_EBX,
so that prevent user from setting weird CPUID combinations, e.g. 256-bits
and 512-bits are supported but 128-bits is not, no vector lengths are
supported but AVX10 enable bit is still set.

Since AVX10_128 will be reserved as 1, adding these dependencies has the
bonus that when user sets -cpu host,-avx10-128, CPUID_7_1_EDX_AVX10 and
CPUID_24_0_EBX will be disabled automatically.

Tested-by: Xuelian Guo <xuelian.guo@intel.com>
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
Link: https://lore.kernel.org/r/20241028024512.156724-5-tao1.su@linux.intel.com
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://lore.kernel.org/r/20241031085233.425388-7-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0d7475be3b402c25d74c5a4573cbeb733c8f3559
      
https://github.com/qemu/qemu/commit/0d7475be3b402c25d74c5a4573cbeb733c8f3559
  Author: Tao Su <tao1.su@linux.intel.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386: Add AVX512 state when AVX10 is supported

AVX10 state enumeration in CPUID leaf D and enabling in XCR0 register
are identical to AVX512 state regardless of the supported vector lengths.

Given that some E-cores will support AVX10 but not support AVX512, add
AVX512 state components to guest when AVX10 is enabled.

Based on a patch by Tao Su <tao1.su@linux.intel.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Tested-by: Xuelian Guo <xuelian.guo@intel.com>
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
Link: https://lore.kernel.org/r/20241031085233.425388-8-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1a519388a882fbb352e49cbebb0ed8f62d05842d
      
https://github.com/qemu/qemu/commit/1a519388a882fbb352e49cbebb0ed8f62d05842d
  Author: Tao Su <tao1.su@linux.intel.com>
  Date:   2024-10-31 (Thu, 31 Oct 2024)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  target/i386: Introduce GraniteRapids-v2 model

Update GraniteRapids CPU model to add AVX10 and the missing features(ss,
tsc-adjust, cldemote, movdiri, movdir64b).

Tested-by: Xuelian Guo <xuelian.guo@intel.com>
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
Link: https://lore.kernel.org/r/20241028024512.156724-7-tao1.su@linux.intel.com
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://lore.kernel.org/r/20241031085233.425388-9-tao1.su@linux.intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c94bee4cd6693c1c65ba43bb8970cf909dec378b
      
https://github.com/qemu/qemu/commit/c94bee4cd6693c1c65ba43bb8970cf909dec378b
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2024-11-02 (Sat, 02 Nov 2024)

  Changed paths:
    M .gitlab-ci.d/buildtest-template.yml
    M .gitlab-ci.d/buildtest.yml
    M .gitlab-ci.d/cirrus/freebsd-14.vars
    M .gitlab-ci.d/cirrus/macos-14.vars
    M .gitlab-ci.d/cirrus/macos-15.vars
    M Kconfig.host
    M MAINTAINERS
    M accel/accel-system.c
    M backends/hostmem-memfd.c
    M configs/devices/i386-softmmu/default.mak
    M configure
    M docs/about/build-platforms.rst
    M docs/about/deprecated.rst
    A docs/system/i386/nitro-enclave.rst
    M docs/system/target-i386.rst
    M host/include/i386/host/cpuinfo.h
    M hw/core/Kconfig
    A hw/core/eif.c
    A hw/core/eif.h
    M hw/core/machine.c
    M hw/core/meson.build
    M hw/core/qdev.c
    M hw/i386/Kconfig
    M hw/i386/meson.build
    M hw/i386/microvm.c
    A hw/i386/nitro_enclave.c
    M hw/virtio/Kconfig
    A hw/virtio/cbor-helpers.c
    M hw/virtio/meson.build
    A hw/virtio/virtio-nsm-pci.c
    A hw/virtio/virtio-nsm.c
    M include/hw/boards.h
    M include/hw/i386/microvm.h
    A include/hw/i386/nitro_enclave.h
    A include/hw/virtio/cbor-helpers.h
    A include/hw/virtio/virtio-nsm.h
    M include/qemu/host-utils.h
    M include/qom/object.h
    M include/sysemu/hostmem.h
    M meson.build
    M meson_options.txt
    M qom/object.c
    M qom/object_interfaces.c
    M qom/qom-qmp-cmds.c
    M scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
    M scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
    R scripts/meson-buildoptions.
    M scripts/meson-buildoptions.sh
    M stubs/meson.build
    M target/i386/cpu-dump.c
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/helper.h
    M target/i386/host-cpu.c
    M target/i386/hvf/x86_cpuid.c
    M target/i386/kvm/kvm-cpu.c
    M target/i386/kvm/kvm.c
    M target/i386/tcg/cc_helper.c
    M target/i386/tcg/cc_helper_template.h.inc
    M target/i386/tcg/decode-new.c.inc
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/helper-tcg.h
    M target/i386/tcg/int_helper.c
    M target/i386/tcg/translate.c
    M tests/docker/dockerfiles/alpine.docker
    M tests/docker/dockerfiles/centos9.docker
    M tests/docker/dockerfiles/debian-amd64-cross.docker
    M tests/docker/dockerfiles/debian-arm64-cross.docker
    M tests/docker/dockerfiles/debian-armhf-cross.docker
    M tests/docker/dockerfiles/debian-i686-cross.docker
    M tests/docker/dockerfiles/debian-mips64el-cross.docker
    M tests/docker/dockerfiles/debian-mipsel-cross.docker
    M tests/docker/dockerfiles/debian-ppc64el-cross.docker
    M tests/docker/dockerfiles/debian-s390x-cross.docker
    M tests/docker/dockerfiles/debian.docker
    M tests/docker/dockerfiles/fedora-rust-nightly.docker
    M tests/docker/dockerfiles/fedora-win64-cross.docker
    M tests/docker/dockerfiles/fedora.docker
    M tests/docker/dockerfiles/opensuse-leap.docker
    M tests/docker/dockerfiles/ubuntu2204.docker
    M tests/lcitool/projects/qemu.yml
    M tests/qtest/libqtest.c
    M tests/vm/generated/freebsd.json
    M util/cpuinfo-i386.c

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

* target/i386: new feature bits for AMD processors
* target/i386/tcg: improvements around flag handling
* target/i386: add AVX10 support
* target/i386: add GraniteRapids-v2 model
* dockerfiles: add libcbor
* New nitro-enclave machine type
* qom: cleanups to object_new
* configure: detect 64-bit MIPS for rust
* configure: deprecate 32-bit MIPS

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmcjvkQUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroPIKgf/etNpO2T+eLFtWN/Qd5eopBXqNd9k
# KmeK9EgW9lqx2IPGNen33O+uKpb/TsMmubSsSF+YxTp7pmkc8+71f3rBMaIAD02r
# /paHSMVw0+f12DAFQz1jdvGihR7Mew0wcF/UdEt737y6vEmPxLTyYG3Gfa4NSZwT
# /V5jTOIcfUN/UEjNgIp6NTuOEESKmlqt22pfMapgkwMlAJYeeJU2X9eGYE86wJbq
# ZSXNgK3jL9wGT2XKa3e+OKzHfFpSkrB0JbQbdico9pefnBokN/hTeeUJ81wBAc7u
# i00W1CEQVJ5lhBc121d4AWMp83ME6HijJUOTMmJbFIONPsITFPHK1CAkng==
# =D4nR
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 31 Oct 2024 17:28:36 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-i386' of https://gitlab.com/bonzini/qemu: (49 commits)
  target/i386: Introduce GraniteRapids-v2 model
  target/i386: Add AVX512 state when AVX10 is supported
  target/i386: Add feature dependencies for AVX10
  target/i386: add CPUID.24 features for AVX10
  target/i386: add AVX10 feature and AVX10 version property
  target/i386: return bool from x86_cpu_filter_features
  target/i386: do not rely on ExtSaveArea for accelerator-supported XCR0 bits
  target/i386: cpu: set correct supported XCR0 features for TCG
  target/i386: use + to put flags together
  target/i386: use higher-precision arithmetic to compute CF
  target/i386: use compiler builtin to compute PF
  target/i386: make flag variables unsigned
  target/i386: add a note about gen_jcc1
  target/i386: add a few more trivial CCPrepare cases
  target/i386: optimize TEST+Jxx sequences
  target/i386: optimize computation of ZF from CC_OP_DYNAMIC
  target/i386: Wrap cc_op_live with a validity check
  target/i386: Introduce cc_op_size
  target/i386: Rearrange CCOp
  target/i386: remove CC_OP_CLR
  ...

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


Compare: https://github.com/qemu/qemu/compare/628cf101e91e...c94bee4cd669

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications



reply via email to

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