From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753978AbbIBLDH (ORCPT ); Wed, 2 Sep 2015 07:03:07 -0400 Received: from mga11.intel.com ([192.55.52.93]:15042 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752778AbbIBLDF (ORCPT ); Wed, 2 Sep 2015 07:03:05 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,453,1437462000"; d="scan'208";a="760753167" Subject: Re: commit 3c2e7f7de3 (KVM use NPT page attributes) causes boot failures To: Markus Trippelsdorf References: <20150901084444.GB421@x4> <20150901085627.GF6315@gmail.com> <20150901100417.GA424@x4> <55E5A157.5040403@linux.intel.com> <20150901135636.GA423@x4> <55E6273D.6080701@linux.intel.com> <20150902035040.GA420@x4> <55E6BEB1.6080106@linux.intel.com> <20150902093818.GA422@x4> <55E6CF13.1060806@linux.intel.com> <20150902105402.GB422@x4> Cc: Ingo Molnar , Linus Torvalds , linux-kernel@vger.kernel.org, Peter Zijlstra , Thomas Gleixner , Andrew Morton , Mike Galbraith , Joerg Roedel , Paolo Bonzini , kvm@vger.kernel.org From: Xiao Guangrong Message-ID: <55E6D60B.5090608@linux.intel.com> Date: Wed, 2 Sep 2015 18:57:15 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <20150902105402.GB422@x4> 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 On 09/02/2015 06:54 PM, Markus Trippelsdorf wrote: > On 2015.09.02 at 18:27 +0800, Xiao Guangrong wrote: >> >> >> On 09/02/2015 05:38 PM, Markus Trippelsdorf wrote: >>> On 2015.09.02 at 17:17 +0800, Xiao Guangrong wrote: >>>>> >>>>> No. PAT is of course enabled and booting is successful sometimes even >>>>> with the BUG() in allback_mtrr_type(). I suspect a setup (timing) issue. >>>> >>>> Thanks for your confirmation. >>>> >>>>> >>>>> markus@x4 linux % cat .config | grep X86_PAT >>>>> CONFIG_X86_PAT=y >>>>> markus@x4 linux % dmesg | grep PAT >>>>> [ 0.000000] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WC UC- WT >>>> >>>> Strange, BP processor has already set WC to PAT1, however KVM does not read it out >>>> from PAT MSR on its local CPU. >>>> >>>> Hmm... PAT default values do not include WC, it seems initing PAT on SP has not >>>> finished after module_init()? >>>> >>>> Could please apply this diff and test it again? >>> >>> (Your patch was malformed.) >>> >>> [ 2.138098] kvm: Nested Virtualization enabled >>> [ 2.138153] kvm: Nested Paging enabled >>> [ 2.138204] KVM PAT: 0x7040600070406. >> >> So the PAT is the value after CPU reset, it's likely PAT is not initialized on >> the local CPU. > > Could it be a simple AMD/INTEL difference. I'm running a AMD CPU and I > see many !use_intel() in if statements in arch/x86/kernel/cpu/mtrr/main.c... > #define use_intel() (mtrr_if && mtrr_if->use_intel_if == 1) And i checked your CPU supports "mtrr" /proc/info, so it should use generic_mtrr_ops and generic_mtrr_ops.use_intel_if = 1. That means AMD CPU also use "intel" way. :) Please refer to the initiation of "mtrr_if" in mtrr_bp_init().