[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 05/17] target-i386: Set level=4 on Conroe/Penryn/Neha
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PULL 05/17] target-i386: Set level=4 on Conroe/Penryn/Nehalem |
Date: |
Thu, 13 Jun 2013 02:45:17 +0200 |
From: Eduardo Habkost <address@hidden>
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 <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
---
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
- [Qemu-devel] [PULL 00/17] QOM CPUState patch queue 2013-06-12, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 01/17] dump: Move stubs into libqemustub.a, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 02/17] pc: Fix crash when attempting to hotplug CPU with negative ID, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 04/17] target-i386: Update model values on Conroe/Penryn/Nehalem CPU models, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 03/17] pc: Create pc-*-1.6 machine-types, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 05/17] target-i386: Set level=4 on Conroe/Penryn/Nehalem,
Andreas Färber <=
- [Qemu-devel] [PULL 06/17] target-i386: cpu: Fix potential buffer overrun in get_register_name_32(), Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 07/17] monitor: Simplify do_inject_mce() with qemu_get_cpu(), Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 09/17] memory_mapping: Move MemoryMappingList typedef to qemu/typedefs.h, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 08/17] cpu: Turn cpu_paging_enabled() into a CPUState hook, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 11/17] memory_mapping: Drop qemu_get_memory_mapping() stub, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 13/17] cpu: Change default for CPUClass::get_paging_enabled(), Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 12/17] dump: Drop qmp_dump_guest_memory() stub and build for all targets, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 14/17] dump: Abstract dump_init() with cpu_synchronize_all_states(), Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 10/17] cpu: Turn cpu_get_memory_mapping() into a CPUState hook, Andreas Färber, 2013/06/12
- [Qemu-devel] [PULL 17/17] spapr_rtas: Abstract rtas_start_cpu() with qemu_get_cpu(), Andreas Färber, 2013/06/12