Re: [3.18+] Can't boot with commit bd809af1 ("x86: Enable PAT to use cache mode translation tables")

From: Juergen Gross
Date: Mon Dec 15 2014 - 06:52:29 EST


On 12/15/2014 08:52 AM, Jongman Heo wrote:
>> ------- Original Message -------
>> Sender : Juergen Gross
>> Date : 2014-12-15 14:04 (GMT+09:00)
>> Title : Re: [3.18+] Can't boot with commit bd809af1 ("x86: Enable PAT to use cache mode translation tables")
>>
>> On 12/14/2014 06:07 AM, 허종만 wrote:
>>>
>>> Hi,
>>>
>>> My Linux virtual machine on (Windows) VMWare workstation 10 can't boot with following commit.
>>>
>>> commit bd809af16e3ab1f8d55b3e2928c47c67e2a865d2
>>> Author: Juergen Gross
>>> Date: Mon Nov 3 14:02:03 2014 +0100
>>>
>>> x86: Enable PAT to use cache mode translation tables
>>>
>>> Unfortunately I can't see any console log.
>>
>> Hmm, weird. Could you provide some more information?
>>
>> Kernel config, hardware used, /proc/cpuinfo of working kernel?
>> Anything you see with earlyprintk enabled?
>>
>>
>> Juergen
>
> (Sorry for resending this email, previous one bounced from mailing list due to HTML format)
>
> Hi,
>
> I'm using Fedora 21, with custom built kernel.
> Host PC is windows 7 64-bit, and running VMWare workstation 10 for guest Fedora Linux.
>
> With earlyprintk, just following message is printed.
>
> early console in setup code
>
> and nothing more...

Can you try attached diagnostic patch, please? I suspect a problem
regarding VMWares PAT emulation...


Juergen
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index edf299c..d77d6a8 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -182,6 +182,7 @@ void pat_init_cache_modes(void)
u64 pat;

rdmsrl(MSR_IA32_CR_PAT, pat);
+ pr_info("read pat %0llx\n", pat);
pat_msg[32] = 0;
for (i = 7; i >= 0; i--) {
cache = pat_get_cache_mode((pat >> (i * 8)) & 7,
@@ -237,6 +238,8 @@ void pat_init(void)
if (!boot_pat_state)
rdmsrl(MSR_IA32_CR_PAT, boot_pat_state);

+ pr_info("about to write pat %0llx\n", pat);
+
wrmsrl(MSR_IA32_CR_PAT, pat);

if (boot_cpu)