On Thu, 2016-03-10 at 09:42 -0500, Paul Gortmaker wrote: > [Re: runtime regression with "x86/mm/pat: Emulate PAT when it is > disabled"] On 07/03/2016 (Mon 18:35) Toshi Kani wrote: > > > On Mon, 2016-03-07 at 17:56 -0700, Toshi Kani wrote: > > [...] > > > And also an output of /proc/cpuinfo, please? > > Here is the output of /proc/cpuinfo in the guest session, while > running on pentium dual core as host (no vmx): > > > processor : 0 > vendor_id : GenuineIntel > cpu family : 6 > model : 6 > model name : QEMU Virtual CPU version 2.5+ > stepping : 3 > cpu MHz : 2593.449 > cache size : 4096 KB > physical id : 0 > siblings : 1 > core id : 0 > cpu cores : 1 > apicid : 0 > initial apicid : 0 > fdiv_bug : no > f00f_bug : no > coma_bug : no > fpu : yes > fpu_exception : yes > cpuid level : 4 > wp : yes > flags : fpu de pse tsc msr pae mce cx8 apic sep pge cmov > mmx fxsr sse sse2 pni hypervisor > bugs : > bogomips : 5186.89 > clflush size : 32 > cache_alignment : 32 > address sizes : 36 bits physical, 32 bits virtual > power management:
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. Thanks, -Toshi > > Paul. > -- > > > > > I think I know what's going on. I noticed that you have the following > > message in your dmesg files. > > > > [ 0.000000] MTRR: Disabled > > > > MTRR is set to disabled when your CPU is Intel but does not support > > MTRR. > > Perhaps, QEMU does not emulate MTRR? > > > > pat_init() is not called when MTRR is disabled. I think this > > dependency is > > wrong, and it needs to be fixed. > > > > This issue has been there for a long time, and you have been running > > essentially as PAT disabled in the past. The commit in question simply > > detected this issue. > > > > Thanks, > > -Toshi