Messages in this thread | | | From | Andy Lutomirski <> | Date | Fri, 21 Nov 2014 09:22:41 -0800 | Subject | Re: frequent lockups in 3.18rc4 |
| |
On Fri, Nov 21, 2014 at 9:19 AM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > On Fri, Nov 21, 2014 at 9:08 AM, Steven Rostedt <rostedt@goodmis.org> wrote: >> >> Actually, in_nmi() is now safe for vmalloc faults. In fact, it handles the >> clobbering of the cr2 register just fine. > > That's not what I object to and find incorrect wrt NMI. > > Compare the simple and correct 32-bit code to the complex and > incorrect 64-bit code. > > In particular, look at how the 32-bit code relies *entirely* on hardware state. > > Then look at where the 64-bit code does not.
Both mystify me. Why does the 32-bit version walk down the hierarchy at all instead of just touching the top level?
And why does the 64-bit version assert that the leaves of the tables match? It's already asserted that it's walking down pgd pointers that are *exactly the same pointers*, so of course the stuff they point to is the same.
--Andy
| |