Am 11.09.2013 10:22, schrieb Igor Mammedov: > On Tue, 10 Sep 2013 17:48:59 -0300 > Eduardo Habkost <ehabk...@redhat.com> wrote: > >> There's no Intel CPU with family=6,model=2, and Linux and Windows guests >> disable SEP when seeing that combination due to Pentium Pro erratum #82. >> >> In addition to just having SEP ignored by guests, Skype (and maybe other >> applications) runs sysenter directly without passing through ntdll on >> Windows, and crashes because Windows ignored the SEP CPUID bit. >> >> So, having model > 2 is a better default on qemu64 and qemu32 for two >> reasons: making SEP really available for guests, and avoiding crashing >> applications that work on bare metal. >> >> model=3 would fix the problem, but it causes CPU enumeration problems >> for Windows guests[1]. So this patch sets model=6, that matches "Athlon >> (PM core)" on AMD and "P2 with on-die L2 cache" on Intel and it allows >> Windows to use all CPUs as well as fixing sysenter. >> >> [1] https://bugzilla.redhat.com/show_bug.cgi?id=508623 >> >> Cc: Andrea Arcangeli <aarca...@redhat.com> >> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> >> --- >> include/hw/i386/pc.h | 8 ++++++++ >> target-i386/cpu.c | 4 ++-- >> 2 files changed, 10 insertions(+), 2 deletions(-) >> >> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h >> index 7fb04d8..195e962 100644 >> --- a/include/hw/i386/pc.h >> +++ b/include/hw/i386/pc.h >> @@ -258,6 +258,14 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t); >> .driver = TYPE_X86_CPU,\ >> .property = "pmu",\ >> .value = "on",\ >> + },{\ >> + .driver = "qemu64-" TYPE_X86_CPU,\ >> + .property = "model",\ >> + .value = stringify(2),\ >> + },{\ >> + .driver = "qemu32-" TYPE_X86_CPU,\ >> + .property = "model",\ >> + .value = stringify(3),\ >> } >> >> #define PC_COMPAT_1_4 \
Shouldn't this hunk be in PC_COMPAT_1_6 rather than alongside PMU, which I believe was for 1_5? Andreas >> diff --git a/target-i386/cpu.c b/target-i386/cpu.c >> index c36345e..36cfbce 100644 >> --- a/target-i386/cpu.c >> +++ b/target-i386/cpu.c >> @@ -544,7 +544,7 @@ static x86_def_t builtin_x86_defs[] = { >> .level = 4, >> .vendor = CPUID_VENDOR_AMD, >> .family = 6, >> - .model = 2, >> + .model = 6, >> .stepping = 3, >> .features[FEAT_1_EDX] = >> PPRO_FEATURES | >> @@ -647,7 +647,7 @@ static x86_def_t builtin_x86_defs[] = { >> .level = 4, >> .vendor = CPUID_VENDOR_INTEL, >> .family = 6, >> - .model = 3, >> + .model = 6, >> .stepping = 3, >> .features[FEAT_1_EDX] = >> PPRO_FEATURES, > > Reviewed-By: Igor Mammedov <imamm...@redhat.com> > -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg