Messages in this thread | | | Date | Wed, 14 Jul 2010 15:37:38 -0700 | Subject | Re: [patch 1/2] x86_64 page fault NMI-safe | From | Linus Torvalds <> |
| |
On Wed, Jul 14, 2010 at 3:21 PM, Mathieu Desnoyers <mathieu.desnoyers@efficios.com> wrote: > > If we can find a clean way to handle this NMI vs iret problem outside of the > entry_*.S code, within NMI-specific code, I'm indeed all for it. entry_*.s is > already complicated enough as it is. I think checking the %rip at NMI entry > could work out.
I think the %rip check should be pretty simple - exactly because there is only a single point where the race is open between that 'mov' and the 'iret'. So it's simpler than the (similar) thing we do for debug/nmi stack fixup for sysenter that has to check a range.
The only worry is if that crazy paravirt code wants to paravirtualize the iretq. Afaik, paravirt does that exactly because they screw up iret handling themselves. Maybe we could stop doing that stupid iretq paravirtualization, and just tell the paravirt people to do the same thing I propose, and just allow nesting.
Linus
| |