The core topology info used by Linux (see
linux/arch/x86/kernel/cpu/amd.c:amd_get_topology()) is actually at
CPUID[0x8000001e].

AMD's documentation is a bit confusing, as the Architecture Programmer's
Manual still refers to CPUID[0x8000001e].EBX[bits 7:0] as "compute unit
ID", but the Processor Programming Reference for AMD Family 17h
documents the same bits as "Core ID".  We can implement
CPUID[0x8000001e] and print the existing warning only if CPU vendor is
AMD and cpuid_family != 0x17.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1703506

Title:
  SMT not supported by QEMU on AMD Ryzen CPU

Status in QEMU:
  New

Bug description:
  HyperThreading/SMT is supported by AMD Ryzen CPUs but results in this
  message when setting the topology to threads=2:

  qemu-system-x86_64: AMD CPU doesn't support hyperthreading. Please
  configure -smp options properly.

  Checking in a Windows 10 guest reveals that SMT is not enabled, and
  from what I understand, QEMU converts the topology from threads to
  cores internally on AMD CPUs. This appears to cause performance
  problems in the guest perhaps because programs are assuming that these
  threads are actual cores.

  Software: Linux 4.12, qemu 2.9.0 host with KVM enabled, Windows 10 pro
  guest

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1703506/+subscriptions

Reply via email to