Re: commit 3c2e7f7de3 (KVM use NPT page attributes) causes boot failures

Xiao Guangrong
2015-09-02T10:33:22Z

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.

Maybe something is escaped from stop_machine() called in native_smp_cpus_done(),
Ingo?