From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Eduardo Habkost" <ehabkost@redhat.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: [Qemu-devel] [PULL 05/17] target-i386: Set level=4 on Conroe/Penryn/Nehalem
Date: Thu, 13 Jun 2013 02:45:17 +0200 [thread overview]
Message-ID: <1371084329-814-6-git-send-email-afaerber@suse.de> (raw)
In-Reply-To: <1371084329-814-1-git-send-email-afaerber@suse.de>
From: Eduardo Habkost <ehabkost@redhat.com>
The CPUID level value on Conroe, Penryn, and Nehalem are too low. This
causes at least one known problem: the -smp "threads" option doesn't
work as expect if level is < 4, because thread count information is
provided to the guest on CPUID[EAX=4,ECX=2].EAX
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
include/hw/i386/pc.h | 12 ++++++++++++
target-i386/cpu.c | 6 +++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index f232d75..fab9be5 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -191,13 +191,25 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t);
.property = "model",\
.value = stringify(2),\
},{\
+ .driver = "Conroe-" TYPE_X86_CPU,\
+ .property = "level",\
+ .value = stringify(2),\
+ },{\
.driver = "Penryn-" TYPE_X86_CPU,\
.property = "model",\
.value = stringify(2),\
},{\
+ .driver = "Penryn-" TYPE_X86_CPU,\
+ .property = "level",\
+ .value = stringify(2),\
+ },{\
.driver = "Nehalem-" TYPE_X86_CPU,\
.property = "model",\
.value = stringify(2),\
+ },{\
+ .driver = "Nehalem-" TYPE_X86_CPU,\
+ .property = "level",\
+ .value = stringify(2),\
}
#define PC_COMPAT_1_4 \
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 6b48562..762baad 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -669,7 +669,7 @@ static x86_def_t builtin_x86_defs[] = {
},
{
.name = "Conroe",
- .level = 2,
+ .level = 4,
.vendor = CPUID_VENDOR_INTEL,
.family = 6,
.model = 15,
@@ -691,7 +691,7 @@ static x86_def_t builtin_x86_defs[] = {
},
{
.name = "Penryn",
- .level = 2,
+ .level = 4,
.vendor = CPUID_VENDOR_INTEL,
.family = 6,
.model = 23,
@@ -714,7 +714,7 @@ static x86_def_t builtin_x86_defs[] = {
},
{
.name = "Nehalem",
- .level = 2,
+ .level = 4,
.vendor = CPUID_VENDOR_INTEL,
.family = 6,
.model = 26,
--
1.8.1.4
next prev parent reply other threads:[~2013-06-13 0:45 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-13 0:45 [Qemu-devel] [PULL 00/17] QOM CPUState patch queue 2013-06-12 Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 01/17] dump: Move stubs into libqemustub.a Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 02/17] pc: Fix crash when attempting to hotplug CPU with negative ID Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 03/17] pc: Create pc-*-1.6 machine-types Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 04/17] target-i386: Update model values on Conroe/Penryn/Nehalem CPU models Andreas Färber
2013-06-13 0:45 ` Andreas Färber [this message]
2013-06-13 0:45 ` [Qemu-devel] [PULL 06/17] target-i386: cpu: Fix potential buffer overrun in get_register_name_32() Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 07/17] monitor: Simplify do_inject_mce() with qemu_get_cpu() Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 08/17] cpu: Turn cpu_paging_enabled() into a CPUState hook Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 09/17] memory_mapping: Move MemoryMappingList typedef to qemu/typedefs.h Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 10/17] cpu: Turn cpu_get_memory_mapping() into a CPUState hook Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 11/17] memory_mapping: Drop qemu_get_memory_mapping() stub Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 12/17] dump: Drop qmp_dump_guest_memory() stub and build for all targets Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 13/17] cpu: Change default for CPUClass::get_paging_enabled() Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 14/17] dump: Abstract dump_init() with cpu_synchronize_all_states() Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 15/17] memory_mapping: Improve qemu_get_guest_memory_mapping() error reporting Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 16/17] spapr_rtas: Abstract rtas_query_cpu_stopped_state() with qemu_get_cpu() Andreas Färber
2013-06-13 0:45 ` [Qemu-devel] [PULL 17/17] spapr_rtas: Abstract rtas_start_cpu() " Andreas Färber
2013-06-17 21:17 ` [Qemu-devel] [PULL 00/17] QOM CPUState patch queue 2013-06-12 Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1371084329-814-6-git-send-email-afaerber@suse.de \
--to=afaerber@suse.de \
--cc=ehabkost@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).