Messages in this thread Patch in this message | | | Date | Mon, 15 Dec 2014 12:52:14 +0100 | From | Juergen Gross <> | Subject | Re: [3.18+] Can't boot with commit bd809af1 ("x86: Enable PAT to use cache mode translation tables") |
| |
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) | |