Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752862AbcCKW3U (ORCPT ); Fri, 11 Mar 2016 17:29:20 -0500 Received: from mail5.windriver.com ([192.103.53.11]:46591 "EHLO mail5.wrs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752437AbcCKW3Q (ORCPT ); Fri, 11 Mar 2016 17:29:16 -0500 Subject: Re: runtime regression with "x86/mm/pat: Emulate PAT when it is disabled" To: Borislav Petkov , Paolo Bonzini References: <1457398578.15454.421.camel@hpe.com> <1457400913.15454.435.camel@hpe.com> <20160310144250.GG23251@windriver.com> <1457628591.15454.542.camel@hpe.com> <20160310172029.GA2194@pd.tnic> <20160310190429.GI23251@windriver.com> <20160310191933.GC2194@pd.tnic> <20160311132356.43a7b373@lxorguk.ukuu.org.uk> <20160311134000.GC4347@pd.tnic> <56E319FF.3090709@redhat.com> <20160311221651.GE4347@pd.tnic> CC: One Thousand Gnomes , Paul Gortmaker , Toshi Kani , Richard Purdie , Toshi Kani , "Hart, Darren" , "saul.wold" , , kvm ML , x86-ml From: Bruce Ashfield Message-ID: <56E34695.2020300@windriver.com> Date: Fri, 11 Mar 2016 17:28:37 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <20160311221651.GE4347@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2702 Lines: 67 On 2016-03-11 5:16 PM, Borislav Petkov wrote: > On Fri, Mar 11, 2016 at 08:18:23PM +0100, Paolo Bonzini wrote: >> Somebody got it wrong 10-ish years ago, and nobody has ever checked since. >> >> But, don't use qemu32 or qemu64. Use kvm32 and kvm64, or better >> something like the host you run on ("-cpu Nehalem", "-cpu SandyBridge", >> "-cpu Haswell-noTSX" etc.). > > Paul, Richard, how about it? I'm not Paul/Richard, but I can answer :) We want a more generic cpu for these qemu references. Something that doesn't vary, since it runs on any number of hosts. There are some horrible issues we've had to solve with -cpu host in the past. Switching to the kvm cpu type should work, plus we can add cpu extensions on the fly as necessary. That's definitely a valid outcome from this discussion .. a cpu type that doesn't shoot through the middle of the expected capabilities .. and a bonus if the kernel or qemu can be tweaked to survive a similar mix up in the flags in the future. Cheers, Bruce > >> I really, really should fix those defaults... > > Here's a start, while I have everything fresh in my head. > > --- > From: Borislav Petkov > Date: Fri, 11 Mar 2016 23:11:05 +0100 > Subject: [PATCH] target-i386/cpu: Correct MTRR and PAT feature bits > > Pentium Pro had MTRRs but not PAT, PAT support appeared in Pentium III. > Fix all defines. > > Signed-off-by: Borislav Petkov > --- > target-i386/cpu.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 0f38d1eae317..fa7ea4a8c229 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -308,12 +308,12 @@ static const char *cpuid_6_feature_name[] = { > #define PENTIUM_FEATURES (I486_FEATURES | CPUID_DE | CPUID_TSC | \ > CPUID_MSR | CPUID_MCE | CPUID_CX8 | CPUID_MMX | CPUID_APIC) > #define PENTIUM2_FEATURES (PENTIUM_FEATURES | CPUID_PAE | CPUID_SEP | \ > - CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | CPUID_PAT | \ > + CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | \ > CPUID_PSE36 | CPUID_FXSR) > -#define PENTIUM3_FEATURES (PENTIUM2_FEATURES | CPUID_SSE) > +#define PENTIUM3_FEATURES (PENTIUM2_FEATURES | CPUID_SSE | CPUID_PAT) > #define PPRO_FEATURES (CPUID_FP87 | CPUID_DE | CPUID_PSE | CPUID_TSC | \ > CPUID_MSR | CPUID_MCE | CPUID_CX8 | CPUID_PGE | CPUID_CMOV | \ > - CPUID_PAT | CPUID_FXSR | CPUID_MMX | CPUID_SSE | CPUID_SSE2 | \ > + CPUID_MTRR | CPUID_FXSR | CPUID_MMX | CPUID_SSE | CPUID_SSE2 | \ > CPUID_PAE | CPUID_SEP | CPUID_APIC) > > #define TCG_FEATURES (CPUID_FP87 | CPUID_PSE | CPUID_TSC | CPUID_MSR | \ >