Juergen, thanks for following up on this. X86 maintainers - If it helps let me also confirm that without this patch the latest kernels *always* crash on VMware guest running HWv10 and earlier.
Please include the fix at your earliest. Thanks, Alok On Mon, 2015-01-19 at 06:05 +0100, Juergen Gross wrote: > PING! > > The patch repairs a bug with VMWARE, which has been reported by several > users. All of them have confirmed the patch is working. And VMWARE has > acked the patch. What else do you need to take it? It is available for > over a month now! > > Juergen > > On 01/12/2015 06:15 AM, Juergen Gross wrote: > > VMWare seems not to emulate the PAT MSR correctly: reaeding > > MSR_IA32_CR_PAT returns 0 even after writing another value to it. > > > > Detect this bug and don't use the read value if it is 0. > > > > Commit bd809af16e3ab1f8d55b3e2928c47c67e2a865d2 ("x86: Enable PAT to > > use cache mode translation tables") triggers this VMWare bug when the > > kernel is booted as a VMWare guest. > > > > Reported-by: Jongman Heo <jongman....@samsung.com> > > Signed-off-by: Juergen Gross <jgr...@suse.com> > > Tested-by: Jongman Heo <jongman....@samsung.com> > > Acked-by: Alok N Kataria <akata...@vmware.com> > > --- > > arch/x86/mm/pat.c | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c > > index edf299c..7ac6869 100644 > > --- a/arch/x86/mm/pat.c > > +++ b/arch/x86/mm/pat.c > > @@ -234,8 +234,13 @@ void pat_init(void) > > PAT(4, WB) | PAT(5, WC) | PAT(6, UC_MINUS) | PAT(7, UC); > > > > /* Boot CPU check */ > > - if (!boot_pat_state) > > + if (!boot_pat_state) { > > rdmsrl(MSR_IA32_CR_PAT, boot_pat_state); > > + if (!boot_pat_state) { > > + pat_disable("PAT read returns always zero, disabled."); > > + return; > > + } > > + } > > > > wrmsrl(MSR_IA32_CR_PAT, pat); > > > > >