@@ -610,10 +610,12 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
*edx = env->cpuid_vendor2;
*ecx = env->cpuid_vendor3;
- /* sysenter isn't supported on compatibility mode on AMD. and syscall
- * isn't supported in compatibility mode on Intel. so advertise the
- * actuall cpu, and say goodbye to migration between different vendors
- * is you use compatibility mode. */
+ /* sysenter isn't supported on compatibility mode on AMD, syscall
+ * isn't supported in compatibility mode on Intel.
+ * Normally we advertise the actual cpu vendor, but you can override
+ * this if you want to use KVM's sysenter/syscall emulation
+ * in compatibility mode and when doing cross vendor migration
+ */
if (kvm_enabled() && !env->cpuid_vendor_override)
host_cpuid(0, 0, NULL, ebx, ecx, edx);
break;
@@ -720,7 +722,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
}
if (kvm_enabled()) {
- /* Nested SVM not yet supported in KVM */
+ /* Nested SVM not yet supported in upstream QEMU */
*ecx &= ~CPUID_EXT3_SVM;
} else {
/* AMD 3DNow! is not supported in QEMU */
Some comments regarding CPUID features were not up-to-date. - Nested SVM is supported in qemu-kvm, but not in upstream qemu (yet). - We support syscall/sysenter emulation in KVM now, so the comment explaining the vendor string issue can be more relaxed. Signed-off-by: Andre Przywara <andre.przywara@amd.com> --- target-i386/cpuid.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)