Branch: refs/heads/staging Home: https://github.com/qemu/qemu Commit: 4fb54de823e9d5b88b7f708516a2a9bf997d15c2 https://github.com/qemu/qemu/commit/4fb54de823e9d5b88b7f708516a2a9bf997d15c2 Author: Pierrick Bouvier <pierrick.bouv...@linaro.org> Date: 2025-05-26 (Mon, 26 May 2025)
Changed paths: M meson.build Log Message: ----------- meson: build target libraries with common dependencies As mentioned in [1], dependencies were missing when compiling per target libraries, thus breaking compilation on certain host systems. We now explicitly add common dependencies to those libraries, so it solves the problem. [1] https://lore.kernel.org/qemu-devel/20250513115637.184940-1-th...@redhat.com/ Tested-by: Thomas Huth <th...@redhat.com> Fixes: 6f4e8a92bbd ("hw/arm: make most of the compilation units common") Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Tested-by: Philippe Mathieu-Daudé <phi...@linaro.org> Link: https://lore.kernel.org/r/20250521223414.248276-2-pierrick.bouv...@linaro.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 0ca26a51791f2601238129c6c2724cc4c604392c https://github.com/qemu/qemu/commit/0ca26a51791f2601238129c6c2724cc4c604392c Author: Pierrick Bouvier <pierrick.bouv...@linaro.org> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M hw/arm/meson.build Log Message: ----------- hw/arm: remove explicit dependencies listed Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Reviewed-by: Thomas Huth <th...@redhat.com> Tested-by: Philippe Mathieu-Daudé <phi...@linaro.org> Link: https://lore.kernel.org/r/20250521223414.248276-3-pierrick.bouv...@linaro.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 598a0ba8e6df8c113c77e69ee18c3872fda7b6e9 https://github.com/qemu/qemu/commit/598a0ba8e6df8c113c77e69ee18c3872fda7b6e9 Author: Pierrick Bouvier <pierrick.bouv...@linaro.org> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M target/arm/meson.build Log Message: ----------- target/arm: remove explicit dependencies listed Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Reviewed-by: Thomas Huth <th...@redhat.com> Tested-by: Philippe Mathieu-Daudé <phi...@linaro.org> Link: https://lore.kernel.org/r/20250521223414.248276-4-pierrick.bouv...@linaro.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: b17b51d325130bc9d0f1189461a9a681fbd554e5 https://github.com/qemu/qemu/commit/b17b51d325130bc9d0f1189461a9a681fbd554e5 Author: Pierrick Bouvier <pierrick.bouv...@linaro.org> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M meson.build Log Message: ----------- meson: apply target config for picking files from lib{system, user} semihosting code needs to be included only if CONFIG_SEMIHOSTING is set. However, this is a target configuration, so we need to apply it to the lib{system, user}_ss. As well, this prepares merging lib{system, user}_ss with {system, user}_ss. Acked-by: Richard Henderson <richard.hender...@linaro.org> Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Tested-by: Philippe Mathieu-Daudé <phi...@linaro.org> Link: https://lore.kernel.org/r/20250521223414.248276-5-pierrick.bouv...@linaro.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 7ca433244c6dde497bb36184f70b442b399fda3e https://github.com/qemu/qemu/commit/7ca433244c6dde497bb36184f70b442b399fda3e Author: Pierrick Bouvier <pierrick.bouv...@linaro.org> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M meson.build Log Message: ----------- meson: merge lib{system, user}_ss with {system, user}_ss Now that target configuration can be applied to lib{system, user}_ss, there is no reason to keep that separate from the existing {system, user}_ss. The only difference is that we'll now compile those files with -DCOMPILING_SYSTEM_VS_USER, which removes poison for CONFIG_USER_ONLY and CONFIG_SOFTMMU, without any other side effect. We extract existing system/user code common common libraries to lib{system, user}. To not break existing meson files, we alias libsystem_ss to system_ss and libuser_ss to user_ss, so we can do the cleanup in next commit. Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Tested-by: Philippe Mathieu-Daudé <phi...@linaro.org> Link: https://lore.kernel.org/r/20250521223414.248276-6-pierrick.bouv...@linaro.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: d33717d7fca6a599aa991f771e3ea34b15978cee https://github.com/qemu/qemu/commit/d33717d7fca6a599aa991f771e3ea34b15978cee Author: Pierrick Bouvier <pierrick.bouv...@linaro.org> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M accel/tcg/meson.build M gdbstub/meson.build M hw/core/meson.build M meson.build M plugins/meson.build M system/meson.build M tcg/meson.build Log Message: ----------- meson: remove lib{system, user}_ss aliases Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Tested-by: Philippe Mathieu-Daudé <phi...@linaro.org> Link: https://lore.kernel.org/r/20250521223414.248276-7-pierrick.bouv...@linaro.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: ddc25eb40444f4bbcfea276d22beee6494c3f18e https://github.com/qemu/qemu/commit/ddc25eb40444f4bbcfea276d22beee6494c3f18e Author: Pierrick Bouvier <pierrick.bouv...@linaro.org> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M meson.build Log Message: ----------- meson: merge hw_common_arch in target_common_system_arch No need to keep two different libraries, as both are compiled with exact same flags. As well, rename target common libraries to common_{arch} and system_{arch}, to follow what exists for common and system libraries. Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Tested-by: Philippe Mathieu-Daudé <phi...@linaro.org> Link: https://lore.kernel.org/r/20250521223414.248276-8-pierrick.bouv...@linaro.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: d74169e09e1d424aaca138966f460520a0d4dd0d https://github.com/qemu/qemu/commit/d74169e09e1d424aaca138966f460520a0d4dd0d Author: Zhao Liu <zhao1....@intel.com> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M hw/timer/hpet.c Log Message: ----------- hw/timer/hpet: Reorganize register decoding For Rust HPET, since the commit 519088b7cf6d ("rust: hpet: decode HPET registers into enums"), it decodes register address by checking if the register belongs to global register space. And for C HPET, it checks timer register space first. While both approaches are fine, it's best to be as consistent as possible. Synchronize changes from the rust side to C side. Signed-off-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250520152750.2542612-2-zhao1....@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 86c54a3a418e462e67444ac4db25b2757fd62079 https://github.com/qemu/qemu/commit/86c54a3a418e462e67444ac4db25b2757fd62079 Author: Zhao Liu <zhao1....@intel.com> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M rust/hw/timer/hpet/src/fw_cfg.rs M rust/hw/timer/hpet/src/hpet.rs M rust/hw/timer/hpet/src/lib.rs M rust/qemu-api/src/bitops.rs M rust/qemu-api/src/timer.rs M rust/qemu-api/tests/vmstate_tests.rs Log Message: ----------- rust: Fix Zhao's email address No one could find Zhao Liu via zhai1....@intel.com. Signed-off-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250520152750.2542612-5-zhao1....@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: aef5ac8624c7b826ae2adde48bc6997286ee1303 https://github.com/qemu/qemu/commit/aef5ac8624c7b826ae2adde48bc6997286ee1303 Author: Zhao Liu <zhao1....@intel.com> Date: 2025-05-26 (Mon, 26 May 2025) Changed paths: M rust/hw/char/pl011/src/device.rs M rust/qemu-api/src/qom.rs M rust/qemu-api/src/vmstate.rs Log Message: ----------- rust: Fix the typos in doc These typos are found by "cargo spellcheck". Though it outputs a lot of noise and false positives, there still are some real typos. Signed-off-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250520152750.2542612-6-zhao1....@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 734a1e9eeed2c791c8906d0ee08ad5c9b1f41fa0 https://github.com/qemu/qemu/commit/734a1e9eeed2c791c8906d0ee08ad5c9b1f41fa0 Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2025-05-27 (Tue, 27 May 2025) Changed paths: A rust/hw/timer/hpet/src/device.rs R rust/hw/timer/hpet/src/hpet.rs M rust/hw/timer/hpet/src/lib.rs Log Message: ----------- rust: hpet: rename hpet module to "device" Follow a similar convention as pl011. Reviewed-by: Zhao Liu <zhao1....@intel.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 341ed3eae4179273788d2f74579862a10e18cf81 https://github.com/qemu/qemu/commit/341ed3eae4179273788d2f74579862a10e18cf81 Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2025-05-27 (Tue, 27 May 2025) Changed paths: M target/i386/emulate/x86_flags.c Log Message: ----------- target/i386/emulate: more lflags cleanups Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 5150004ccf5fe72c35b3263fbed6f4d06ed3cc6a https://github.com/qemu/qemu/commit/5150004ccf5fe72c35b3263fbed6f4d06ed3cc6a Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M hw/net/rocker/rocker.h M hw/net/rocker/rocker_hw.h M hw/net/rocker/rocker_of_dpa.c Log Message: ----------- rocker: do not pollute the namespace Do not leave the __le* macros defined, in fact do not use them at all. Fixes a build failure on Alpine with the TDX patches: In file included from ../hw/net/rocker/rocker_of_dpa.c:25: ../hw/net/rocker/rocker_hw.h:14:16: error: conflicting types for 'uint64_t'; have '__u64' {aka 'long long unsigned int'} 14 | #define __le64 uint64_t | ^~~~~~~~ In file included from /usr/include/stdint.h:20, from ../include/qemu/osdep.h:111, from ../hw/net/rocker/rocker_of_dpa.c:17: /usr/include/bits/alltypes.h:136:25: note: previous declaration of 'uint64_t' with type 'uint64_t' {aka 'long unsigned int'} 136 | typedef unsigned _Int64 uint64_t; | ^~~~~~~~ because the Linux headers include a typedef of __leNN. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 756e12e791771034ac105a5d2c9887bbbb6b7c73 https://github.com/qemu/qemu/commit/756e12e791771034ac105a5d2c9887bbbb6b7c73 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M configs/devices/i386-softmmu/default.mak M hw/i386/Kconfig M qapi/qom.json M target/i386/kvm/meson.build A target/i386/kvm/tdx.c A target/i386/kvm/tdx.h Log Message: ----------- i386: Introduce tdx-guest object Introduce tdx-guest object which inherits X86_CONFIDENTIAL_GUEST, and will be used to create TDX VMs (TDs) by qemu -machine ...,confidential-guest-support=tdx0 \ -object tdx-guest,id=tdx0 It has one QAPI member 'attributes' defined, which allows user to set TD's attributes directly. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Acked-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-3-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: b455880e5515a9fc2b923bfc6c60bb54519b51d3 https://github.com/qemu/qemu/commit/b455880e5515a9fc2b923bfc6c60bb54519b51d3 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/kvm.c M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Implement tdx_kvm_type() for TDX TDX VM requires VM type to be KVM_X86_TDX_VM. Implement tdx_kvm_type() as X86ConfidentialGuestClass->kvm_type. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-4-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 631a2ac5a4beab740b342367550562cd659b4c4a https://github.com/qemu/qemu/commit/631a2ac5a4beab740b342367550562cd659b4c4a Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/kvm.c M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Implement tdx_kvm_init() to initialize TDX VM context Implement TDX specific ConfidentialGuestSupportClass::kvm_init() callback, tdx_kvm_init(). Mark guest state is proctected for TDX VM. More TDX specific initialization will be added later. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-5-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 8eddedc3701d2190db976a05155a8263c8ec175b https://github.com/qemu/qemu/commit/8eddedc3701d2190db976a05155a8263c8ec175b Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/kvm.c M target/i386/kvm/kvm_i386.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Get tdx_capabilities via KVM_TDX_CAPABILITIES KVM provides TDX capabilities via sub command KVM_TDX_CAPABILITIES of IOCTL(KVM_MEMORY_ENCRYPT_OP). Get the capabilities when initializing TDX context. It will be used to validate user's setting later. Since there is no interface reporting how many cpuid configs contains in KVM_TDX_CAPABILITIES, QEMU chooses to try starting with a known number and abort when it exceeds KVM_MAX_CPUID_ENTRIES. Besides, introduce the interfaces to invoke TDX "ioctls" at VCPU scope in preparation. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-6-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 1619d0e45be0d1e48a46d80963b4e77dc1b000a2 https://github.com/qemu/qemu/commit/1619d0e45be0d1e48a46d80963b4e77dc1b000a2 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c M target/i386/kvm/tdx.h Log Message: ----------- i386/tdx: Introduce is_tdx_vm() helper and cache tdx_guest object It will need special handling for TDX VMs all around the QEMU. Introduce is_tdx_vm() helper to query if it's a TDX VM. Cache tdx_guest object thus no need to cast from ms->cgs every time. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Isaku Yamahata <isaku.yamah...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-7-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: a668268dc08f7f4d30cecd513054bb38ce48c0d6 https://github.com/qemu/qemu/commit/a668268dc08f7f4d30cecd513054bb38ce48c0d6 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M accel/kvm/kvm-all.c M include/system/kvm.h M target/arm/kvm.c M target/i386/kvm/kvm.c M target/loongarch/kvm/kvm.c M target/mips/kvm.c M target/ppc/kvm.c M target/riscv/kvm/kvm-cpu.c M target/s390x/kvm/kvm.c Log Message: ----------- kvm: Introduce kvm_arch_pre_create_vcpu() Introduce kvm_arch_pre_create_vcpu(), to perform arch-dependent work prior to create any vcpu. This is for i386 TDX because it needs call TDX_INIT_VM before creating any vcpu. The specific implementation for i386 will be added in the future patch. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-8-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: f15898b0f50609d66465326221aa54b6699da674 https://github.com/qemu/qemu/commit/f15898b0f50609d66465326221aa54b6699da674 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/kvm.c M target/i386/kvm/kvm_i386.h M target/i386/kvm/meson.build A target/i386/kvm/tdx-stub.c M target/i386/kvm/tdx.c M target/i386/kvm/tdx.h Log Message: ----------- i386/tdx: Initialize TDX before creating TD vcpus Invoke KVM_TDX_INIT_VM in kvm_arch_pre_create_vcpu() that KVM_TDX_INIT_VM configures global TD configurations, e.g. the canonical CPUID config, and must be executed prior to creating vCPUs. Use kvm_x86_arch_cpuid() to setup the CPUID settings for TDX VM. Note, this doesn't address the fact that QEMU may change the CPUID configuration when creating vCPUs, i.e. punts on refactoring QEMU to provide a stable CPUID config prior to kvm_arch_init(). Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Acked-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-9-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 6016e2972d94c90307b6caf55a8e3aee5424c09b https://github.com/qemu/qemu/commit/6016e2972d94c90307b6caf55a8e3aee5424c09b Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M qapi/qom.json M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Add property sept-ve-disable for tdx-guest object Bit 28 of TD attribute, named SEPT_VE_DISABLE. When set to 1, it disables EPT violation conversion to #VE on guest TD access of PENDING pages. Some guest OS (e.g., Linux TD guest) may require this bit as 1. Otherwise refuse to boot. Add sept-ve-disable property for tdx-guest object, for user to configure this bit. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Acked-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-10-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 714af52276e74a1829674d180ef26ecb6261834c https://github.com/qemu/qemu/commit/714af52276e74a1829674d180ef26ecb6261834c Author: Isaku Yamahata <isaku.yamah...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Make sept_ve_disable set by default For TDX KVM use case, Linux guest is the most major one. It requires sept_ve_disable set. Make it default for the main use case. For other use case, it can be enabled/disabled via qemu command line. Signed-off-by: Isaku Yamahata <isaku.yamah...@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-11-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: bb3be394cf80d68251e5b89e823dddc679b6e644 https://github.com/qemu/qemu/commit/bb3be394cf80d68251e5b89e823dddc679b6e644 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Wire CPU features up with attributes of TD guest For QEMU VMs, - PKS is configured via CPUID_7_0_ECX_PKS, e.g., -cpu xxx,+pks and - PMU is configured by x86cpu->enable_pmu, e.g., -cpu xxx,pmu=on While the bit 30 (PKS) and bit 63 (PERFMON) of TD's attributes are also used to configure the PKS and PERFMON/PMU of TD, reuse the existing configuration interfaces of 'cpu' for TD's attributes. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-12-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 53b6f406b4f1a215fb3ec60e56ddba2e019a45ef https://github.com/qemu/qemu/commit/53b6f406b4f1a215fb3ec60e56ddba2e019a45ef Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Validate TD attributes Validate TD attributes with tdx_caps that only supported bits are allowed by KVM. Besides, sanity check the attribute bits that have not been supported by QEMU yet. e.g., debug bit, it will be allowed in the future when debug TD support lands in QEMU. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Link: https://lore.kernel.org/r/20250508150002.689633-13-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: d05a0858cf876f79b57a622716fbad07f5b2ea08 https://github.com/qemu/qemu/commit/d05a0858cf876f79b57a622716fbad07f5b2ea08 Author: Isaku Yamahata <isaku.yamah...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M qapi/qom.json M target/i386/kvm/tdx.c M target/i386/kvm/tdx.h Log Message: ----------- i386/tdx: Support user configurable mrconfigid/mrowner/mrownerconfig Three sha384 hash values, mrconfigid, mrowner and mrownerconfig, of a TD can be provided for TDX attestation. Detailed meaning of them can be found: https://lore.kernel.org/qemu-devel/31d6dbc1-f453-4cef-ab08-4813f4e0f...@intel.com/ Allow user to specify those values via property mrconfigid, mrowner and mrownerconfig. They are all in base64 format. example -object tdx-guest, \ mrconfigid=ASNFZ4mrze8BI0VniavN7wEjRWeJq83vASNFZ4mrze8BI0VniavN7wEjRWeJq83v,\ mrowner=ASNFZ4mrze8BI0VniavN7wEjRWeJq83vASNFZ4mrze8BI0VniavN7wEjRWeJq83v,\ mrownerconfig=ASNFZ4mrze8BI0VniavN7wEjRWeJq83vASNFZ4mrze8BI0VniavN7wEjRWeJq83v Signed-off-by: Isaku Yamahata <isaku.yamah...@intel.com> Co-developed-by: Xiaoyao Li <xiaoyao...@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-14-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: d529a2ac5ef4620173439942f78ec668f9165fc1 https://github.com/qemu/qemu/commit/d529a2ac5ef4620173439942f78ec668f9165fc1 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c M target/i386/kvm/tdx.h Log Message: ----------- i386/tdx: Set APIC bus rate to match with what TDX module enforces TDX advertises core crystal clock with cpuid[0x15] as 25MHz for TD guests and it's unchangeable from VMM. As a result, TDX guest reads the APIC timer at the same frequency, 25MHz. While KVM's default emulated frequency for APIC bus is 1GHz, set the APIC bus rate to match with TDX explicitly to ensure KVM provide correct emulated APIC timer for TD guest. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-15-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 0e73b843616e52882940ab89e1b0e86e22be2162 https://github.com/qemu/qemu/commit/0e73b843616e52882940ab89e1b0e86e22be2162 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/kvm.c M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Implement user specified tsc frequency Reuse "-cpu,tsc-frequency=" to get user wanted tsc frequency and call VM scope VM_SET_TSC_KHZ to set the tsc frequency of TD before KVM_TDX_INIT_VM. Besides, sanity check the tsc frequency to be in the legal range and legal granularity (required by TDX module). Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-16-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 0dd5fe5ebeabefc7b3d7f043991b1edfe6b8eda9 https://github.com/qemu/qemu/commit/0dd5fe5ebeabefc7b3d7f043991b1edfe6b8eda9 Author: Chao Peng <chao.p.p...@linux.intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M hw/i386/x86-common.c M target/i386/kvm/tdx.c M target/i386/kvm/tdx.h Log Message: ----------- i386/tdx: load TDVF for TD guest TDVF(OVMF) needs to run at private memory for TD guest. TDX cannot support pflash device since it doesn't support read-only private memory. Thus load TDVF(OVMF) with -bios option for TDs. Use memory_region_init_ram_guest_memfd() to allocate the MemoryRegion for TDVF because it needs to be located at private memory. Also store the MemoryRegion pointer of TDVF since the shared ramblock of it can be discared after it gets copied to private ramblock. Signed-off-by: Chao Peng <chao.p.p...@linux.intel.com> Co-developed-by: Xiaoyao Li <xiaoyao...@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-17-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: b65a6011d16c4f7cb2eb227ab1bc735850475288 https://github.com/qemu/qemu/commit/b65a6011d16c4f7cb2eb227ab1bc735850475288 Author: Isaku Yamahata <isaku.yamah...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M hw/i386/Kconfig M hw/i386/meson.build A hw/i386/tdvf.c A include/hw/i386/tdvf.h Log Message: ----------- i386/tdvf: Introduce function to parse TDVF metadata TDX VM needs to boot with its specialized firmware, Trusted Domain Virtual Firmware (TDVF). QEMU needs to parse TDVF and map it in TD guest memory prior to running the TDX VM. A TDVF Metadata in TDVF image describes the structure of firmware. QEMU refers to it to setup memory for TDVF. Introduce function tdvf_parse_metadata() to parse the metadata from TDVF image and store the info of each TDVF section. TDX metadata is located by a TDX metadata offset block, which is a GUID-ed structure. The data portion of the GUID structure contains only an 4-byte field that is the offset of TDX metadata to the end of firmware file. Select X86_FW_OVMF when TDX is enable to leverage existing functions to parse and search OVMF's GUID-ed structures. Signed-off-by: Isaku Yamahata <isaku.yamah...@intel.com> Co-developed-by: Xiaoyao Li <xiaoyao...@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-18-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: cb5d65a854e58abeb705a2ce14cc3eb28973c606 https://github.com/qemu/qemu/commit/cb5d65a854e58abeb705a2ce14cc3eb28973c606 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M hw/i386/pc_sysfw.c M target/i386/kvm/tdx-stub.c M target/i386/kvm/tdx.c M target/i386/kvm/tdx.h Log Message: ----------- i386/tdx: Parse TDVF metadata for TDX VM After TDVF is loaded to bios MemoryRegion, it needs parse TDVF metadata. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-19-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 49b1f0f812372129736c1df0421c8f67d86d362b https://github.com/qemu/qemu/commit/49b1f0f812372129736c1df0421c8f67d86d362b Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M hw/i386/pc.c Log Message: ----------- i386/tdx: Don't initialize pc.rom for TDX VMs For TDX, the address below 1MB are entirely general RAM. No need to initialize pc.rom memory region for TDs. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-20-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 4420ba0ebbf014acc68f78669e0767e288313ed6 https://github.com/qemu/qemu/commit/4420ba0ebbf014acc68f78669e0767e288313ed6 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M hw/i386/tdvf.c M include/hw/i386/tdvf.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Track mem_ptr for each firmware entry of TDVF For each TDVF sections, QEMU needs to copy the content to guest private memory via KVM API (KVM_TDX_INIT_MEM_REGION). Introduce a field @mem_ptr for TdxFirmwareEntry to track the memory pointer of each TDVF sections. So that QEMU can add/copy them to guest private memory later. TDVF sections can be classified into two groups: - Firmware itself, e.g., TDVF BFV and CFV, that located separately from guest RAM. Its memory pointer is the bios pointer. - Sections located at guest RAM, e.g., TEMP_MEM and TD_HOB. mmap a new memory range for them. Register a machine_init_done callback to do the stuff. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-21-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: f18672e4cf91feed4b91ef85a264a500935a2865 https://github.com/qemu/qemu/commit/f18672e4cf91feed4b91ef85a264a500935a2865 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c M target/i386/kvm/tdx.h Log Message: ----------- i386/tdx: Track RAM entries for TDX VM The RAM of TDX VM can be classified into two types: - TDX_RAM_UNACCEPTED: default type of TDX memory, which needs to be accepted by TDX guest before it can be used and will be all-zeros after being accepted. - TDX_RAM_ADDED: the RAM that is ADD'ed to TD guest before running, and can be used directly. E.g., TD HOB and TEMP MEM that needed by TDVF. Maintain TdxRamEntries[] which grabs the initial RAM info from e820 table and mark each RAM range as default type TDX_RAM_UNACCEPTED. Then turn the range of TD HOB and TEMP MEM to TDX_RAM_ADDED since these ranges will be ADD'ed before TD runs and no need to be accepted runtime. The TdxRamEntries[] are later used to setup the memory TD resource HOB that passes memory info from QEMU to TDVF. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-22-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 88aa6576e4ab40b538f543852128cb17fce37f87 https://github.com/qemu/qemu/commit/88aa6576e4ab40b538f543852128cb17fce37f87 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: A include/standard-headers/uefi/uefi.h Log Message: ----------- headers: Add definitions from UEFI spec for volumes, resources, etc... Add UEFI definitions for literals, enums, structs, GUIDs, etc... that will be used by TDX to build the UEFI Hand-Off Block (HOB) that is passed to the Trusted Domain Virtual Firmware (TDVF). All values come from the UEFI specification [1], PI spec [2] and TDVF design guide[3]. [1] UEFI Specification v2.1.0 https://uefi.org/sites/default/files/resources/UEFI_Spec_2_10_Aug29.pdf [2] UEFI PI spec v1.8 https://uefi.org/sites/default/files/resources/UEFI_PI_Spec_1_8_March3.pdf [3] https://software.intel.com/content/dam/develop/external/us/en/documents/tdx-virtual-firmware-design-guide-rev-1.pdf Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-23-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: a731425980a4d3f8bb96fc41893b6437672875ee https://github.com/qemu/qemu/commit/a731425980a4d3f8bb96fc41893b6437672875ee Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M hw/i386/meson.build A hw/i386/tdvf-hob.c A hw/i386/tdvf-hob.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Setup the TD HOB list The TD HOB list is used to pass the information from VMM to TDVF. The TD HOB must include PHIT HOB and Resource Descriptor HOB. More details can be found in TDVF specification and PI specification. Build the TD HOB in TDX's machine_init_done callback. Co-developed-by: Isaku Yamahata <isaku.yamah...@intel.com> Signed-off-by: Isaku Yamahata <isaku.yamah...@intel.com> Co-developed-by: Sean Christopherson <sean.j.christopher...@intel.com> Signed-off-by: Sean Christopherson <sean.j.christopher...@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-24-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: ebc2d2b497c59414ac3c91de32bc546d27940e74 https://github.com/qemu/qemu/commit/ebc2d2b497c59414ac3c91de32bc546d27940e74 Author: Isaku Yamahata <isaku.yamah...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Add TDVF memory via KVM_TDX_INIT_MEM_REGION TDVF firmware (CODE and VARS) needs to be copied to TD's private memory via KVM_TDX_INIT_MEM_REGION, as well as TD HOB and TEMP memory. If the TDVF section has TDVF_SECTION_ATTRIBUTES_MR_EXTEND set in the flag, calling KVM_TDX_EXTEND_MEMORY to extend the measurement. After populating the TDVF memory, the original image located in shared ramblock can be discarded. Signed-off-by: Isaku Yamahata <isaku.yamah...@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-25-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 41f7fd22073561a23229c0479d9d708dee9d3a1e https://github.com/qemu/qemu/commit/41f7fd22073561a23229c0479d9d708dee9d3a1e Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Call KVM_TDX_INIT_VCPU to initialize TDX vcpu TDX vcpu needs to be initialized by SEAMCALL(TDH.VP.INIT) and KVM provides vcpu level IOCTL KVM_TDX_INIT_VCPU for it. KVM_TDX_INIT_VCPU needs the address of the HOB as input. Invoke it for each vcpu after HOB list is created. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-26-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: ae60ff4e9f9e5790f79abf866ec67270c28ca477 https://github.com/qemu/qemu/commit/ae60ff4e9f9e5790f79abf866ec67270c28ca477 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Finalize TDX VM Invoke KVM_TDX_FINALIZE_VM to finalize the TD's measurement and make the TD vCPUs runnable once machine initialization is complete. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-27-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 1ff5048d74e661943260c33e864c4118acb37ab4 https://github.com/qemu/qemu/commit/1ff5048d74e661943260c33e864c4118acb37ab4 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Enable user exit on KVM_HC_MAP_GPA_RANGE KVM translates TDG.VP.VMCALL<MapGPA> to KVM_HC_MAP_GPA_RANGE, and QEMU needs to enable user exit on KVM_HC_MAP_GPA_RANGE in order to handle the memory conversion requested by TD guest. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-28-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 98dbfd6849f117de02ac6f513f2a1f95563e60ae https://github.com/qemu/qemu/commit/98dbfd6849f117de02ac6f513f2a1f95563e60ae Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/kvm.c M target/i386/kvm/tdx-stub.c M target/i386/kvm/tdx.c M target/i386/kvm/tdx.h Log Message: ----------- i386/tdx: Handle KVM_SYSTEM_EVENT_TDX_FATAL TD guest can use TDG.VP.VMCALL<REPORT_FATAL_ERROR> to request termination. KVM translates such request into KVM_EXIT_SYSTEM_EVENT with type of KVM_SYSTEM_EVENT_TDX_FATAL. Add hanlder for such exit. Parse and print the error message, and terminate the TD guest in the handler. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-29-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 6e250463b08b4028123f201343ee72099ef81e68 https://github.com/qemu/qemu/commit/6e250463b08b4028123f201343ee72099ef81e68 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M qapi/run-state.json M system/runstate.c M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Wire TDX_REPORT_FATAL_ERROR with GuestPanic facility Integrate TDX's TDX_REPORT_FATAL_ERROR into QEMU GuestPanic facility Originated-from: Isaku Yamahata <isaku.yamah...@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-30-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 77b5403a0298a5460554f768a2098fd21588e555 https://github.com/qemu/qemu/commit/77b5403a0298a5460554f768a2098fd21588e555 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M accel/kvm/kvm-all.c Log Message: ----------- kvm: Check KVM_CAP_MAX_VCPUS at vm level KVM with TDX support starts to report different KVM_CAP_MAX_VCPUS per different VM types. So switch to check the KVM_CAP_MAX_VCPUS at vm level. KVM still returns the global KVM_CAP_MAX_VCPUS when the KVM is old that doesn't report different value at vm level. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-31-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 8583c53e2b619b1b9569d3f2d3f3cb2904a573ad https://github.com/qemu/qemu/commit/8583c53e2b619b1b9569d3f2d3f3cb2904a573ad Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/confidential-guest.h M target/i386/cpu.c Log Message: ----------- i386/cpu: introduce x86_confidential_guest_cpu_instance_init() To allow execute confidential guest specific cpu init operations. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-32-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 7c615242671dbe65e198c20889dcaa9b4b9a1624 https://github.com/qemu/qemu/commit/7c615242671dbe65e198c20889dcaa9b4b9a1624 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: implement tdx_cpu_instance_init() Currently, pmu is not supported for TDX by KVM. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-33-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: ab8bd85adf75900edc2764d0ebe8b53867cc54aa https://github.com/qemu/qemu/commit/ab8bd85adf75900edc2764d0ebe8b53867cc54aa Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c M target/i386/cpu.h M target/i386/kvm/kvm.c Log Message: ----------- i386/cpu: Introduce enable_cpuid_0x1f to force exposing CPUID 0x1f Currently, QEMU exposes CPUID 0x1f to guest only when necessary, i.e., when topology level that cannot be enumerated by leaf 0xB, e.g., die or module level, are configured for the guest, e.g., -smp xx,dies=2. However, TDX architecture forces to require CPUID 0x1f to configure CPU topology. Introduce a bool flag, enable_cpuid_0x1f, in CPU for the case that requires CPUID leaf 0x1f to be exposed to guest. Introduce a new function x86_has_cpuid_0x1f(), which is the wrapper of cpu->enable_cpuid_0x1f and x86_has_extended_topo() to check if it needs to enable cpuid leaf 0x1f for the guest. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-34-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 9002494f80b751a7655045c5f46bf90bc1d3bbd0 https://github.com/qemu/qemu/commit/9002494f80b751a7655045c5f46bf90bc1d3bbd0 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Force exposing CPUID 0x1f TDX uses CPUID 0x1f to configure TD guest's CPU topology. So set enable_cpuid_0x1f for TDs. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-35-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: da6728658bf63d6a3989f1587a33566b3e54bed8 https://github.com/qemu/qemu/commit/da6728658bf63d6a3989f1587a33566b3e54bed8 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Set kvm_readonly_mem_enabled to false for TDX VM TDX only supports readonly for shared memory but not for private memory. In the view of QEMU, it has no idea whether a memslot is used as shared memory of private. Thus just mark kvm_readonly_mem_enabled to false to TDX VM for simplicity. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-36-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 810d4e83d07ca0d072205453a42c324a51d5a5fa https://github.com/qemu/qemu/commit/810d4e83d07ca0d072205453a42c324a51d5a5fa Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Disable SMM for TDX VMs TDX doesn't support SMM and VMM cannot emulate SMM for TDX VMs because VMM cannot manipulate TDX VM's memory. Disable SMM for TDX VMs and error out if user requests to enable SMM. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-37-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: e7ef60892c80a9ce5b8504ceb13a81f4e0d4b3f7 https://github.com/qemu/qemu/commit/e7ef60892c80a9ce5b8504ceb13a81f4e0d4b3f7 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Disable PIC for TDX VMs Legacy PIC (8259) cannot be supported for TDX VMs since TDX module doesn't allow directly interrupt injection. Using posted interrupts for the PIC is not a viable option as the guest BIOS/kernel will not do EOI for PIC IRQs, i.e. will leave the vIRR bit set. Hence disable PIC for TDX VMs and error out if user wants PIC. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-38-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: bb45580d842530d78b58179eaf80b6331b15324e https://github.com/qemu/qemu/commit/bb45580d842530d78b58179eaf80b6331b15324e Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Set and check kernel_irqchip mode for TDX KVM mandates kernel_irqchip to be split mode. Set it to split mode automatically when users don't provide an explicit value, otherwise check it to be the split mode. Suggested-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-39-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 0ed55865b49b703af93e160d48935812a7114e07 https://github.com/qemu/qemu/commit/0ed55865b49b703af93e160d48935812a7114e07 Author: Isaku Yamahata <isaku.yamah...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/kvm.c Log Message: ----------- i386/tdx: Don't synchronize guest tsc for TDs TSC of TDs is not accessible and KVM doesn't allow access of MSR_IA32_TSC for TDs. To avoid the assert() in kvm_get_tsc, make kvm_synchronize_all_tsc() noop for TDs, Signed-off-by: Isaku Yamahata <isaku.yamah...@intel.com> Reviewed-by: Connor Kuehl <cku...@redhat.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-40-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: f9aaad3362a5886d78e7d4d50d563ac16c6acdde https://github.com/qemu/qemu/commit/f9aaad3362a5886d78e7d4d50d563ac16c6acdde Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/kvm.c Log Message: ----------- i386/tdx: Only configure MSR_IA32_UCODE_REV in kvm_init_msrs() for TDs For TDs, only MSR_IA32_UCODE_REV in kvm_init_msrs() can be configured by VMM, while the features enumerated/controlled by other MSRs except MSR_IA32_UCODE_REV in kvm_init_msrs() are not under control of VMM. Only configure MSR_IA32_UCODE_REV for TDs. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-41-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 62a1a8b89d90cd3fbee0e6d38e6a4c0d833e978a https://github.com/qemu/qemu/commit/62a1a8b89d90cd3fbee0e6d38e6a4c0d833e978a Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M hw/i386/kvm/apic.c Log Message: ----------- i386/apic: Skip kvm_apic_put() for TDX KVM neithers allow writing to MSR_IA32_APICBASE for TDs, nor allow for KVM_SET_LAPIC[*]. Note, KVM_GET_LAPIC is also disallowed for TDX. It is called in the path do_kvm_cpu_synchronize_state() -> kvm_arch_get_registers() -> kvm_get_apic() and it's already disllowed for confidential guest through guest_state_protected. [*] https://lore.kernel.org/all/z3w4ku4jq0crt...@google.com/ Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-42-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: b4b7fb5a773e1d2215c2aaa99789eca51914b78f https://github.com/qemu/qemu/commit/b4b7fb5a773e1d2215c2aaa99789eca51914b78f Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M accel/kvm/kvm-all.c Log Message: ----------- cpu: Don't set vcpu_dirty when guest_state_protected QEMU calls kvm_arch_put_registers() when vcpu_dirty is true in kvm_vcpu_exec(). However, for confidential guest, like TDX, putting registers is disallowed due to guest state is protected. Only set vcpu_dirty to true with guest state is not protected when creating the vcpu. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-43-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 695bfaee7153153708228946aa26c6d879599c04 https://github.com/qemu/qemu/commit/695bfaee7153153708228946aa26c6d879599c04 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/confidential-guest.h M target/i386/kvm/kvm.c M target/i386/sev.c Log Message: ----------- i386/cgs: Rename *mask_cpuid_features() to *adjust_cpuid_features() Because for TDX case, there are also fixed-1 bits that enforced by TDX module. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-44-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 75ec6189f5c65cab210dd9f16cf4eef368038d45 https://github.com/qemu/qemu/commit/75ec6189f5c65cab210dd9f16cf4eef368038d45 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c M target/i386/cpu.h M target/i386/kvm/kvm.c M target/i386/kvm/kvm_i386.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Implement adjust_cpuid_features() for TDX Maintain a TDX specific supported CPUID set, and use it to mask the common supported CPUID value of KVM. It can avoid newly added supported features (reported via KVM_GET_SUPPORTED_CPUID) for common VMs being falsely reported as supported for TDX. As the first step, initialize the TDX supported CPUID set with all the configurable CPUID bits. It's not complete because there are other CPUID bits are supported for TDX but not reported as directly configurable. E.g. the XFAM related bits, attribute related bits and fixed-1 bits. They will be handled in the future. Also, what matters are the CPUID bits related to QEMU's feature word. Only mask the CPUID leafs which are feature word leaf. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-45-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 0ba06e46d09b84a2cb97a268da5576aaca3a24ca https://github.com/qemu/qemu/commit/0ba06e46d09b84a2cb97a268da5576aaca3a24ca Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.h M target/i386/kvm/kvm_i386.h M target/i386/kvm/tdx.c M target/i386/sev.c Log Message: ----------- i386/tdx: Add TDX fixed1 bits to supported CPUIDs TDX architecture forcibly sets some CPUID bits for TD guest that VMM cannot disable it. They are fixed1 bits. Fixed1 bits are not covered by tdx_caps.cpuid (which only contains the directly configurable bits), while fixed1 bits are supported for TD guest obviously. Add fixed1 bits to tdx_supported_cpuid. Besides, set all the fixed1 bits to the initial set of KVM's support since KVM might not report them as supported. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-46-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 31df29c532a9ef473c6efd497950a620099bf1da https://github.com/qemu/qemu/commit/31df29c532a9ef473c6efd497950a620099bf1da Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Add supported CPUID bits related to TD Attributes For TDX, some CPUID feature bit is configured via TD attributes. They are not covered by tdx_caps.cpuid (which only contians the directly configurable CPUID bits), but they are actually supported when the related attributre bit is supported. Note, LASS and KeyLocker are not supported by KVM for TDX, nor does QEMU support it (see TDX_SUPPORTED_TD_ATTRS). They are defined in tdx_attrs_maps[] for the completeness of the existing TD Attribute bits that are related with CPUID features. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-47-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 8c94c84cb9e0140b48acc9c9d404525ca7ef7457 https://github.com/qemu/qemu/commit/8c94c84cb9e0140b48acc9c9d404525ca7ef7457 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c M target/i386/cpu.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Add supported CPUID bits relates to XFAM Some CPUID bits are controlled by XFAM. They are not covered by tdx_caps.cpuid (which only contians the directly configurable bits), but they are actually supported when the related XFAM bit is supported. Add these XFAM controlled bits to TDX supported CPUID bits based on the supported_xfam. Besides, incorporate the supported_xfam into the supported CPUID leaf of 0xD. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-48-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 9f5771c57dbe92d46361afd992a5851c846d0322 https://github.com/qemu/qemu/commit/9f5771c57dbe92d46361afd992a5851c846d0322 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Add XFD to supported bit of TDX Just mark XFD as always supported for TDX. This simple solution relies on the fact KVM will report XFD as 0 when it's not supported by the hardware. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-49-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 4d6e288a350a977b0fb0613db952087928ccd93e https://github.com/qemu/qemu/commit/4d6e288a350a977b0fb0613db952087928ccd93e Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Define supported KVM features for TDX For TDX, only limited KVM PV features are supported. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-50-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: dc0b08b303ad34983b43936a4c978672e0f9a9d8 https://github.com/qemu/qemu/commit/dc0b08b303ad34983b43936a4c978672e0f9a9d8 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/confidential-guest.h M target/i386/kvm/kvm.c Log Message: ----------- i386/cgs: Introduce x86_confidential_guest_check_features() To do cgs specific feature checking. Note the feature checking in x86_cpu_filter_features() is valid for non-cgs VMs. For cgs VMs like TDX, what features can be supported has more restrictions. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-51-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 4a2fb19669bb41eee5b2fb8e5b5ba30e1daaeaf5 https://github.com/qemu/qemu/commit/4a2fb19669bb41eee5b2fb8e5b5ba30e1daaeaf5 Author: Lei Wang <lei4.w...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c Log Message: ----------- i386: Remove unused parameter "uint32_t bit" in feature_word_description() Parameter "uint32_t bit" is not used in function feature_word_description(), so remove it. Signed-off-by: Lei Wang <lei4.w...@intel.com> Reviewed-by: Igor Mammedov <imamm...@redhat.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20241217123932.948789-2-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: adf25ad70f2f989e63c2cd3e9de4e38152d05e84 https://github.com/qemu/qemu/commit/adf25ad70f2f989e63c2cd3e9de4e38152d05e84 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c Log Message: ----------- target/i386: Print CPUID subleaf info for unsupported feature Some CPUID leaves have meaningful subleaf index. Print the subleaf info in feature_word_description for CPUID features. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20241217123932.948789-3-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: e3d1a4a6d1d61cf5fbd0e4b389cfb3976093739f https://github.com/qemu/qemu/commit/e3d1a4a6d1d61cf5fbd0e4b389cfb3976093739f Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c M target/i386/cpu.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Fetch and validate CPUID of TD guest Use KVM_TDX_GET_CPUID to get the CPUIDs that are managed and enfored by TDX module for TD guest. Check QEMU's configuration against the fetched data. Print wanring message when 1. a feature is not supported but requested by QEMU or 2. QEMU doesn't want to expose a feature while it is enforced enabled. - If cpu->enforced_cpuid is not set, prints the warning message of both 1) and 2) and tweak QEMU's configuration. - If cpu->enforced_cpuid is set, quit if any case of 1) or 2). Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-52-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: deb9db6fb789cfe80527b75983e86137589227a4 https://github.com/qemu/qemu/commit/deb9db6fb789cfe80527b75983e86137589227a4 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Don't treat SYSCALL as unavailable On Intel CPU, the value of CPUID_EXT2_SYSCALL depends on the mode of the vcpu. It's 0 outside 64-bit mode and 1 in 64-bit mode. The initial state of TDX vcpu is 32-bit protected mode. At the time of calling KVM_TDX_GET_CPUID, vcpu hasn't started running so the value read is 0. In reality, 64-bit mode should always be supported. So mark CPUID_EXT2_SYSCALL always supported to avoid false warning. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-53-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: ea4867b911fc2f6d4c8bd50ec62f0dc0fa190fab https://github.com/qemu/qemu/commit/ea4867b911fc2f6d4c8bd50ec62f0dc0fa190fab Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Make invtsc default on Because it's fixed1 bit that enforced by TDX module. Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-54-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 907ee7b67e50a7eea2768c66e3ad67c9aa4ffd3c https://github.com/qemu/qemu/commit/907ee7b67e50a7eea2768c66e3ad67c9aa4ffd3c Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/host-cpu.c M target/i386/host-cpu.h M target/i386/kvm/tdx.c Log Message: ----------- i386/tdx: Validate phys_bits against host value For TDX guest, the phys_bits is not configurable and can only be host/native value. Validate phys_bits inside tdx_check_features(). Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-55-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: dc1424319311f86449c6825ceec2364ee645a363 https://github.com/qemu/qemu/commit/dc1424319311f86449c6825ceec2364ee645a363 Author: Xiaoyao Li <xiaoyao...@intel.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M docs/system/confidential-guest-support.rst A docs/system/i386/tdx.rst M docs/system/target-i386.rst Log Message: ----------- docs: Add TDX documentation Add docs/system/i386/tdx.rst for TDX support, and add tdx in confidential-guest-support.rst Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> Link: https://lore.kernel.org/r/20250508150002.689633-56-xiaoyao...@intel.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 1297b285cc3ffbd06dc3208fbecdb2d582c535dc https://github.com/qemu/qemu/commit/1297b285cc3ffbd06dc3208fbecdb2d582c535dc Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M rust/hw/char/pl011/meson.build M rust/meson.build M rust/qemu-api-macros/meson.build M rust/qemu-api/meson.build Log Message: ----------- rust: make declaration of dependent crates more consistent Crates like "bilge" and "libc" can be shared by more than one directory, so declare them directly in rust/meson.build. While at it, make their variable names end with "_rs" and always add a subproject() statement (as that pinpoints the error better if the subproject is missing and cannot be downloaded). Reviewed-by: Zhao Liu <zhao1....@intel.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 397db937e85d7b9f5a6f0b30764786cef09d1ff3 https://github.com/qemu/qemu/commit/397db937e85d7b9f5a6f0b30764786cef09d1ff3 Author: Babu Moger <babu.mo...@amd.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c Log Message: ----------- target/i386: Update EPYC CPU model for Cache property, RAS, SVM feature bits Found that some of the cache properties are not set correctly for EPYC models. l1d_cache.no_invd_sharing should not be true. l1i_cache.no_invd_sharing should not be true. L2.self_init should be true. L2.inclusive should be true. L3.inclusive should not be true. L3.no_invd_sharing should be true. Fix the cache properties. Also add the missing RAS and SVM features bits on AMD EPYC CPU models. The SVM feature bits are used in nested guests. succor : Software uncorrectable error containment and recovery capability. overflow-recov : MCA overflow recovery support. lbrv : LBR virtualization tsc-scale : MSR based TSC rate control vmcb-clean : VMCB clean bits flushbyasid : Flush by ASID pause-filter : Pause intercept filter pfthreshold : PAUSE filter threshold v-vmsave-vmload : Virtualized VMLOAD and VMSAVE vgif : Virtualized GIF Signed-off-by: Babu Moger <babu.mo...@amd.com> Reviewed-by: Maksim Davydov <davydov-...@yandex-team.ru> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/515941861700d7066186c9600bc5d96a1741ef0c.1746734284.git.babu.mo...@amd.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 83d940e9700527ff080416ce2fa52ee1f4771d72 https://github.com/qemu/qemu/commit/83d940e9700527ff080416ce2fa52ee1f4771d72 Author: Babu Moger <babu.mo...@amd.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c Log Message: ----------- target/i386: Update EPYC-Rome CPU model for Cache property, RAS, SVM feature bits Found that some of the cache properties are not set correctly for EPYC models. l1d_cache.no_invd_sharing should not be true. l1i_cache.no_invd_sharing should not be true. L2.self_init should be true. L2.inclusive should be true. L3.inclusive should not be true. L3.no_invd_sharing should be true. Fix these cache properties. Also add the missing RAS and SVM features bits on AMD EPYC-Rome. The SVM feature bits are used in nested guests. succor : Software uncorrectable error containment and recovery capability. overflow-recov : MCA overflow recovery support. lbrv : LBR virtualization tsc-scale : MSR based TSC rate control vmcb-clean : VMCB clean bits flushbyasid : Flush by ASID pause-filter : Pause intercept filter pfthreshold : PAUSE filter threshold v-vmsave-vmload : Virtualized VMLOAD and VMSAVE vgif : Virtualized GIF Signed-off-by: Babu Moger <babu.mo...@amd.com> Reviewed-by: Maksim Davydov <davydov-...@yandex-team.ru> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/8265af72057b84c99ac3a02a5487e32759cc69b1.1746734284.git.babu.mo...@amd.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: fc014d9ba5b26b27401e0e88a4e1ef827c68fe64 https://github.com/qemu/qemu/commit/fc014d9ba5b26b27401e0e88a4e1ef827c68fe64 Author: Babu Moger <babu.mo...@amd.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c Log Message: ----------- target/i386: Update EPYC-Milan CPU model for Cache property, RAS, SVM feature bits Found that some of the cache properties are not set correctly for EPYC models. l1d_cache.no_invd_sharing should not be true. l1i_cache.no_invd_sharing should not be true. L2.self_init should be true. L2.inclusive should be true. L3.inclusive should not be true. L3.no_invd_sharing should be true. Fix these cache properties. Also add the missing RAS and SVM features bits on AMD EPYC-Milan model. The SVM feature bits are used in nested guests. succor : Software uncorrectable error containment and recovery capability. overflow-recov : MCA overflow recovery support. lbrv : LBR virtualization tsc-scale : MSR based TSC rate control vmcb-clean : VMCB clean bits flushbyasid : Flush by ASID pause-filter : Pause intercept filter pfthreshold : PAUSE filter threshold v-vmsave-vmload : Virtualized VMLOAD and VMSAVE vgif : Virtualized GIF Signed-off-by: Babu Moger <babu.mo...@amd.com> Reviewed-by: Maksim Davydov <davydov-...@yandex-team.ru> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/c619c0e09a9d5d496819ed48d69181d65f416891.1746734284.git.babu.mo...@amd.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: dfd5b456108a75588ab094358ba5754787146d3d https://github.com/qemu/qemu/commit/dfd5b456108a75588ab094358ba5754787146d3d Author: Babu Moger <babu.mo...@amd.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c M target/i386/cpu.h Log Message: ----------- target/i386: Add couple of feature bits in CPUID_Fn80000021_EAX Add CPUID bit indicates that a WRMSR to MSR_FS_BASE, MSR_GS_BASE, or MSR_KERNEL_GS_BASE is non-serializing amd PREFETCHI that the indicates support for IC prefetch. CPUID_Fn80000021_EAX Bit Feature description 20 Indicates support for IC prefetch. 1 FsGsKernelGsBaseNonSerializing. WRMSR to FS_BASE, GS_BASE and KernelGSbase are non-serializing. Link: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/57238.zip Signed-off-by: Babu Moger <babu.mo...@amd.com> Reviewed-by: Maksim Davydov <davydov-...@yandex-team.ru> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/a5f6283a59579b09ac345b3f21ecb3b3b2d92451.1746734284.git.babu.mo...@amd.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: abc92cc8488b5dbcc403b5be24d8092180605101 https://github.com/qemu/qemu/commit/abc92cc8488b5dbcc403b5be24d8092180605101 Author: Babu Moger <babu.mo...@amd.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c Log Message: ----------- target/i386: Update EPYC-Genoa for Cache property, perfmon-v2, RAS and SVM feature bits Found that some of the cache properties are not set correctly for EPYC models. l1d_cache.no_invd_sharing should not be true. l1i_cache.no_invd_sharing should not be true. L2.self_init should be true. L2.inclusive should be true. L3.inclusive should not be true. L3.no_invd_sharing should be true. Fix these cache properties. Also add the missing RAS and SVM features bits on AMD EPYC-Genoa model. The SVM feature bits are used in nested guests. perfmon-v2 : Allow guests to make use of the PerfMonV2 features. succor : Software uncorrectable error containment and recovery capability. overflow-recov : MCA overflow recovery support. lbrv : LBR virtualization tsc-scale : MSR based TSC rate control vmcb-clean : VMCB clean bits flushbyasid : Flush by ASID pause-filter : Pause intercept filter pfthreshold : PAUSE filter threshold v-vmsave-vmload: Virtualized VMLOAD and VMSAVE vgif : Virtualized GIF fs-gs-base-ns : WRMSR to {FS,GS,KERNEL_GS}_BASE is non-serializing The feature details are available in APM listed below [1]. [1] AMD64 Architecture Programmer's Manual Volume 2: System Programming Publication # 24593 Revision 3.41. Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537 Signed-off-by: Babu Moger <babu.mo...@amd.com> Reviewed-by: Maksim Davydov <davydov-...@yandex-team.ru> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/afe3f05d4116124fd5795f28fc23d7b396140313.1746734284.git.babu.mo...@amd.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 3771a4daa273ba17cb27309984413790d1df5651 https://github.com/qemu/qemu/commit/3771a4daa273ba17cb27309984413790d1df5651 Author: Babu Moger <babu.mo...@amd.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/cpu.c Log Message: ----------- target/i386: Add support for EPYC-Turin model Add the support for AMD EPYC zen 5 processors (EPYC-Turin). Add the following new feature bits on top of the feature bits from the previous generation EPYC models. movdiri : Move Doubleword as Direct Store Instruction movdir64b : Move 64 Bytes as Direct Store Instruction avx512-vp2intersect : AVX512 Vector Pair Intersection to a Pair of Mask Register avx-vnni : AVX VNNI Instruction prefetchi : Indicates support for IC prefetch sbpb : Selective Branch Predictor Barrier ibpb-brtype : IBPB includes branch type prediction flushing srso-user-kernel-no : Not vulnerable to SRSO at the user-kernel boundary Link: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/57238.zip Link: https://www.amd.com/content/dam/amd/en/documents/corporate/cr/speculative-return-stack-overflow-whitepaper.pdf Signed-off-by: Babu Moger <babu.mo...@amd.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Link: https://lore.kernel.org/r/b4fa7708a0e1453d2e9b8ec3dc881feb92eeca0b.1746734284.git.babu.mo...@amd.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 9bd24d8d2756a0771b6677b02c7f9b603ef6afe9 https://github.com/qemu/qemu/commit/9bd24d8d2756a0771b6677b02c7f9b603ef6afe9 Author: Fiona Ebner <f.eb...@proxmox.com> Date: 2025-05-28 (Wed, 28 May 2025) Changed paths: M target/i386/tcg/helper-tcg.h Log Message: ----------- target/i386/tcg/helper-tcg: fix file references in comments Commit 32cad1ffb8 ("include: Rename sysemu/ -> system/") renamed target/i386/tcg/sysemu => target/i386/tcg/system. Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Link: https://lore.kernel.org/r/20250526114447.1243840-1-f.eb...@proxmox.com Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 638422f5bcdf2c7bdb401b987b134322c5d6bd4d https://github.com/qemu/qemu/commit/638422f5bcdf2c7bdb401b987b134322c5d6bd4d Author: Hao Wu <wuhao...@google.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M hw/arm/npcm8xx.c M include/hw/arm/npcm8xx.h Log Message: ----------- hw/arm: Add GMAC devices to NPCM8XX SoC The GMAC was originally created for the 8xx machine. During upstreaming both the GMAC and the 8XX we removed it so they would not depend on each other for the process, that connection should be added back in. Signed-off-by: Hao Wu <wuhao...@google.com> Signed-off-by: Nabih Estefan <nabiheste...@google.com> Message-id: 20250508220718.735415-2-nabiheste...@google.com Reviewed-by: Tyrone Ting <kft...@nuvoton.com> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: e7083b02f5628f0ec63d29f2208ca5d3e963e9a8 https://github.com/qemu/qemu/commit/e7083b02f5628f0ec63d29f2208ca5d3e963e9a8 Author: Nabih Estefan <nabiheste...@google.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M tests/qtest/meson.build M tests/qtest/npcm_gmac-test.c Log Message: ----------- tests/qtest: Migrate GMAC test from 7xx to 8xx For upstreaming we migrated this test to 7xx (since that was already upstream) move it back to 8xx where it can check the 4 GMACs since that is the board this test was originally created for. Signed-off-by: Nabih Estefan <nabiheste...@google.com> Message-id: 20250508220718.735415-3-nabiheste...@google.com Reviewed-by: Tyrone Ting <kft...@nuvoton.com> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: e6bc01777e5a4b6ecf3414b21a2d7b4846bf4817 https://github.com/qemu/qemu/commit/e6bc01777e5a4b6ecf3414b21a2d7b4846bf4817 Author: Guenter Roeck <li...@roeck-us.net> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M hw/arm/npcm8xx.c Log Message: ----------- hw/arm: Add missing psci_conduit to NPCM8XX SoC boot info Without psci_conduit, the Linux kernel crashes almost immediately. psci: probing for conduit method from DT. Internal error: Oops - Undefined instruction: 0000000002000000 [#1] PREEMPT SMP Fixes: ae0c4d1a1290 ("hw/arm: Add NPCM8XX SoC") Cc: qemu-sta...@nongnu.org Cc: Hao Wu <wuhao...@google.com> Cc: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Guenter Roeck <li...@roeck-us.net> Message-id: 20250315142050.3642741-1-li...@roeck-us.net Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 0a233da8a02a6126140b9dbd3af29e6763a390b1 https://github.com/qemu/qemu/commit/0a233da8a02a6126140b9dbd3af29e6763a390b1 Author: Souleymane Conte <conte.souleym...@gmail.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M MAINTAINERS M docs/interop/bitmaps.rst M docs/interop/index.rst A docs/interop/qcow2.rst R docs/interop/qcow2.txt M docs/qcow2-cache.txt Log Message: ----------- docs/interop: convert text files to restructuredText buglink: https://gitlab.com/qemu-project/qemu/-/issues/527 Signed-off-by: Souleymane Conte <conte.souleym...@gmail.com> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Reviewed-by: Eric Blake <ebl...@redhat.com> Message-id: 20250522092622.40869-1-conte.souleym...@gmail.com [PMM: switched a few more bits of formatting to monospaced; updated references to qcow2.txt in MAINTAINERS, qcow2-cache.txt and bitmaps.rst] Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 4f8599f20c4a54cefc626b50dc7392dd82b422f9 https://github.com/qemu/qemu/commit/4f8599f20c4a54cefc626b50dc7392dd82b422f9 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M target/arm/meson.build Log Message: ----------- target/arm/tcg-stubs: compile file once (system) Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20250513173928.77376-2-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: f1bcfa81d84c2a7401f6dcbf8fc1c7b26ec18213 https://github.com/qemu/qemu/commit/f1bcfa81d84c2a7401f6dcbf8fc1c7b26ec18213 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M MAINTAINERS A target/arm/hvf-stub.c M target/arm/hvf_arm.h M target/arm/meson.build Log Message: ----------- target/arm/hvf_arm: Avoid using poisoned CONFIG_HVF definition In order to allow non-target specific code to include "hvf_arm.h", define the stubs in hvf-stub.c. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Message-id: 20250513173928.77376-3-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 54d1046f939c2c508a6b73531af83345306ecaa9 https://github.com/qemu/qemu/commit/54d1046f939c2c508a6b73531af83345306ecaa9 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M target/arm/meson.build M target/arm/tcg/meson.build Log Message: ----------- target/arm: Only link with zlib when TCG is enabled Since commit 538b764d341 ("target/arm: Move minor arithmetic helpers out of helper.c") we only use the zlib helpers under TCG. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Message-id: 20250513173928.77376-4-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 982a42c773efc7767e33d618f0fe4fcaef716a57 https://github.com/qemu/qemu/commit/982a42c773efc7767e33d618f0fe4fcaef716a57 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M target/arm/cpregs.h Log Message: ----------- target/arm/cpregs: Include missing 'target/arm/cpu.h' header CPReadFn type definitions use the CPUARMState type, itself declared in "cpu.h". Include this file in order to avoid when refactoring headers: ../target/arm/cpregs.h:241:27: error: unknown type name 'CPUARMState' typedef uint64_t CPReadFn(CPUARMState *env, const ARMCPRegInfo *opaque); ^ Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Message-id: 20250513173928.77376-5-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: c28900fbcdc36175a1fc81015e952133007ae864 https://github.com/qemu/qemu/commit/c28900fbcdc36175a1fc81015e952133007ae864 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M hw/arm/boot.c Log Message: ----------- hw/arm/boot: Include missing 'system/memory.h' header default_reset_secondary() uses address_space_stl_notdirty(), itself declared in "system/memory.h". Include this header in order to avoid when refactoring headers: ../hw/arm/boot.c:281:5: error: implicit declaration of function 'address_space_stl_notdirty' is invalid in C99 [-Werror,-Wimplicit-function-declaration] address_space_stl_notdirty(as, info->smp_bootreg_addr, ^ Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Message-id: 20250513173928.77376-6-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: fe5aa1cfe22c71c80e544cf97741036cba0556d7 https://github.com/qemu/qemu/commit/fe5aa1cfe22c71c80e544cf97741036cba0556d7 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M target/arm/cpu-features.h Log Message: ----------- target/arm/cpu-features: Include missing 'cpu.h' header "target/arm/cpu-features.h" dereferences the ARMISARegisters structure, which is defined in "cpu.h". Include the latter to avoid when refactoring unrelated headers: In file included from target/arm/internals.h:33: target/arm/cpu-features.h:45:54: error: unknown type name 'ARMISARegisters' 45 | static inline bool isar_feature_aa32_thumb_div(const ARMISARegisters *id) | ^ target/arm/cpu-features.h:47:12: error: use of undeclared identifier 'R_ID_ISAR0_DIVIDE_SHIFT' 47 | return FIELD_EX32(id->id_isar0, ID_ISAR0, DIVIDE) != 0; | ^ Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Message-id: 20250513173928.77376-7-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: e0f224ec077d90c10288a4f73d01a264b0364e46 https://github.com/qemu/qemu/commit/e0f224ec077d90c10288a4f73d01a264b0364e46 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M target/arm/arm-qmp-cmds.c Log Message: ----------- target/arm/qmp: Include missing 'cpu.h' header arm-qmp-cmds.c uses ARM_MAX_VQ, which is defined in "cpu.h". Include the latter to avoid when refactoring unrelated headers: target/arm/arm-qmp-cmds.c:83:19: error: use of undeclared identifier 'ARM_MAX_VQ' 83 | QEMU_BUILD_BUG_ON(ARM_MAX_VQ > 16); | ^ Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Message-id: 20250513173928.77376-8-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 3d28b2ce00e8b5e74e1f5cbba13cf306b8360762 https://github.com/qemu/qemu/commit/3d28b2ce00e8b5e74e1f5cbba13cf306b8360762 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M target/arm/kvm_arm.h Log Message: ----------- target/arm/kvm: Include missing 'cpu-qom.h' header ARMCPU typedef is declared in "cpu-qom.h". Include it in order to avoid when refactoring unrelated headers: target/arm/kvm_arm.h:54:29: error: unknown type name 'ARMCPU' 54 | bool write_list_to_kvmstate(ARMCPU *cpu, int level); | ^ Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Message-id: 20250513173928.77376-9-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: c42300ef71ba103a9bf67ca64cb94d5d9b633175 https://github.com/qemu/qemu/commit/c42300ef71ba103a9bf67ca64cb94d5d9b633175 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M target/arm/hvf_arm.h Log Message: ----------- target/arm/hvf: Include missing 'cpu-qom.h' header ARMCPU typedef is declared in "cpu-qom.h". Include it in order to avoid when refactoring unrelated headers: target/arm/hvf_arm.h:23:41: error: unknown type name 'ARMCPU' 23 | void hvf_arm_set_cpu_features_from_host(ARMCPU *cpu); | ^ Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> Message-id: 20250513173928.77376-10-phi...@linaro.org Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: 96778e69a2e391e5dc99d2318e7830695c607795 https://github.com/qemu/qemu/commit/96778e69a2e391e5dc99d2318e7830695c607795 Author: Thomas Huth <th...@redhat.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M MAINTAINERS M tests/functional/meson.build A tests/functional/test_arm_stellaris.py Log Message: ----------- tests/functional: Add a test for the Stellaris arm machines The 2023 edition of the QEMU advent calendar featured an image that we can use to test whether the lm3s6965evb machine is basically still working. And for the lm3s811evb there is a small test kernel on github which can be used to check its UART. Signed-off-by: Thomas Huth <th...@redhat.com> Message-id: 20250519170242.520805-1-th...@redhat.com Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Commit: e86c1f967a323165d13bcadfad4b92d0d34cdb08 https://github.com/qemu/qemu/commit/e86c1f967a323165d13bcadfad4b92d0d34cdb08 Author: Peter Maydell <peter.mayd...@linaro.org> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M hw/arm/Kconfig M hw/block/Kconfig M hw/block/meson.build R hw/block/nand.c M include/hw/block/flash.h Log Message: ----------- hw/block: Drop unused nand.c The nand.c device (TYPE_NAND) is an emulation of a NAND flash memory chip which was used by the old OMAP boards. No current QEMU board uses it, and although techically "-device nand,chip-id=0x6b" doesn't error out, it's not possible to usefully use it from the command line because the only interface it has is via calling C functions like nand_setpins() and nand_setio(). The "config OMAP" stanza (used only by the SX1 board) is the only thing that does "select NAND" to compile in this code, but the SX1 board doesn't actually use the NAND device. Remove the NAND device code entirely; this is effectively leftover cleanup from when we dropped the PXA boards and the OMAP boards other than the sx1. Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Message-id: 20250522142859.3122389-1-peter.mayd...@linaro.org Commit: e2e360db7a55afd62e77577a965f6aa224132cef https://github.com/qemu/qemu/commit/e2e360db7a55afd62e77577a965f6aa224132cef Author: Nir Soffer <nir...@gmail.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M include/io/channel-socket.h M io/channel-socket.c Log Message: ----------- io: Add helper for setting socket send buffer size Testing reading and writing from qemu-nbd using a unix domain socket shows that the platform default send buffer size is too low, leading to poor performance and hight cpu usage. Add a helper for setting socket send buffer size to be used in NBD code. It can also be used in other contexts. We don't need a helper for receive buffer size since it is not used with unix domain sockets. This is documented for Linux, and not documented for macOS. Failing to set the socket buffer size is not a fatal error, but the caller may want to warn about the failure. Signed-off-by: Nir Soffer <nir...@gmail.com> Message-ID: <20250517201154.88456-2-nir...@gmail.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Eric Blake <ebl...@redhat.com> Commit: e9f4550b74a8a9774979a51caa4b1aaff9e1d055 https://github.com/qemu/qemu/commit/e9f4550b74a8a9774979a51caa4b1aaff9e1d055 Author: Nir Soffer <nir...@gmail.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M nbd/client-connection.c M nbd/common.c M nbd/nbd-internal.h M nbd/server.c Log Message: ----------- nbd: Set unix socket send buffer on macOS On macOS we need to increase unix socket buffers size on the client and server to get good performance. We set socket buffers on macOS after connecting or accepting a client connection. Testing shows that setting socket receive buffer size (SO_RCVBUF) has no effect on performance, so we set only the send buffer size (SO_SNDBUF). It seems to work like Linux but not documented. Testing shows that optimal buffer size is 512k to 4 MiB, depending on the test case. The difference is very small, so I chose 2 MiB. I tested reading from qemu-nbd and writing to qemu-nbd with qemu-img and computing a blkhash with nbdcopy and blksum. To focus on NBD communication and get less noisy results, I tested reading and writing to null-co driver. I added a read-pattern option to the null-co driver to return data full of 0xff: NULL="json:{'driver': 'raw', 'file': {'driver': 'null-co', 'size': '10g', 'read-pattern': 255}}" For testing buffer size I added an environment variable for setting the socket buffer size. Read from qemu-nbd via qemu-img convert. In this test buffer size of 2m is optimal (12.6 times faster). qemu-nbd -r -t -e 0 -f raw -k /tmp/nbd.sock "$NULL" & qemu-img convert -f raw -O raw -W -n "nbd+unix:///?socket=/tmp/nbd.sock" "$NULL" | buffer size | time | user | system | |-------------|---------|---------|---------| | default | 13.361 | 2.653 | 5.702 | | 65536 | 2.283 | 0.204 | 1.318 | | 131072 | 1.673 | 0.062 | 1.008 | | 262144 | 1.592 | 0.053 | 0.952 | | 524288 | 1.496 | 0.049 | 0.887 | | 1048576 | 1.234 | 0.047 | 0.738 | | 2097152 | 1.060 | 0.080 | 0.602 | | 4194304 | 1.061 | 0.076 | 0.604 | Write to qemu-nbd with qemu-img convert. In this test buffer size of 2m is optimal (9.2 times faster). qemu-nbd -t -e 0 -f raw -k /tmp/nbd.sock "$NULL" & qemu-img convert -f raw -O raw -W -n "$NULL" "nbd+unix:///?socket=/tmp/nbd.sock" | buffer size | time | user | system | |-------------|---------|---------|---------| | default | 8.063 | 2.522 | 4.184 | | 65536 | 1.472 | 0.430 | 0.867 | | 131072 | 1.071 | 0.297 | 0.654 | | 262144 | 1.012 | 0.239 | 0.587 | | 524288 | 0.970 | 0.201 | 0.514 | | 1048576 | 0.895 | 0.184 | 0.454 | | 2097152 | 0.877 | 0.174 | 0.440 | | 4194304 | 0.944 | 0.231 | 0.535 | Compute a blkhash with nbdcopy, using 4 NBD connections and 256k request size. In this test buffer size of 4m is optimal (5.1 times faster). qemu-nbd -r -t -e 0 -f raw -k /tmp/nbd.sock "$NULL" & nbdcopy --blkhash "nbd+unix:///?socket=/tmp/nbd.sock" null: | buffer size | time | user | system | |-------------|---------|---------|---------| | default | 8.624 | 5.727 | 6.507 | | 65536 | 2.563 | 4.760 | 2.498 | | 131072 | 1.903 | 4.559 | 2.093 | | 262144 | 1.759 | 4.513 | 1.935 | | 524288 | 1.729 | 4.489 | 1.924 | | 1048576 | 1.696 | 4.479 | 1.884 | | 2097152 | 1.710 | 4.480 | 1.763 | | 4194304 | 1.687 | 4.479 | 1.712 | Compute a blkhash with blksum, using 1 NBD connection and 256k read size. In this test buffer size of 512k is optimal (10.3 times faster). qemu-nbd -r -t -e 0 -f raw -k /tmp/nbd.sock "$NULL" & blksum "nbd+unix:///?socket=/tmp/nbd.sock" | buffer size | time | user | system | |-------------|---------|---------|---------| | default | 13.085 | 5.664 | 6.461 | | 65536 | 3.299 | 5.106 | 2.515 | | 131072 | 2.396 | 4.989 | 2.069 | | 262144 | 1.607 | 4.724 | 1.555 | | 524288 | 1.271 | 4.528 | 1.224 | | 1048576 | 1.294 | 4.565 | 1.333 | | 2097152 | 1.299 | 4.569 | 1.344 | | 4194304 | 1.291 | 4.559 | 1.327 | Signed-off-by: Nir Soffer <nir...@gmail.com> Message-ID: <20250517201154.88456-3-nir...@gmail.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Eric Blake <ebl...@redhat.com> Commit: 479ec8106185d0e88d65539df5e940c781a82c53 https://github.com/qemu/qemu/commit/479ec8106185d0e88d65539df5e940c781a82c53 Author: Nir Soffer <nir...@gmail.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M nbd/common.c Log Message: ----------- nbd: Set unix socket send buffer on Linux Like macOS we have similar issue on Linux. For TCP socket the send buffer size is 2626560 bytes (~2.5 MiB) and we get good performance. However for unix socket the default and maximum buffer size is 212992 bytes (208 KiB) and we see poor performance when using one NBD connection, up to 4 times slower than macOS on the same machine. Tracing shows that for every 2 MiB payload (qemu uses 2 MiB io size), we do 1 recvmsg call with TCP socket, and 10 recvmsg calls with unix socket. Fixing this issue requires changing the maximum send buffer size (the receive buffer size is ignored). This can be done using: $ cat /etc/sysctl.d/net-mem-max.conf net.core.wmem_max = 2097152 $ sudo sysctl -p /etc/sysctl.d/net-mem-max.conf With this we can set the socket buffer size to 2 MiB. With the defaults the value requested by qemu is clipped to the maximum size and has no effect. I tested on 2 machines: - Fedora 42 VM on MacBook Pro M2 Max - Dell PowerEdge R640 (Intel(R) Xeon(R) Gold 6230 CPU @ 2.10GHz) On the older Dell machine we see very little improvement, up to 1.03 higher throughput. On the M2 machine we see up to 2.67 times higher throughput. The following results are from the M2 machine. Reading from qemu-nbd with qemu-img convert. In this test buffer size of 4m is optimal (2.28 times faster). | buffer size | time | user | system | |-------------|---------|---------|---------| | default | 4.292 | 0.243 | 1.604 | | 524288 | 2.167 | 0.058 | 1.288 | | 1048576 | 2.041 | 0.060 | 1.238 | | 2097152 | 1.884 | 0.060 | 1.191 | | 4194304 | 1.881 | 0.054 | 1.196 | Writing to qemu-nbd with qemu-img convert. In this test buffer size of 1m is optimal (2.67 times faster). | buffer size | time | user | system | |-------------|---------|---------|---------| | default | 3.113 | 0.334 | 1.094 | | 524288 | 1.173 | 0.179 | 0.654 | | 1048576 | 1.164 | 0.164 | 0.670 | | 2097152 | 1.227 | 0.197 | 0.663 | | 4194304 | 1.227 | 0.198 | 0.666 | Computing a blkhash with nbdcopy. In this test buffer size of 512k is optimal (1.19 times faster). | buffer size | time | user | system | |-------------|---------|---------|---------| | default | 2.140 | 4.483 | 2.681 | | 524288 | 1.794 | 4.467 | 2.572 | | 1048576 | 1.807 | 4.447 | 2.644 | | 2097152 | 1.822 | 4.461 | 2.698 | | 4194304 | 1.827 | 4.465 | 2.700 | Computing a blkhash with blksum. In this test buffer size of 4m is optimal (2.65 times faster). | buffer size | time | user | system | |-------------|---------|---------|---------| | default | 3.582 | 4.595 | 2.392 | | 524288 | 1.499 | 4.384 | 1.482 | | 1048576 | 1.377 | 4.381 | 1.345 | | 2097152 | 1.388 | 4.389 | 1.354 | | 4194304 | 1.352 | 4.395 | 1.302 | Signed-off-by: Nir Soffer <nir...@gmail.com> Message-ID: <20250517201154.88456-4-nir...@gmail.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Eric Blake <ebl...@redhat.com> Commit: d2b3e32bf7395c710ba44585520d837f6330fa70 https://github.com/qemu/qemu/commit/d2b3e32bf7395c710ba44585520d837f6330fa70 Author: Eric Blake <ebl...@redhat.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M tests/qemu-iotests/125 M tests/qemu-iotests/308 Log Message: ----------- iotests: Use disk_usage in more places Commit be9bac07 added a utility disk_usage function, but there are a couple of other tests that could also use it. Signed-off-by: Eric Blake <ebl...@redhat.com> Message-ID: <20250523163041.2548675-6-ebl...@redhat.com> Reviewed-by: Fiona Ebner <f.eb...@proxmox.com> Tested-by: Fiona Ebner <f.eb...@proxmox.com> Commit: ed1c336119c084159575ae9d4fd9171bd500f7e4 https://github.com/qemu/qemu/commit/ed1c336119c084159575ae9d4fd9171bd500f7e4 Author: Eric Blake <ebl...@redhat.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M tests/qemu-iotests/tests/mirror-sparse Log Message: ----------- iotests: Improve mirror-sparse on ext4 and xfs Fiona reported that an ext4 filesystem on top of LVM can sometimes report over-allocation to du (based on the heuristics the filesystem is making while observing the contents being mirrored); even though the contents and actual size matched, about 50% of the time the size reported by disk_usage was too large by 4k, failing the test. In auditing other iotests, this is a common problem we've had to deal with. Meanwhile, Markus reported that an xfs filesystem reports disk usage at a default granularity of 1M (so the sparse file occupies 3M, since it has just over 2M data). Reported-by: Fiona Ebner <f.eb...@proxmox.com> Reported-by: Markus Armbruster <arm...@redhat.com> Fixes: c0ddcb2c ("tests: Add iotest mirror-sparse for recent patches") Signed-off-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Fiona Ebner <f.eb...@proxmox.com> Tested-by: Fiona Ebner <f.eb...@proxmox.com> Message-ID: <20250523163041.2548675-7-ebl...@redhat.com> [eblake: Also fix xfs issue] Signed-off-by: Eric Blake <ebl...@redhat.com> Commit: c49dda7254d43d9e1d4da59c55f02055ba7c4c1b https://github.com/qemu/qemu/commit/c49dda7254d43d9e1d4da59c55f02055ba7c4c1b Author: Eric Blake <ebl...@redhat.com> Date: 2025-05-29 (Thu, 29 May 2025) Changed paths: M tests/qemu-iotests/106 M tests/qemu-iotests/175 M tests/qemu-iotests/221 M tests/qemu-iotests/253 M tests/qemu-iotests/308 M tests/qemu-iotests/common.rc M tests/qemu-iotests/tests/mirror-sparse M tests/qemu-iotests/tests/write-zeroes-unmap Log Message: ----------- iotests: Filter out ZFS in several tests Fiona reported that ZFS makes sparse file testing awkward, since: - it has asynchronous allocation (not even 'fsync $file' makes du see the desired size; it takes the slower 'fsync -f $file' which is not appropriate for the tests) - for tests of fully allocated files, ZFS with compression enabled still reports smaller disk usage Add a new _require_disk_usage that quickly probes whether an attempt to create a sparse 5M file shows as less than 1M usage, while the same file with -o preallocation=full shows as more than 4M usage without sync, which should filter out ZFS behavior. Then use it in various affected tests. This does not add the new filter on all tests that Fiona is seeing ZFS failures on, but only those where I could quickly spot that there is at least one place where the test depends on the output of 'du -b' or 'stat -c %b'. Reported-by: Fiona Ebner <f.eb...@proxmox.com> Signed-off-by: Eric Blake <ebl...@redhat.com> Message-ID: <20250523163041.2548675-8-ebl...@redhat.com> Reviewed-by: Fiona Ebner <f.eb...@proxmox.com> Tested-by: Fiona Ebner <f.eb...@proxmox.com> Commit: e1c9c801023d556d317256a414562634b1fe8b13 https://github.com/qemu/qemu/commit/e1c9c801023d556d317256a414562634b1fe8b13 Author: Thomas Huth <th...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M tests/functional/test_sparc64_tuxrun.py Log Message: ----------- tests/functional/test_sparc64_tuxrun: Explicitly set the 'sun4u' machine Use self.set_machine() to set the machine instead of relying on the default machine of the binary. This way the test can be skipped in case the machine has not been compiled into the QEMU binary. Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Tested-by: Alex Bennée <alex.ben...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Message-ID: <20250521145112.142222-1-th...@redhat.com> Commit: 644ded5c814055feb4d3a546628ccd28102f7acb https://github.com/qemu/qemu/commit/644ded5c814055feb4d3a546628ccd28102f7acb Author: Thomas Huth <th...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M tests/functional/test_mips_malta.py Log Message: ----------- tests/functional/test_mips_malta: Re-enable the check for the PCI host bridge The problem with the PCI bridge has been fixed in commit e5894fd6f411c1 ("hw/pci-host/gt64120: Fix endianness handling"), so we can enable the corresponding test again. Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Message-ID: <20250522080208.205489-1-th...@redhat.com> Commit: 9f7cf938efc6016f7ce323b064c2f3f46360c751 https://github.com/qemu/qemu/commit/9f7cf938efc6016f7ce323b064c2f3f46360c751 Author: Thomas Huth <th...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M tests/functional/test_mem_addr_space.py Log Message: ----------- tests/functional/test_mem_addr_space: Use set_machine() to select the machine By using self.set_machine() the tests get properly skipped in case the machine has not been compiled into the QEMU binary, e.g. when "configure" has been run with "--without-default-devices". Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Message-ID: <20250521143732.140711-1-th...@redhat.com> Commit: 141ec228deb7f94fb713c4d7ce0276e088e59f15 https://github.com/qemu/qemu/commit/141ec228deb7f94fb713c4d7ce0276e088e59f15 Author: Thomas Huth <th...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/microblaze/petalogix_s3adsp1800_mmu.c Log Message: ----------- hw/microblaze: Add endianness property to the petalogix_s3adsp1800 machine Since the microblaze target can now handle both endianness, big and little, we should provide a config knob for the user to select the desired endianness. Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Message-ID: <20250515132019.569365-2-th...@redhat.com> Commit: 6c5477558490cf76dc6d521fe906a2bfbc96ee27 https://github.com/qemu/qemu/commit/6c5477558490cf76dc6d521fe906a2bfbc96ee27 Author: Thomas Huth <th...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M tests/functional/test_microblaze_s3adsp1800.py M tests/functional/test_microblazeel_s3adsp1800.py Log Message: ----------- tests/functional: Test both microblaze s3adsp1800 endianness variants Now that the endianness of the petalogix-s3adsp1800 can be configured, we should test that the cross-endianness also works as expected, thus test the big endian variant on the little endian target and vice versa. (based on an original idea from Philippe Mathieu-Daudé) Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Message-ID: <20250515132019.569365-3-th...@redhat.com> Commit: 0e259fa5a13a3d0ff65aa4199b1e03832e51e1b2 https://github.com/qemu/qemu/commit/0e259fa5a13a3d0ff65aa4199b1e03832e51e1b2 Author: Thomas Huth <th...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M docs/about/deprecated.rst M docs/about/removed-features.rst M hw/microblaze/petalogix_ml605_mmu.c M hw/microblaze/xlnx-zynqmp-pmu.c Log Message: ----------- hw/microblaze: Remove the big-endian variants of ml605 and xlnx-zynqmp-pmu Both machines were added with little-endian in mind only (the "endianness" CPU property was hard-wired to "true", see commits 133d23b3ad1 and a88bbb006a52), so the variants that showed up on the big endian target likely never worked. We deprecated these non-working machine variants two releases ago, and so far nobody complained, so it should be fine now to disable them. Hard-wire the machines to little endian now. Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Message-ID: <20250515132019.569365-4-th...@redhat.com> Commit: 225e9e230efd5ae509b12fd191a8de6287f934ef https://github.com/qemu/qemu/commit/225e9e230efd5ae509b12fd191a8de6287f934ef Author: Thomas Huth <th...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M docs/about/deprecated.rst Log Message: ----------- docs: Deprecate the qemu-system-microblazeel binary The (former big-endian only) binary qemu-system-microblaze can handle both endiannesses nowadays, so we don't need the separate qemu-system-microblazeel binary for little endian anymore. Let's deprecate it to avoid unnecessary compilation and test time in the future. Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Message-ID: <20250515132019.569365-5-th...@redhat.com> Commit: 07a2adeebbe522b6e1c5706db2bdba0b05d0b2ae https://github.com/qemu/qemu/commit/07a2adeebbe522b6e1c5706db2bdba0b05d0b2ae Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/i386/pc_piix.c M hw/i386/pc_q35.c M tests/qtest/test-x86-cpuid-compat.c Log Message: ----------- hw/i386/pc: Remove deprecated pc-q35-2.4 and pc-i440fx-2.4 machines These machines has been supported for a period of more than 6 years. According to our versioned machine support policy (see commit ce80c4fa6ff "docs: document special exception for machine type deprecation & removal") they can now be removed. Remove the qtest in test-x86-cpuid-compat.c file. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-2-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 8b1c560937467d0d96c1d0948e99f86ce188c0bc https://github.com/qemu/qemu/commit/8b1c560937467d0d96c1d0948e99f86ce188c0bc Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/i386/pc.c M include/hw/i386/pc.h Log Message: ----------- hw/i386/pc: Remove PCMachineClass::broken_reserved_end field The PCMachineClass::broken_reserved_end field was only used by the pc-q35-2.4 and pc-i440fx-2.4 machines, which got removed. Remove it and simplify pc_memory_init(). Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-3-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 4c82e7b34b1bf35d97e026196f5bf10ea916512c https://github.com/qemu/qemu/commit/4c82e7b34b1bf35d97e026196f5bf10ea916512c Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/i386/pc.c M include/hw/i386/pc.h Log Message: ----------- hw/i386/pc: Remove pc_compat_2_4[] array The pc_compat_2_4[] array was only used by the pc-q35-2.4 and pc-i440fx-2.4 machines, which got removed. Remove it. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-4-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 60ce3f67bea0a782a58cf4f71840e8d20ef8ddfc https://github.com/qemu/qemu/commit/60ce3f67bea0a782a58cf4f71840e8d20ef8ddfc Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/core/machine.c M include/hw/boards.h Log Message: ----------- hw/core/machine: Remove hw_compat_2_4[] array The hw_compat_2_4[] array was only used by the pc-q35-2.4 and pc-i440fx-2.4 machines, which got removed. Remove it. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-6-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 0bf8727696267a79658998d844a96e35e0353602 https://github.com/qemu/qemu/commit/0bf8727696267a79658998d844a96e35e0353602 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/net/e1000.c Log Message: ----------- hw/net/e1000: Remove unused E1000_FLAG_MAC flag E1000_FLAG_MAC was only used by the hw_compat_2_4[] array, via the 'extra_mac_registers=off' property. We removed all machines using that array, lets remove all the code around E1000_FLAG_MAC, including the MAC_ACCESS_FLAG_NEEDED enum, similarly to commit fa4ec9ffda7 ("e1000: remove old compatibility code"). Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Message-ID: <20250512083948.39294-7-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: fce42ccb51f115156d41eb3c8bd04bddf4a0ca8b https://github.com/qemu/qemu/commit/fce42ccb51f115156d41eb3c8bd04bddf4a0ca8b Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/virtio/virtio-pci.c M include/hw/virtio/virtio-pci.h Log Message: ----------- hw/virtio/virtio-pci: Remove VIRTIO_PCI_FLAG_MIGRATE_EXTRA definition VIRTIO_PCI_FLAG_MIGRATE_EXTRA was only used by the hw_compat_2_4[] array, via the 'migrate-extra=true' property. We removed all machines using that array, lets remove all the code around VIRTIO_PCI_FLAG_MIGRATE_EXTRA. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Message-ID: <20250512083948.39294-8-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 47d9e81f0ab44b59e99f4e87fe5409851e670de6 https://github.com/qemu/qemu/commit/47d9e81f0ab44b59e99f4e87fe5409851e670de6 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/virtio/virtio-pci.c M include/hw/virtio/virtio-pci.h Log Message: ----------- hw/virtio/virtio-pci: Remove VIRTIO_PCI_FLAG_DISABLE_PCIE definition VIRTIO_PCI_FLAG_DISABLE_PCIE was only used by the hw_compat_2_4[] array, via the 'x-disable-pcie=false' property. We removed all machines using that array, lets remove all the code around VIRTIO_PCI_FLAG_DISABLE_PCIE (see commit 9a4c0e220d8 for similar VIRTIO_PCI_FLAG_* enum removal). Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-9-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: ff63280a81144500726f1899b0ae374e692e1f39 https://github.com/qemu/qemu/commit/ff63280a81144500726f1899b0ae374e692e1f39 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/i386/pc.c M hw/i386/pc_piix.c M hw/i386/pc_q35.c M include/hw/i386/pc.h Log Message: ----------- hw/i386/pc: Remove deprecated pc-q35-2.5 and pc-i440fx-2.5 machines These machines has been supported for a period of more than 6 years. According to our versioned machine support policy (see commit ce80c4fa6ff "docs: document special exception for machine type deprecation & removal") they can now be removed. Remove the now unused empty pc_compat_2_5[] array. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-10-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 42cbccfcb0635257721aa6a0e55cb80e85756ecf https://github.com/qemu/qemu/commit/42cbccfcb0635257721aa6a0e55cb80e85756ecf Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/i386/x86.c M include/hw/i386/x86.h M target/i386/machine.c Log Message: ----------- hw/i386/x86: Remove X86MachineClass::save_tsc_khz field The X86MachineClass::save_tsc_khz boolean was only used by the pc-q35-2.5 and pc-i440fx-2.5 machines, which got removed. Remove it and simplify tsc_khz_needed(). Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-11-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 6160ce208419e6e218db644433528aaa5d4f5024 https://github.com/qemu/qemu/commit/6160ce208419e6e218db644433528aaa5d4f5024 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/core/loader.c M hw/i386/pc.c M hw/nvram/fw_cfg.c M include/hw/boards.h M include/hw/loader.h M include/hw/nvram/fw_cfg.h M system/vl.c Log Message: ----------- hw/nvram/fw_cfg: Remove legacy FW_CFG_ORDER_OVERRIDE The MachineClass::legacy_fw_cfg_order boolean was only used by the pc-q35-2.5 and pc-i440fx-2.5 machines, which got removed. Remove it along with: - FW_CFG_ORDER_OVERRIDE_* definitions - fw_cfg_set_order_override() - fw_cfg_reset_order_override() - fw_cfg_order[] - rom_set_order_override() - rom_reset_order_override() Simplify CLI and pc_vga_init() / pc_nic_init(). Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-12-phi...@linaro.org> [thuth: Fix error from check_patch.pl wrt to an empty "for" loop] Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 667e170d2cf033033dfd6656f871c41871107ee0 https://github.com/qemu/qemu/commit/667e170d2cf033033dfd6656f871c41871107ee0 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/core/machine.c M include/hw/boards.h Log Message: ----------- hw/core/machine: Remove hw_compat_2_5[] array The hw_compat_2_5[] array was only used by the pc-q35-2.5 and pc-i440fx-2.5 machines, which got removed. Remove it. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-13-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 16c04166ae71c78ec36a9e2914c46c2289a58503 https://github.com/qemu/qemu/commit/16c04166ae71c78ec36a9e2914c46c2289a58503 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/scsi/vmw_pvscsi.c Log Message: ----------- hw/scsi/vmw_pvscsi: Remove PVSCSI_COMPAT_OLD_PCI_CONFIGURATION definition PVSCSI_COMPAT_OLD_PCI_CONFIGURATION was only used by the hw_compat_2_5[] array, via the 'x-old-pci-configuration=on' property. We removed all machines using that array, lets remove all the code around PVSCSI_COMPAT_OLD_PCI_CONFIGURATION. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-15-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 404b27b739aa6f2c53fbed58101719564f614aac https://github.com/qemu/qemu/commit/404b27b739aa6f2c53fbed58101719564f614aac Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/scsi/vmw_pvscsi.c Log Message: ----------- hw/scsi/vmw_pvscsi: Remove PVSCSI_COMPAT_DISABLE_PCIE_BIT definition PVSCSI_COMPAT_DISABLE_PCIE_BIT was only used by the hw_compat_2_5[] array, via the 'x-disable-pcie=on' property. We removed all machines using that array, lets remove all the code around PVSCSI_COMPAT_DISABLE_PCIE_BIT, including the now unused PVSCSIState::compat_flags field. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Thomas Huth <th...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-16-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 3763d16370f1505faada6909bd92ebe3a242b1bd https://github.com/qemu/qemu/commit/3763d16370f1505faada6909bd92ebe3a242b1bd Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/scsi/vmw_pvscsi.c Log Message: ----------- hw/scsi/vmw_pvscsi: Convert DeviceRealize -> InstanceInit Simplify replacing pvscsi_realize() by pvscsi_instance_init(), removing the need for device_class_set_parent_realize(). Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-17-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 2531dfde0ac447b0d70a83c8a02f72e584b9c534 https://github.com/qemu/qemu/commit/2531dfde0ac447b0d70a83c8a02f72e584b9c534 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/net/vmxnet3.c Log Message: ----------- hw/net/vmxnet3: Remove VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS definition VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS was only used by the hw_compat_2_5[] array, via the 'x-old-msi-offsets=on' property. We removed all machines using that array, lets remove all the code around VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-18-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 2db72323f2370ca69ba331f17c9a6bbd1f3bb118 https://github.com/qemu/qemu/commit/2db72323f2370ca69ba331f17c9a6bbd1f3bb118 Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/net/vmxnet3.c Log Message: ----------- hw/net/vmxnet3: Remove VMXNET3_COMPAT_FLAG_DISABLE_PCIE definition VMXNET3_COMPAT_FLAG_DISABLE_PCIE was only used by the hw_compat_2_5[] array, via the 'x-disable-pcie=on' property. We removed all machines using that array, lets remove all the code around VMXNET3_COMPAT_FLAG_DISABLE_PCIE. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-19-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: c4eb3f10a3573392c297f2124a81af9041300ddd https://github.com/qemu/qemu/commit/c4eb3f10a3573392c297f2124a81af9041300ddd Author: Philippe Mathieu-Daudé <phi...@linaro.org> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M hw/net/vmxnet3.c Log Message: ----------- hw/net/vmxnet3: Merge DeviceRealize in InstanceInit Simplify merging vmxnet3_realize() within vmxnet3_instance_init(), removing the need for device_class_set_parent_realize(). Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Zhao Liu <zhao1....@intel.com> Reviewed-by: Xiaoyao Li <xiaoyao...@intel.com> Message-ID: <20250512083948.39294-20-phi...@linaro.org> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 5c54a367265ec19ed94a535cd15d178c16b8cae0 https://github.com/qemu/qemu/commit/5c54a367265ec19ed94a535cd15d178c16b8cae0 Author: Matheus Tavares Bernardino <matheus.bernard...@oss.qualcomm.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M tests/unit/test-util-sockets.c Log Message: ----------- tests/unit/test-util-sockets: fix mem-leak on error object The test fails with --enable-asan as the error struct is never freed. In the case where the test expects a success but it fails, let's also report the error for debugging (it will be freed internally). Fixes 316e8ee8d6 ("util/qemu-sockets: Refactor inet_parse() to use QemuOpts") Signed-off-by: Matheus Tavares Bernardino <matheus.bernard...@oss.qualcomm.com> Reviewed-by: Juraj Marcin <jmar...@redhat.com> Message-ID: <518d94c7db20060b2a086cf55ee9bffab992a907.1748280011.git.matheus.bernard...@oss.qualcomm.com> Signed-off-by: Thomas Huth <th...@redhat.com> Commit: 72c58ff8958f6e00ce361d1d568dc21e41c85f45 https://github.com/qemu/qemu/commit/72c58ff8958f6e00ce361d1d568dc21e41c85f45 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M include/io/channel-socket.h M io/channel-socket.c M nbd/client-connection.c M nbd/common.c M nbd/nbd-internal.h M nbd/server.c M tests/qemu-iotests/106 M tests/qemu-iotests/125 M tests/qemu-iotests/175 M tests/qemu-iotests/221 M tests/qemu-iotests/253 M tests/qemu-iotests/308 M tests/qemu-iotests/common.rc M tests/qemu-iotests/tests/mirror-sparse M tests/qemu-iotests/tests/write-zeroes-unmap Log Message: ----------- Merge tag 'pull-nbd-2025-05-29' of https://repo.or.cz/qemu/ericb into staging NBD patches for 2025-05-29 - Nir Soffer: Allow for larger Unix socket buffers in NBD - Eric Blake: clean up mirror-sparse iotest issues # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCAAdFiEEccLMIrHEYCkn0vOqp6FrSiUnQ2oFAmg42T0ACgkQp6FrSiUn # Q2r5nwgAg4ftfPBnynqL54dQ6rPKPOwW3n4Ei26EsC86OcFIGEGuCK6UGBH4bH6d # BgyjNWY/6/t90vnXcBGVFmxrugHGh3TwOpAY08TqW0LGmpJiwX5wZTk3cVbcwXat # ME8oYeOQwLwqboFthlgnXsUuQrKtXrkY27154ztH354x4bi5AmHi//Or4+EdFf8L # /cCmS7uHPiHV9l1+U1hV4i1UQ+3rWHIOcfn/sKeEwPfrlyEW+2fxWUjl7qyf/Mqz # EwCtkjz4WsFTxYyQPN6r3NyoEIZDRK27srubVhat6Fk9gOnR5Rh2MCntyxUpXmo5 # 4xD3QkVbXVRhXv6n6rjmA/Q3bvZ1oQ== # =yjPj # -----END PGP SIGNATURE----- # gpg: Signature made Thu 29 May 2025 18:01:33 EDT # gpg: using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A # gpg: Good signature from "Eric Blake <ebl...@redhat.com>" [full] # gpg: aka "Eric Blake (Free Software Programmer) <e...@byu.net>" [full] # gpg: aka "[jpeg image of size 6874]" [full] # Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2 F3AA A7A1 6B4A 2527 436A * tag 'pull-nbd-2025-05-29' of https://repo.or.cz/qemu/ericb: iotests: Filter out ZFS in several tests iotests: Improve mirror-sparse on ext4 and xfs iotests: Use disk_usage in more places nbd: Set unix socket send buffer on Linux nbd: Set unix socket send buffer on macOS io: Add helper for setting socket send buffer size Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 98721058d6d50ef218e0c26e4f67c8ef96965859 https://github.com/qemu/qemu/commit/98721058d6d50ef218e0c26e4f67c8ef96965859 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M accel/kvm/kvm-all.c M accel/tcg/meson.build M configs/devices/i386-softmmu/default.mak M docs/system/confidential-guest-support.rst A docs/system/i386/tdx.rst M docs/system/target-i386.rst M gdbstub/meson.build M hw/arm/meson.build M hw/core/meson.build M hw/i386/Kconfig M hw/i386/kvm/apic.c M hw/i386/meson.build M hw/i386/pc.c M hw/i386/pc_sysfw.c A hw/i386/tdvf-hob.c A hw/i386/tdvf-hob.h A hw/i386/tdvf.c M hw/i386/x86-common.c M hw/net/rocker/rocker.h M hw/net/rocker/rocker_hw.h M hw/net/rocker/rocker_of_dpa.c M hw/timer/hpet.c A include/hw/i386/tdvf.h A include/standard-headers/uefi/uefi.h M include/system/kvm.h M meson.build M plugins/meson.build M qapi/qom.json M qapi/run-state.json M rust/hw/char/pl011/meson.build M rust/hw/char/pl011/src/device.rs A rust/hw/timer/hpet/src/device.rs M rust/hw/timer/hpet/src/fw_cfg.rs R rust/hw/timer/hpet/src/hpet.rs M rust/hw/timer/hpet/src/lib.rs M rust/meson.build M rust/qemu-api-macros/meson.build M rust/qemu-api/meson.build M rust/qemu-api/src/bitops.rs M rust/qemu-api/src/qom.rs M rust/qemu-api/src/timer.rs M rust/qemu-api/src/vmstate.rs M rust/qemu-api/tests/vmstate_tests.rs M system/meson.build M system/runstate.c M target/arm/kvm.c M target/arm/meson.build M target/i386/confidential-guest.h M target/i386/cpu.c M target/i386/cpu.h M target/i386/emulate/x86_flags.c M target/i386/host-cpu.c M target/i386/host-cpu.h M target/i386/kvm/kvm.c M target/i386/kvm/kvm_i386.h M target/i386/kvm/meson.build A target/i386/kvm/tdx-stub.c A target/i386/kvm/tdx.c A target/i386/kvm/tdx.h M target/i386/sev.c M target/i386/tcg/helper-tcg.h M target/loongarch/kvm/kvm.c M target/mips/kvm.c M target/ppc/kvm.c M target/riscv/kvm/kvm-cpu.c M target/s390x/kvm/kvm.c M tcg/meson.build Log Message: ----------- Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging * target/i386/kvm: Intel TDX support * target/i386/emulate: more lflags cleanups * meson: remove need for explicit listing of dependencies in hw_common_arch and target_common_arch * rust: small fixes * hpet: Reorganize register decoding to be more similar to Rust code * target/i386: fixes for AMD models * target/i386: new EPYC-Turin CPU model # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmg4BxwUHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroP67gf+PEP4EDQP0AJUfxXYVsczGf5snGjz # ro8jYmKG+huBZcrS6uPK5zHYxtOI9bHr4ipTHJyHd61lyzN6Ys9amPbs/CRE2Q4x # Ky4AojPhCuaL2wHcYNcu41L+hweVQ3myj97vP3hWvkatulXYeMqW3/4JZgr4WZ69 # A9LGLtLabobTz5yLc8x6oHLn/BZ2y7gjd2LzTz8bqxx7C/kamjoDrF2ZHbX9DLQW # BKWQ3edSO6rorSNHWGZsy9BE20AEkW2LgJdlV9eXglFEuEs6cdPKwGEZepade4bQ # Rdt2gHTlQdUDTFmAbz8pttPxFGMC9Zpmb3nnicKJpKQAmkT/x4k9ncjyAQ== # =XmkU # -----END PGP SIGNATURE----- # gpg: Signature made Thu 29 May 2025 03:05:00 EDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonz...@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonz...@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonz...@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: (77 commits) target/i386/tcg/helper-tcg: fix file references in comments target/i386: Add support for EPYC-Turin model target/i386: Update EPYC-Genoa for Cache property, perfmon-v2, RAS and SVM feature bits target/i386: Add couple of feature bits in CPUID_Fn80000021_EAX target/i386: Update EPYC-Milan CPU model for Cache property, RAS, SVM feature bits target/i386: Update EPYC-Rome CPU model for Cache property, RAS, SVM feature bits target/i386: Update EPYC CPU model for Cache property, RAS, SVM feature bits rust: make declaration of dependent crates more consistent docs: Add TDX documentation i386/tdx: Validate phys_bits against host value i386/tdx: Make invtsc default on i386/tdx: Don't treat SYSCALL as unavailable i386/tdx: Fetch and validate CPUID of TD guest target/i386: Print CPUID subleaf info for unsupported feature i386: Remove unused parameter "uint32_t bit" in feature_word_description() i386/cgs: Introduce x86_confidential_guest_check_features() i386/tdx: Define supported KVM features for TDX i386/tdx: Add XFD to supported bit of TDX i386/tdx: Add supported CPUID bits relates to XFAM i386/tdx: Add supported CPUID bits related to TD Attributes ... Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 107215089da92427c4c1644d84f5437b7b6e5e9c https://github.com/qemu/qemu/commit/107215089da92427c4c1644d84f5437b7b6e5e9c Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M docs/about/deprecated.rst M docs/about/removed-features.rst M hw/core/loader.c M hw/core/machine.c M hw/i386/pc.c M hw/i386/pc_piix.c M hw/i386/pc_q35.c M hw/i386/x86.c M hw/microblaze/petalogix_ml605_mmu.c M hw/microblaze/petalogix_s3adsp1800_mmu.c M hw/microblaze/xlnx-zynqmp-pmu.c M hw/net/e1000.c M hw/net/vmxnet3.c M hw/nvram/fw_cfg.c M hw/scsi/vmw_pvscsi.c M hw/virtio/virtio-pci.c M include/hw/boards.h M include/hw/i386/pc.h M include/hw/i386/x86.h M include/hw/loader.h M include/hw/nvram/fw_cfg.h M include/hw/virtio/virtio-pci.h M system/vl.c M target/i386/machine.c M tests/functional/test_mem_addr_space.py M tests/functional/test_microblaze_s3adsp1800.py M tests/functional/test_microblazeel_s3adsp1800.py M tests/functional/test_mips_malta.py M tests/functional/test_sparc64_tuxrun.py M tests/qtest/test-x86-cpuid-compat.c M tests/unit/test-util-sockets.c Log Message: ----------- Merge tag 'pull-request-2025-05-30' of https://gitlab.com/thuth/qemu into staging * Functional tests improvements * Endianness improvements/clean-ups for the Microblaze machines * Remove obsolete -2.4 and -2.5 i440fx and q35 machine types and related code # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmg5mlARHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbX1eRAAjvTK4noIfzc9QQI7EyUafgdp65m44wwx # vfjlLbhmEnWFF11Qhovc6o36N4zF4Pt30mbXZs0gQaDR5H9RT8wrg9kShirhZX3O # 4raPHCJFBviUCktSg90eFtvuQnfVK9cBMB8PMRQix+V5wRXcCx+cc6ebnQZ+UHp4 # L2d+qKRoHCPRO/dvQth4Be7a5pXqFQeu4gq7i/w9PCa7O+akSM3lc8dsJPuCiXgQ # R7dkwsrRQzmiEC6aDmauNpsRRs0yptQs+9b83V4moLX07hk/R/I59EDFQqALLim7 # jmSbLnulKSSCeatV54PE/K4QxT62iA2OuJ6wo/vzVBGpzLdKE4aq99OcNPDxwWi0 # wc6xVDNtMyr81Ex4pZ0WgVKt57tDBIp9RijB5wTAhRPqKgnHtRGVNqX9TrsFls5L # jIyKgfTxFKf9RA/a53p3uUXNmpLDVG63AhA9jWrAUtGOGJ0V+cDD2hTygXai8XTS # 66aiEdMiuPFV2fApaEftcySFrMoT7RG1JHlcMjsTOpRdZF/x+rehFQKOHcdBeJ6r # /zJ18MXbd5vEcglBz8joPwHu3mt2NLew+IvLPoAlwMfrniiNnUC+IY2Jzz3jYpBI # WbbaesVG7J8SzJ6SwNOVuiCbiAImOkrxEz/8Jm783sZvWSzLYmwI9bBp9KXVxGty # ed14fLi8g5U= # =8SJJ # -----END PGP SIGNATURE----- # gpg: Signature made Fri 30 May 2025 07:45:20 EDT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "th...@redhat.com" # gpg: Good signature from "Thomas Huth <th.h...@gmx.de>" [full] # gpg: aka "Thomas Huth <th...@redhat.com>" [full] # gpg: aka "Thomas Huth <h...@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.h...@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2025-05-30' of https://gitlab.com/thuth/qemu: (25 commits) tests/unit/test-util-sockets: fix mem-leak on error object hw/net/vmxnet3: Merge DeviceRealize in InstanceInit hw/net/vmxnet3: Remove VMXNET3_COMPAT_FLAG_DISABLE_PCIE definition hw/net/vmxnet3: Remove VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS definition hw/scsi/vmw_pvscsi: Convert DeviceRealize -> InstanceInit hw/scsi/vmw_pvscsi: Remove PVSCSI_COMPAT_DISABLE_PCIE_BIT definition hw/scsi/vmw_pvscsi: Remove PVSCSI_COMPAT_OLD_PCI_CONFIGURATION definition hw/core/machine: Remove hw_compat_2_5[] array hw/nvram/fw_cfg: Remove legacy FW_CFG_ORDER_OVERRIDE hw/i386/x86: Remove X86MachineClass::save_tsc_khz field hw/i386/pc: Remove deprecated pc-q35-2.5 and pc-i440fx-2.5 machines hw/virtio/virtio-pci: Remove VIRTIO_PCI_FLAG_DISABLE_PCIE definition hw/virtio/virtio-pci: Remove VIRTIO_PCI_FLAG_MIGRATE_EXTRA definition hw/net/e1000: Remove unused E1000_FLAG_MAC flag hw/core/machine: Remove hw_compat_2_4[] array hw/i386/pc: Remove pc_compat_2_4[] array hw/i386/pc: Remove PCMachineClass::broken_reserved_end field hw/i386/pc: Remove deprecated pc-q35-2.4 and pc-i440fx-2.4 machines docs: Deprecate the qemu-system-microblazeel binary hw/microblaze: Remove the big-endian variants of ml605 and xlnx-zynqmp-pmu ... Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Commit: 3e82ddaa8db260a232dbbbf488d8ac7851d124c5 https://github.com/qemu/qemu/commit/3e82ddaa8db260a232dbbbf488d8ac7851d124c5 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2025-05-30 (Fri, 30 May 2025) Changed paths: M MAINTAINERS M docs/interop/bitmaps.rst M docs/interop/index.rst A docs/interop/qcow2.rst R docs/interop/qcow2.txt M docs/qcow2-cache.txt M hw/arm/Kconfig M hw/arm/boot.c M hw/arm/npcm8xx.c M hw/block/Kconfig M hw/block/meson.build R hw/block/nand.c M include/hw/arm/npcm8xx.h M include/hw/block/flash.h M target/arm/arm-qmp-cmds.c M target/arm/cpregs.h M target/arm/cpu-features.h A target/arm/hvf-stub.c M target/arm/hvf_arm.h M target/arm/kvm_arm.h M target/arm/meson.build M target/arm/tcg/meson.build M tests/functional/meson.build A tests/functional/test_arm_stellaris.py M tests/qtest/meson.build M tests/qtest/npcm_gmac-test.c Log Message: ----------- Merge tag 'pull-target-arm-20250530-2' of https://git.linaro.org/people/pmaydell/qemu-arm into staging target-arm queue: * hw/arm: Add GMAC devices to NPCM8XX SoC * hw/arm: Add missing psci_conduit to NPCM8XX SoC boot info * docs/interop: convert text files to restructuredText * target/arm: Some minor refactorings * tests/functional: Add a test for the Stellaris arm machines * hw/block: Drop unused nand.c # -----BEGIN PGP SIGNATURE----- # # iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmg5qPYZHHBldGVyLm1h # eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3tXUD/9tKWMUEYl23gd9IB5Ee3xK # dcgG4Fzv0Ae8HLTd1agyhrg5S2LiXmFi37IO65d8Wxf7Y2TBU+kj1m3aB/C3w9Bx # VdHGfNsHAMuYdYCOEm9OvmuSMYSxDRd43pNWdBxbc9/MgLM24rImJ05YHoZFVGrY # S5olcZOl3/ttFHtigO4AYAbxkHMAJ5gDyNJiuk88IPx9WGYdmmM4mzJ/m17/Re01 # hdOUi0DKQO7kl+646knSU0dicu8NeO5rBAyJzu3vFBnvYXznjd9XaxF+A0Opl54P # aBUZz27nDLvnGQrN8B5CjevjUysko+KL/L4NRqebeQKhSe4C8tKFIDocRTGyOEoR # SAI0UpZbcX/mXt52aksSwMNG8oRvHOqpJRnNaaCZQoMjK7SlFwi6WctDpwiGt/Hu # WaVlXaC77YRiKf1RAgH2CxV04ts342v+bndjfi4vy8D4zbTvwgqKxg+qk3N+JBMR # ZUI5Gz3OcGXbw5awJAYbJmyo6qxBysmdHpPY8I1eW0ohzRx1rZ3Vka4yIje5mgO+ # 5yFpSy4GDRqNYKgGwlXRaseB38qKL4bEz0+uGzXYqdG7ACBz0xhT5H10npXkX/au # LumtwW1sohsv3Xf9oBHQ1WQel7LDcWGVEZHZn6q67mazjvivLjREvA74dq1e8bqD # zovTStIpBYRChXTRK1ShUQ== # =Xts4 # -----END PGP SIGNATURE----- # gpg: Signature made Fri 30 May 2025 08:47:50 EDT # gpg: using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE # gpg: issuer "peter.mayd...@linaro.org" # gpg: Good signature from "Peter Maydell <peter.mayd...@linaro.org>" [full] # gpg: aka "Peter Maydell <pmayd...@gmail.com>" [full] # gpg: aka "Peter Maydell <pmayd...@chiark.greenend.org.uk>" [full] # gpg: aka "Peter Maydell <pe...@archaic.org.uk>" [unknown] # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE * tag 'pull-target-arm-20250530-2' of https://git.linaro.org/people/pmaydell/qemu-arm: hw/block: Drop unused nand.c tests/functional: Add a test for the Stellaris arm machines target/arm/hvf: Include missing 'cpu-qom.h' header target/arm/kvm: Include missing 'cpu-qom.h' header target/arm/qmp: Include missing 'cpu.h' header target/arm/cpu-features: Include missing 'cpu.h' header hw/arm/boot: Include missing 'system/memory.h' header target/arm/cpregs: Include missing 'target/arm/cpu.h' header target/arm: Only link with zlib when TCG is enabled target/arm/hvf_arm: Avoid using poisoned CONFIG_HVF definition target/arm/tcg-stubs: compile file once (system) docs/interop: convert text files to restructuredText hw/arm: Add missing psci_conduit to NPCM8XX SoC boot info tests/qtest: Migrate GMAC test from 7xx to 8xx hw/arm: Add GMAC devices to NPCM8XX SoC Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Compare: https://github.com/qemu/qemu/compare/12c16cb58d6c...3e82ddaa8db2 To unsubscribe from these emails, change your notification settings at https://github.com/qemu/qemu/settings/notifications