Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 4fb54de823e9d5b88b7f708516a2a9bf997d15c2
https://github.com/qemu/qemu/commit/4fb54de823e9d5b88b7f708516a2a9bf997d15c2
Author: Pierrick Bouvier <[email protected]>
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/[email protected]/
Tested-by: Thomas Huth <[email protected]>
Fixes: 6f4e8a92bbd ("hw/arm: make most of the compilation units common")
Signed-off-by: Pierrick Bouvier <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Link:
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 0ca26a51791f2601238129c6c2724cc4c604392c
https://github.com/qemu/qemu/commit/0ca26a51791f2601238129c6c2724cc4c604392c
Author: Pierrick Bouvier <[email protected]>
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 <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Link:
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 598a0ba8e6df8c113c77e69ee18c3872fda7b6e9
https://github.com/qemu/qemu/commit/598a0ba8e6df8c113c77e69ee18c3872fda7b6e9
Author: Pierrick Bouvier <[email protected]>
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 <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Link:
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: b17b51d325130bc9d0f1189461a9a681fbd554e5
https://github.com/qemu/qemu/commit/b17b51d325130bc9d0f1189461a9a681fbd554e5
Author: Pierrick Bouvier <[email protected]>
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 <[email protected]>
Signed-off-by: Pierrick Bouvier <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Link:
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 7ca433244c6dde497bb36184f70b442b399fda3e
https://github.com/qemu/qemu/commit/7ca433244c6dde497bb36184f70b442b399fda3e
Author: Pierrick Bouvier <[email protected]>
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 <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Link:
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: d33717d7fca6a599aa991f771e3ea34b15978cee
https://github.com/qemu/qemu/commit/d33717d7fca6a599aa991f771e3ea34b15978cee
Author: Pierrick Bouvier <[email protected]>
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 <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Link:
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: ddc25eb40444f4bbcfea276d22beee6494c3f18e
https://github.com/qemu/qemu/commit/ddc25eb40444f4bbcfea276d22beee6494c3f18e
Author: Pierrick Bouvier <[email protected]>
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 <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Link:
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: d74169e09e1d424aaca138966f460520a0d4dd0d
https://github.com/qemu/qemu/commit/d74169e09e1d424aaca138966f460520a0d4dd0d
Author: Zhao Liu <[email protected]>
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 86c54a3a418e462e67444ac4db25b2757fd62079
https://github.com/qemu/qemu/commit/86c54a3a418e462e67444ac4db25b2757fd62079
Author: Zhao Liu <[email protected]>
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 [email protected].
Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: aef5ac8624c7b826ae2adde48bc6997286ee1303
https://github.com/qemu/qemu/commit/aef5ac8624c7b826ae2adde48bc6997286ee1303
Author: Zhao Liu <[email protected]>
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 734a1e9eeed2c791c8906d0ee08ad5c9b1f41fa0
https://github.com/qemu/qemu/commit/734a1e9eeed2c791c8906d0ee08ad5c9b1f41fa0
Author: Paolo Bonzini <[email protected]>
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 <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 341ed3eae4179273788d2f74579862a10e18cf81
https://github.com/qemu/qemu/commit/341ed3eae4179273788d2f74579862a10e18cf81
Author: Paolo Bonzini <[email protected]>
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 <[email protected]>
Commit: 5150004ccf5fe72c35b3263fbed6f4d06ed3cc6a
https://github.com/qemu/qemu/commit/5150004ccf5fe72c35b3263fbed6f4d06ed3cc6a
Author: Paolo Bonzini <[email protected]>
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 <[email protected]>
Commit: 756e12e791771034ac105a5d2c9887bbbb6b7c73
https://github.com/qemu/qemu/commit/756e12e791771034ac105a5d2c9887bbbb6b7c73
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Acked-by: Markus Armbruster <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: b455880e5515a9fc2b923bfc6c60bb54519b51d3
https://github.com/qemu/qemu/commit/b455880e5515a9fc2b923bfc6c60bb54519b51d3
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 631a2ac5a4beab740b342367550562cd659b4c4a
https://github.com/qemu/qemu/commit/631a2ac5a4beab740b342367550562cd659b4c4a
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 8eddedc3701d2190db976a05155a8263c8ec175b
https://github.com/qemu/qemu/commit/8eddedc3701d2190db976a05155a8263c8ec175b
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 1619d0e45be0d1e48a46d80963b4e77dc1b000a2
https://github.com/qemu/qemu/commit/1619d0e45be0d1e48a46d80963b4e77dc1b000a2
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Isaku Yamahata <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: a668268dc08f7f4d30cecd513054bb38ce48c0d6
https://github.com/qemu/qemu/commit/a668268dc08f7f4d30cecd513054bb38ce48c0d6
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: f15898b0f50609d66465326221aa54b6699da674
https://github.com/qemu/qemu/commit/f15898b0f50609d66465326221aa54b6699da674
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Acked-by: Markus Armbruster <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 6016e2972d94c90307b6caf55a8e3aee5424c09b
https://github.com/qemu/qemu/commit/6016e2972d94c90307b6caf55a8e3aee5424c09b
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Acked-by: Markus Armbruster <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 714af52276e74a1829674d180ef26ecb6261834c
https://github.com/qemu/qemu/commit/714af52276e74a1829674d180ef26ecb6261834c
Author: Isaku Yamahata <[email protected]>
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 <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: bb3be394cf80d68251e5b89e823dddc679b6e644
https://github.com/qemu/qemu/commit/bb3be394cf80d68251e5b89e823dddc679b6e644
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 53b6f406b4f1a215fb3ec60e56ddba2e019a45ef
https://github.com/qemu/qemu/commit/53b6f406b4f1a215fb3ec60e56ddba2e019a45ef
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: d05a0858cf876f79b57a622716fbad07f5b2ea08
https://github.com/qemu/qemu/commit/d05a0858cf876f79b57a622716fbad07f5b2ea08
Author: Isaku Yamahata <[email protected]>
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/[email protected]/
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 <[email protected]>
Co-developed-by: Xiaoyao Li <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Acked-by: Markus Armbruster <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: d529a2ac5ef4620173439942f78ec668f9165fc1
https://github.com/qemu/qemu/commit/d529a2ac5ef4620173439942f78ec668f9165fc1
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 0e73b843616e52882940ab89e1b0e86e22be2162
https://github.com/qemu/qemu/commit/0e73b843616e52882940ab89e1b0e86e22be2162
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 0dd5fe5ebeabefc7b3d7f043991b1edfe6b8eda9
https://github.com/qemu/qemu/commit/0dd5fe5ebeabefc7b3d7f043991b1edfe6b8eda9
Author: Chao Peng <[email protected]>
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 <[email protected]>
Co-developed-by: Xiaoyao Li <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: b65a6011d16c4f7cb2eb227ab1bc735850475288
https://github.com/qemu/qemu/commit/b65a6011d16c4f7cb2eb227ab1bc735850475288
Author: Isaku Yamahata <[email protected]>
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 <[email protected]>
Co-developed-by: Xiaoyao Li <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: cb5d65a854e58abeb705a2ce14cc3eb28973c606
https://github.com/qemu/qemu/commit/cb5d65a854e58abeb705a2ce14cc3eb28973c606
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 49b1f0f812372129736c1df0421c8f67d86d362b
https://github.com/qemu/qemu/commit/49b1f0f812372129736c1df0421c8f67d86d362b
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 4420ba0ebbf014acc68f78669e0767e288313ed6
https://github.com/qemu/qemu/commit/4420ba0ebbf014acc68f78669e0767e288313ed6
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: f18672e4cf91feed4b91ef85a264a500935a2865
https://github.com/qemu/qemu/commit/f18672e4cf91feed4b91ef85a264a500935a2865
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 88aa6576e4ab40b538f543852128cb17fce37f87
https://github.com/qemu/qemu/commit/88aa6576e4ab40b538f543852128cb17fce37f87
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: a731425980a4d3f8bb96fc41893b6437672875ee
https://github.com/qemu/qemu/commit/a731425980a4d3f8bb96fc41893b6437672875ee
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Signed-off-by: Isaku Yamahata <[email protected]>
Co-developed-by: Sean Christopherson <[email protected]>
Signed-off-by: Sean Christopherson <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: ebc2d2b497c59414ac3c91de32bc546d27940e74
https://github.com/qemu/qemu/commit/ebc2d2b497c59414ac3c91de32bc546d27940e74
Author: Isaku Yamahata <[email protected]>
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 <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 41f7fd22073561a23229c0479d9d708dee9d3a1e
https://github.com/qemu/qemu/commit/41f7fd22073561a23229c0479d9d708dee9d3a1e
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: ae60ff4e9f9e5790f79abf866ec67270c28ca477
https://github.com/qemu/qemu/commit/ae60ff4e9f9e5790f79abf866ec67270c28ca477
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 1ff5048d74e661943260c33e864c4118acb37ab4
https://github.com/qemu/qemu/commit/1ff5048d74e661943260c33e864c4118acb37ab4
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 98dbfd6849f117de02ac6f513f2a1f95563e60ae
https://github.com/qemu/qemu/commit/98dbfd6849f117de02ac6f513f2a1f95563e60ae
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 6e250463b08b4028123f201343ee72099ef81e68
https://github.com/qemu/qemu/commit/6e250463b08b4028123f201343ee72099ef81e68
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Acked-by: Markus Armbruster <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 77b5403a0298a5460554f768a2098fd21588e555
https://github.com/qemu/qemu/commit/77b5403a0298a5460554f768a2098fd21588e555
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 8583c53e2b619b1b9569d3f2d3f3cb2904a573ad
https://github.com/qemu/qemu/commit/8583c53e2b619b1b9569d3f2d3f3cb2904a573ad
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 7c615242671dbe65e198c20889dcaa9b4b9a1624
https://github.com/qemu/qemu/commit/7c615242671dbe65e198c20889dcaa9b4b9a1624
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: ab8bd85adf75900edc2764d0ebe8b53867cc54aa
https://github.com/qemu/qemu/commit/ab8bd85adf75900edc2764d0ebe8b53867cc54aa
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 9002494f80b751a7655045c5f46bf90bc1d3bbd0
https://github.com/qemu/qemu/commit/9002494f80b751a7655045c5f46bf90bc1d3bbd0
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: da6728658bf63d6a3989f1587a33566b3e54bed8
https://github.com/qemu/qemu/commit/da6728658bf63d6a3989f1587a33566b3e54bed8
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 810d4e83d07ca0d072205453a42c324a51d5a5fa
https://github.com/qemu/qemu/commit/810d4e83d07ca0d072205453a42c324a51d5a5fa
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: e7ef60892c80a9ce5b8504ceb13a81f4e0d4b3f7
https://github.com/qemu/qemu/commit/e7ef60892c80a9ce5b8504ceb13a81f4e0d4b3f7
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: bb45580d842530d78b58179eaf80b6331b15324e
https://github.com/qemu/qemu/commit/bb45580d842530d78b58179eaf80b6331b15324e
Author: Xiaoyao Li <[email protected]>
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é <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 0ed55865b49b703af93e160d48935812a7114e07
https://github.com/qemu/qemu/commit/0ed55865b49b703af93e160d48935812a7114e07
Author: Isaku Yamahata <[email protected]>
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 <[email protected]>
Reviewed-by: Connor Kuehl <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: f9aaad3362a5886d78e7d4d50d563ac16c6acdde
https://github.com/qemu/qemu/commit/f9aaad3362a5886d78e7d4d50d563ac16c6acdde
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 62a1a8b89d90cd3fbee0e6d38e6a4c0d833e978a
https://github.com/qemu/qemu/commit/62a1a8b89d90cd3fbee0e6d38e6a4c0d833e978a
Author: Xiaoyao Li <[email protected]>
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/[email protected]/
Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: b4b7fb5a773e1d2215c2aaa99789eca51914b78f
https://github.com/qemu/qemu/commit/b4b7fb5a773e1d2215c2aaa99789eca51914b78f
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 695bfaee7153153708228946aa26c6d879599c04
https://github.com/qemu/qemu/commit/695bfaee7153153708228946aa26c6d879599c04
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 75ec6189f5c65cab210dd9f16cf4eef368038d45
https://github.com/qemu/qemu/commit/75ec6189f5c65cab210dd9f16cf4eef368038d45
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 0ba06e46d09b84a2cb97a268da5576aaca3a24ca
https://github.com/qemu/qemu/commit/0ba06e46d09b84a2cb97a268da5576aaca3a24ca
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 31df29c532a9ef473c6efd497950a620099bf1da
https://github.com/qemu/qemu/commit/31df29c532a9ef473c6efd497950a620099bf1da
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 8c94c84cb9e0140b48acc9c9d404525ca7ef7457
https://github.com/qemu/qemu/commit/8c94c84cb9e0140b48acc9c9d404525ca7ef7457
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 9f5771c57dbe92d46361afd992a5851c846d0322
https://github.com/qemu/qemu/commit/9f5771c57dbe92d46361afd992a5851c846d0322
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 4d6e288a350a977b0fb0613db952087928ccd93e
https://github.com/qemu/qemu/commit/4d6e288a350a977b0fb0613db952087928ccd93e
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: dc0b08b303ad34983b43936a4c978672e0f9a9d8
https://github.com/qemu/qemu/commit/dc0b08b303ad34983b43936a4c978672e0f9a9d8
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 4a2fb19669bb41eee5b2fb8e5b5ba30e1daaeaf5
https://github.com/qemu/qemu/commit/4a2fb19669bb41eee5b2fb8e5b5ba30e1daaeaf5
Author: Lei Wang <[email protected]>
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 <[email protected]>
Reviewed-by: Igor Mammedov <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: adf25ad70f2f989e63c2cd3e9de4e38152d05e84
https://github.com/qemu/qemu/commit/adf25ad70f2f989e63c2cd3e9de4e38152d05e84
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: e3d1a4a6d1d61cf5fbd0e4b389cfb3976093739f
https://github.com/qemu/qemu/commit/e3d1a4a6d1d61cf5fbd0e4b389cfb3976093739f
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: deb9db6fb789cfe80527b75983e86137589227a4
https://github.com/qemu/qemu/commit/deb9db6fb789cfe80527b75983e86137589227a4
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: ea4867b911fc2f6d4c8bd50ec62f0dc0fa190fab
https://github.com/qemu/qemu/commit/ea4867b911fc2f6d4c8bd50ec62f0dc0fa190fab
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 907ee7b67e50a7eea2768c66e3ad67c9aa4ffd3c
https://github.com/qemu/qemu/commit/907ee7b67e50a7eea2768c66e3ad67c9aa4ffd3c
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: dc1424319311f86449c6825ceec2364ee645a363
https://github.com/qemu/qemu/commit/dc1424319311f86449c6825ceec2364ee645a363
Author: Xiaoyao Li <[email protected]>
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 1297b285cc3ffbd06dc3208fbecdb2d582c535dc
https://github.com/qemu/qemu/commit/1297b285cc3ffbd06dc3208fbecdb2d582c535dc
Author: Paolo Bonzini <[email protected]>
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 <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 397db937e85d7b9f5a6f0b30764786cef09d1ff3
https://github.com/qemu/qemu/commit/397db937e85d7b9f5a6f0b30764786cef09d1ff3
Author: Babu Moger <[email protected]>
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 <[email protected]>
Reviewed-by: Maksim Davydov <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link:
https://lore.kernel.org/r/515941861700d7066186c9600bc5d96a1741ef0c.1746734284.git.babu.mo...@amd.com
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 83d940e9700527ff080416ce2fa52ee1f4771d72
https://github.com/qemu/qemu/commit/83d940e9700527ff080416ce2fa52ee1f4771d72
Author: Babu Moger <[email protected]>
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 <[email protected]>
Reviewed-by: Maksim Davydov <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link:
https://lore.kernel.org/r/8265af72057b84c99ac3a02a5487e32759cc69b1.1746734284.git.babu.mo...@amd.com
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: fc014d9ba5b26b27401e0e88a4e1ef827c68fe64
https://github.com/qemu/qemu/commit/fc014d9ba5b26b27401e0e88a4e1ef827c68fe64
Author: Babu Moger <[email protected]>
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 <[email protected]>
Reviewed-by: Maksim Davydov <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link:
https://lore.kernel.org/r/c619c0e09a9d5d496819ed48d69181d65f416891.1746734284.git.babu.mo...@amd.com
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: dfd5b456108a75588ab094358ba5754787146d3d
https://github.com/qemu/qemu/commit/dfd5b456108a75588ab094358ba5754787146d3d
Author: Babu Moger <[email protected]>
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 <[email protected]>
Reviewed-by: Maksim Davydov <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link:
https://lore.kernel.org/r/a5f6283a59579b09ac345b3f21ecb3b3b2d92451.1746734284.git.babu.mo...@amd.com
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: abc92cc8488b5dbcc403b5be24d8092180605101
https://github.com/qemu/qemu/commit/abc92cc8488b5dbcc403b5be24d8092180605101
Author: Babu Moger <[email protected]>
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 <[email protected]>
Reviewed-by: Maksim Davydov <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link:
https://lore.kernel.org/r/afe3f05d4116124fd5795f28fc23d7b396140313.1746734284.git.babu.mo...@amd.com
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 3771a4daa273ba17cb27309984413790d1df5651
https://github.com/qemu/qemu/commit/3771a4daa273ba17cb27309984413790d1df5651
Author: Babu Moger <[email protected]>
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 <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Link:
https://lore.kernel.org/r/b4fa7708a0e1453d2e9b8ec3dc881feb92eeca0b.1746734284.git.babu.mo...@amd.com
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 9bd24d8d2756a0771b6677b02c7f9b603ef6afe9
https://github.com/qemu/qemu/commit/9bd24d8d2756a0771b6677b02c7f9b603ef6afe9
Author: Fiona Ebner <[email protected]>
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 <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Commit: 638422f5bcdf2c7bdb401b987b134322c5d6bd4d
https://github.com/qemu/qemu/commit/638422f5bcdf2c7bdb401b987b134322c5d6bd4d
Author: Hao Wu <[email protected]>
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 <[email protected]>
Signed-off-by: Nabih Estefan <[email protected]>
Message-id: [email protected]
Reviewed-by: Tyrone Ting <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Commit: e7083b02f5628f0ec63d29f2208ca5d3e963e9a8
https://github.com/qemu/qemu/commit/e7083b02f5628f0ec63d29f2208ca5d3e963e9a8
Author: Nabih Estefan <[email protected]>
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 <[email protected]>
Message-id: [email protected]
Reviewed-by: Tyrone Ting <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Commit: e6bc01777e5a4b6ecf3414b21a2d7b4846bf4817
https://github.com/qemu/qemu/commit/e6bc01777e5a4b6ecf3414b21a2d7b4846bf4817
Author: Guenter Roeck <[email protected]>
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: [email protected]
Cc: Hao Wu <[email protected]>
Cc: Peter Maydell <[email protected]>
Signed-off-by: Guenter Roeck <[email protected]>
Message-id: [email protected]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Commit: 0a233da8a02a6126140b9dbd3af29e6763a390b1
https://github.com/qemu/qemu/commit/0a233da8a02a6126140b9dbd3af29e6763a390b1
Author: Souleymane Conte <[email protected]>
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 <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Message-id: [email protected]
[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 <[email protected]>
Commit: 4f8599f20c4a54cefc626b50dc7392dd82b422f9
https://github.com/qemu/qemu/commit/4f8599f20c4a54cefc626b50dc7392dd82b422f9
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: f1bcfa81d84c2a7401f6dcbf8fc1c7b26ec18213
https://github.com/qemu/qemu/commit/f1bcfa81d84c2a7401f6dcbf8fc1c7b26ec18213
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: 54d1046f939c2c508a6b73531af83345306ecaa9
https://github.com/qemu/qemu/commit/54d1046f939c2c508a6b73531af83345306ecaa9
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: 982a42c773efc7767e33d618f0fe4fcaef716a57
https://github.com/qemu/qemu/commit/982a42c773efc7767e33d618f0fe4fcaef716a57
Author: Philippe Mathieu-Daudé <[email protected]>
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 <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: c28900fbcdc36175a1fc81015e952133007ae864
https://github.com/qemu/qemu/commit/c28900fbcdc36175a1fc81015e952133007ae864
Author: Philippe Mathieu-Daudé <[email protected]>
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 <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: fe5aa1cfe22c71c80e544cf97741036cba0556d7
https://github.com/qemu/qemu/commit/fe5aa1cfe22c71c80e544cf97741036cba0556d7
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: e0f224ec077d90c10288a4f73d01a264b0364e46
https://github.com/qemu/qemu/commit/e0f224ec077d90c10288a4f73d01a264b0364e46
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: 3d28b2ce00e8b5e74e1f5cbba13cf306b8360762
https://github.com/qemu/qemu/commit/3d28b2ce00e8b5e74e1f5cbba13cf306b8360762
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: c42300ef71ba103a9bf67ca64cb94d5d9b633175
https://github.com/qemu/qemu/commit/c42300ef71ba103a9bf67ca64cb94d5d9b633175
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>
Commit: 96778e69a2e391e5dc99d2318e7830695c607795
https://github.com/qemu/qemu/commit/96778e69a2e391e5dc99d2318e7830695c607795
Author: Thomas Huth <[email protected]>
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 <[email protected]>
Message-id: [email protected]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Commit: e86c1f967a323165d13bcadfad4b92d0d34cdb08
https://github.com/qemu/qemu/commit/e86c1f967a323165d13bcadfad4b92d0d34cdb08
Author: Peter Maydell <[email protected]>
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 <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: [email protected]
Commit: e2e360db7a55afd62e77577a965f6aa224132cef
https://github.com/qemu/qemu/commit/e2e360db7a55afd62e77577a965f6aa224132cef
Author: Nir Soffer <[email protected]>
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 <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
Commit: e9f4550b74a8a9774979a51caa4b1aaff9e1d055
https://github.com/qemu/qemu/commit/e9f4550b74a8a9774979a51caa4b1aaff9e1d055
Author: Nir Soffer <[email protected]>
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 <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
Commit: 479ec8106185d0e88d65539df5e940c781a82c53
https://github.com/qemu/qemu/commit/479ec8106185d0e88d65539df5e940c781a82c53
Author: Nir Soffer <[email protected]>
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 <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
Commit: d2b3e32bf7395c710ba44585520d837f6330fa70
https://github.com/qemu/qemu/commit/d2b3e32bf7395c710ba44585520d837f6330fa70
Author: Eric Blake <[email protected]>
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 <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Fiona Ebner <[email protected]>
Tested-by: Fiona Ebner <[email protected]>
Commit: ed1c336119c084159575ae9d4fd9171bd500f7e4
https://github.com/qemu/qemu/commit/ed1c336119c084159575ae9d4fd9171bd500f7e4
Author: Eric Blake <[email protected]>
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 <[email protected]>
Reported-by: Markus Armbruster <[email protected]>
Fixes: c0ddcb2c ("tests: Add iotest mirror-sparse for recent patches")
Signed-off-by: Eric Blake <[email protected]>
Reviewed-by: Fiona Ebner <[email protected]>
Tested-by: Fiona Ebner <[email protected]>
Message-ID: <[email protected]>
[eblake: Also fix xfs issue]
Signed-off-by: Eric Blake <[email protected]>
Commit: c49dda7254d43d9e1d4da59c55f02055ba7c4c1b
https://github.com/qemu/qemu/commit/c49dda7254d43d9e1d4da59c55f02055ba7c4c1b
Author: Eric Blake <[email protected]>
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 <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Fiona Ebner <[email protected]>
Tested-by: Fiona Ebner <[email protected]>
Commit: e1c9c801023d556d317256a414562634b1fe8b13
https://github.com/qemu/qemu/commit/e1c9c801023d556d317256a414562634b1fe8b13
Author: Thomas Huth <[email protected]>
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 <[email protected]>
Tested-by: Alex Bennée <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Commit: 644ded5c814055feb4d3a546628ccd28102f7acb
https://github.com/qemu/qemu/commit/644ded5c814055feb4d3a546628ccd28102f7acb
Author: Thomas Huth <[email protected]>
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 <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Commit: 9f7cf938efc6016f7ce323b064c2f3f46360c751
https://github.com/qemu/qemu/commit/9f7cf938efc6016f7ce323b064c2f3f46360c751
Author: Thomas Huth <[email protected]>
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é <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Commit: 141ec228deb7f94fb713c4d7ce0276e088e59f15
https://github.com/qemu/qemu/commit/141ec228deb7f94fb713c4d7ce0276e088e59f15
Author: Thomas Huth <[email protected]>
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é <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Commit: 6c5477558490cf76dc6d521fe906a2bfbc96ee27
https://github.com/qemu/qemu/commit/6c5477558490cf76dc6d521fe906a2bfbc96ee27
Author: Thomas Huth <[email protected]>
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é <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Commit: 0e259fa5a13a3d0ff65aa4199b1e03832e51e1b2
https://github.com/qemu/qemu/commit/0e259fa5a13a3d0ff65aa4199b1e03832e51e1b2
Author: Thomas Huth <[email protected]>
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 <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Commit: 225e9e230efd5ae509b12fd191a8de6287f934ef
https://github.com/qemu/qemu/commit/225e9e230efd5ae509b12fd191a8de6287f934ef
Author: Thomas Huth <[email protected]>
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 <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
Commit: 07a2adeebbe522b6e1c5706db2bdba0b05d0b2ae
https://github.com/qemu/qemu/commit/07a2adeebbe522b6e1c5706db2bdba0b05d0b2ae
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 8b1c560937467d0d96c1d0948e99f86ce188c0bc
https://github.com/qemu/qemu/commit/8b1c560937467d0d96c1d0948e99f86ce188c0bc
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 4c82e7b34b1bf35d97e026196f5bf10ea916512c
https://github.com/qemu/qemu/commit/4c82e7b34b1bf35d97e026196f5bf10ea916512c
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 60ce3f67bea0a782a58cf4f71840e8d20ef8ddfc
https://github.com/qemu/qemu/commit/60ce3f67bea0a782a58cf4f71840e8d20ef8ddfc
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 0bf8727696267a79658998d844a96e35e0353602
https://github.com/qemu/qemu/commit/0bf8727696267a79658998d844a96e35e0353602
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: fce42ccb51f115156d41eb3c8bd04bddf4a0ca8b
https://github.com/qemu/qemu/commit/fce42ccb51f115156d41eb3c8bd04bddf4a0ca8b
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 47d9e81f0ab44b59e99f4e87fe5409851e670de6
https://github.com/qemu/qemu/commit/47d9e81f0ab44b59e99f4e87fe5409851e670de6
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: ff63280a81144500726f1899b0ae374e692e1f39
https://github.com/qemu/qemu/commit/ff63280a81144500726f1899b0ae374e692e1f39
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 42cbccfcb0635257721aa6a0e55cb80e85756ecf
https://github.com/qemu/qemu/commit/42cbccfcb0635257721aa6a0e55cb80e85756ecf
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 6160ce208419e6e218db644433528aaa5d4f5024
https://github.com/qemu/qemu/commit/6160ce208419e6e218db644433528aaa5d4f5024
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
[thuth: Fix error from check_patch.pl wrt to an empty "for" loop]
Signed-off-by: Thomas Huth <[email protected]>
Commit: 667e170d2cf033033dfd6656f871c41871107ee0
https://github.com/qemu/qemu/commit/667e170d2cf033033dfd6656f871c41871107ee0
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 16c04166ae71c78ec36a9e2914c46c2289a58503
https://github.com/qemu/qemu/commit/16c04166ae71c78ec36a9e2914c46c2289a58503
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 404b27b739aa6f2c53fbed58101719564f614aac
https://github.com/qemu/qemu/commit/404b27b739aa6f2c53fbed58101719564f614aac
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 3763d16370f1505faada6909bd92ebe3a242b1bd
https://github.com/qemu/qemu/commit/3763d16370f1505faada6909bd92ebe3a242b1bd
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 2531dfde0ac447b0d70a83c8a02f72e584b9c534
https://github.com/qemu/qemu/commit/2531dfde0ac447b0d70a83c8a02f72e584b9c534
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 2db72323f2370ca69ba331f17c9a6bbd1f3bb118
https://github.com/qemu/qemu/commit/2db72323f2370ca69ba331f17c9a6bbd1f3bb118
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: c4eb3f10a3573392c297f2124a81af9041300ddd
https://github.com/qemu/qemu/commit/c4eb3f10a3573392c297f2124a81af9041300ddd
Author: Philippe Mathieu-Daudé <[email protected]>
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é <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Xiaoyao Li <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 5c54a367265ec19ed94a535cd15d178c16b8cae0
https://github.com/qemu/qemu/commit/5c54a367265ec19ed94a535cd15d178c16b8cae0
Author: Matheus Tavares Bernardino <[email protected]>
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 <[email protected]>
Reviewed-by: Juraj Marcin <[email protected]>
Message-ID:
<518d94c7db20060b2a086cf55ee9bffab992a907.1748280011.git.matheus.bernard...@oss.qualcomm.com>
Signed-off-by: Thomas Huth <[email protected]>
Commit: 72c58ff8958f6e00ce361d1d568dc21e41c85f45
https://github.com/qemu/qemu/commit/72c58ff8958f6e00ce361d1d568dc21e41c85f45
Author: Stefan Hajnoczi <[email protected]>
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 <[email protected]>" [full]
# gpg: aka "Eric Blake (Free Software Programmer)
<[email protected]>" [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 <[email protected]>
Commit: 98721058d6d50ef218e0c26e4f67c8ef96965859
https://github.com/qemu/qemu/commit/98721058d6d50ef218e0c26e4f67c8ef96965859
Author: Stefan Hajnoczi <[email protected]>
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 "[email protected]"
# gpg: Good signature from "Paolo Bonzini <[email protected]>" [full]
# gpg: aka "Paolo Bonzini <[email protected]>" [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 <[email protected]>
Commit: 107215089da92427c4c1644d84f5437b7b6e5e9c
https://github.com/qemu/qemu/commit/107215089da92427c4c1644d84f5437b7b6e5e9c
Author: Stefan Hajnoczi <[email protected]>
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 "[email protected]"
# gpg: Good signature from "Thomas Huth <[email protected]>" [full]
# gpg: aka "Thomas Huth <[email protected]>" [full]
# gpg: aka "Thomas Huth <[email protected]>" [full]
# gpg: aka "Thomas Huth <[email protected]>" [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 <[email protected]>
Commit: 3e82ddaa8db260a232dbbbf488d8ac7851d124c5
https://github.com/qemu/qemu/commit/3e82ddaa8db260a232dbbbf488d8ac7851d124c5
Author: Stefan Hajnoczi <[email protected]>
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 "[email protected]"
# gpg: Good signature from "Peter Maydell <[email protected]>" [full]
# gpg: aka "Peter Maydell <[email protected]>" [full]
# gpg: aka "Peter Maydell <[email protected]>"
[full]
# gpg: aka "Peter Maydell <[email protected]>" [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 <[email protected]>
Compare: https://github.com/qemu/qemu/compare/d2e9b78162e3...3e82ddaa8db2
To unsubscribe from these emails, change your notification settings at
https://github.com/qemu/qemu/settings/notifications