qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] qemu-kvm: use the proper CPU vendor if -cpu is specified with -enable-kvm
@ 2014-03-11 18:35 George Yunaev
  0 siblings, 0 replies; only message in thread
From: George Yunaev @ 2014-03-11 18:35 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1622 bytes --]

Hello everyone,

This patch fixes the issue when -cpu specification is partially ignored 
when -enable-kvm is specified. For example, |when running:

qemu-system-x86_64 -cpu core2duo

on AMD machine, the CPU vendor is properly identified as GenuineIntel. 
However when running:
|
|qemu-system-x86_64 -cpu core2duo| |-enable-kvm

on the same AMD machine, the CPU vendor is now identified as 
AuthenticAMD, despite the rest of CPU information (such as name) being 
Intel-specific. This behavior breaks the attempts to emulate Mac OS X on 
AMD CPU with kvm enabled.

This behavior is caused by the code in cpu_x86_register() which copies 
the host CPU vendor into the emulated CPU when kvm is enabled. While 
this makes sense for the qemu-emulated CPU, this makes little sense when 
the user actually specified the -cpu. Not sure if this behavior

The attached patch changes this behavior by only copying the vendor CPU 
information from the host CPU when either the qemu32 or qemu64 CPU is 
being used.

|

Signed-off-by: George Yunaev <gyunaev@ulduzsoft.com>
---

--- qemu.old/target-i386/cpu.c  2014-03-10 23:47:08.000000000 -0700
+++ qemu/target-i386/cpu.c      2014-03-10 23:47:32.433412520 -0700
@@ -1863,7 +1863,7 @@
      const char *vendor = def->vendor;
      char host_vendor[CPUID_VENDOR_SZ + 1];

-    if (kvm_enabled()) {
+    if (kvm_enabled() && def->name[0] == 'q' && def->name[1] == 'e' && 
def->name[2] == 'm' && def->name[3] == 'u' ) {
          uint32_t  ebx = 0, ecx = 0, edx = 0;
          host_cpuid(0, 0, NULL, &ebx, &ecx, &edx);
          x86_cpu_vendor_words2str(host_vendor, ebx, edx, ecx);

---


[-- Attachment #2: Type: text/html, Size: 2582 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-03-11 19:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-11 18:35 [Qemu-devel] [PATCH] qemu-kvm: use the proper CPU vendor if -cpu is specified with -enable-kvm George Yunaev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).