Messages in this thread | | | Subject | Re: runtime regression with "x86/mm/pat: Emulate PAT when it is disabled" | From | Toshi Kani <> | Date | Mon, 07 Mar 2016 18:35:13 -0700 |
| |
On Mon, 2016-03-07 at 17:56 -0700, Toshi Kani wrote: > On Mon, 2016-03-07 at 18:53 -0500, Paul Gortmaker wrote: > > [Re: runtime regression with "x86/mm/pat: Emulate PAT when it is > > disabled"] On 07/03/2016 (Mon 16:38) Toshi Kani wrote: > > > > > On Mon, 2016-03-07 at 16:08 -0500, Paul Gortmaker wrote: > > > > [dropping oe list and lkml since attaching dmesg files.] > > > > > > > > [...] > > > > > > > Yes, please send me full dmesg files. Since I do not know your > > > > > original state, the diff does not give me the whole picture. > > > > > > > > Attached. > > > > > > Thanks for the dmesg files! As I suspected, there is no message from > > > pat_init() in both cases. That is, you are missing the following > > > message, > > > which shows how PAT is configured to support cache attributes. > > > > > > # dmesg | grep PAT > > > [0.000000] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WC UC- > > > WT > > > > Interesting... > > > > > > > > It may have seemed working before, but you did not have WC configured > > > to PAT without calling pat_init(). There was not a proper check in > > > place to detect this error before. Can you please check your code to > > > see what caused this skip of pat_init()? If you have a git tree, I > > > can > > > take a look as well. > > > > You already have git copies of what I'm running, since it is vanilla > > mainline commits. No code changes at this end whatsoever. I did the > > bisect on vanilla mainline. All I took from yocto was their ".config" > > > > To recap, v4.1-rc5-21-g9dac62909451 works, v4.1-rc5-22-g9cd25aac1f44 > > fails, and v4.5-rc6 also fails. If pat_init() isn't called then this > > is a bug in current mainline. I'll have a look later myself and see > > if I can trace out how we expect to get to pat_init() and how that > > might be skipped inadvertently unless someone beats me to it. > > Oh, I see. Can you send me the ".config" file?
And also an output of /proc/cpuinfo, please?
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
| |