lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Wed, 2 Sep 2015 18:57:15 +0800
From:	Xiao Guangrong <guangrong.xiao@...ux.intel.com>
To:	Markus Trippelsdorf <markus@...ppelsdorf.de>
Cc:	Ingo Molnar <mingo@...nel.org>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	linux-kernel@...r.kernel.org,
	Peter Zijlstra <a.p.zijlstra@...llo.nl>,
	Thomas Gleixner <tglx@...utronix.de>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Mike Galbraith <efault@....de>, Joerg Roedel <jroedel@...e.de>,
	Paolo Bonzini <pbonzini@...hat.com>, kvm@...r.kernel.org
Subject: Re: commit 3c2e7f7de3 (KVM use NPT page attributes) causes boot
 failures



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().
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ