This series introduces support for AMD's Extended CPU Topology CPUID leaf
(0x80000026) and Bus Lock Detect in QEMU.
AMD's Extended CPU Topology presents the complete topology information to
guests via a single CPUID with multiple subleafs, each describing a specific
hierarchy level, viz. core, complex, die, socket.
A new CPU property is added to gate this CPUID to AMD Zen 4+ CPUs. New
versions of EPYC-Genoa and EPYC-Turin are also created to include the
property. Tested the VM migrations with both newer and older CPU versions.
Bus Lock Detect signals when a process has acquired a bus lock. It is
enumerated with cpuid Fn0000_0007_ECX_x0 bit [24 / BUSLOCKTRAP]. It can be
enabled through MSR_IA32_DEBUGCTLMSR. When enabled, hardware clears DR6[11]
and raises a #DB exception on occurrence of Bus Lock if CPL > 0. More detail
about the feature can be found in AMD APM[1].
It is enabled for EPYC-Turin-v2. The KVM patch enabling Bus Lock Detect
for SVM can be found here:
https://lore.kernel.org/kvm/20251121081228.426974-1-shivansh.dhiman@amd.com/
Patches are prepared on master (4481234e).
[1]: AMD64 Architecture Programmer's Manual Pub. 40332, Rev. 4.07 - June
2023, Vol 2, 13.1.3.6 Bus Lock Trap
https://bugzilla.kernel.org/attachment.cgi?id=304653
Best regards,
Shivansh
---
Ravi Bangoria (1):
i386: Add Bus Lock Detect support
Shivansh Dhiman (4):
i386: Implement CPUID 0x80000026
i386: Add CPU property x-force-cpuid-0x80000026
i386: Enable CPUID 80000026 for EPYC-Genoa/Turin vCPU
i386: Add Bus Lock Detect support for EPYC-Turin-v2 model
target/i386/cpu.c | 103 ++++++++++++++++++++++++++++++++++++++++++
target/i386/cpu.h | 19 ++++++++
target/i386/kvm/kvm.c | 21 ++++++++-
3 files changed, 141 insertions(+), 2 deletions(-)
--
2.43.0