Re: runtime regression with "x86/mm/pat: Emulate PAT when it is disabled"

From: Toshi Kani
Date: Thu Mar 10 2016 - 14:11:54 EST


On Thu, 2016-03-10 at 18:20 +0100, Borislav Petkov wrote:
> On Thu, Mar 10, 2016 at 09:49:51AM -0700, Toshi Kani wrote:
> > This confirms the issue - QEMU's virtual Intel CPU does not support
> > MTRR.Â
> >
> > When MTRR is disabled, the kernel does not call pat_init().
> > Âpat_enabled() is still set to true whenÂCONFIG_X86_PAT is set.
> > ÂCONFIG_X86_PAT depends on CONFIG_MTRR, and assumes that MTRR is
> > enabled.Â
>
> Aha, so "qemu32" model doesn't support MTRRs but "kvm32" does, for
> example. And so do the majority of the other CPU types.
>
> Paul, can you guys run with something else besides "qemu32"? You can
> even take a 64-bit one and run a 32-bit guest on it.
>
> :-)
>

I will send a patch that sets PAT disabled when MTRR is disabled. ÂThis
will solve the Paul's issue. ÂHis qemu32 model does not support PAT,
either.

Ideally, PAT and MTRR features should be managed independently, but this
will require much more effort and will not be easily applied to stable.

Thanks,
-Toshi