Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Maciej W. Rozycki
Date: Wednesday, July 14, 2010 - 1:36 pm

On Wed, 14 Jul 2010, Mathieu Desnoyers wrote:


 Hmm, with Pentium Pro and more recent processors there is actually a 
nasty hack that will let you get away with POPF/RET and TF set. ;)  You 
can try it if you like and can arrange for an appropriate scenario.


 Yes, if you return to elsewhere, then that's actually quite desirable 
IMHO.

 This RF flag is quite complicated to handle and there are some errata 
involved too.  If I understand it correctly, all fault-class exception 
handlers are expected to set it manually in the image to be restored if 
they return to the original faulting instruction (that includes the debug 
exception handler if it was invoked as a fault, i.e. in response to an 
instruction breakpoint).  Then all trap-class exception handlers are 
expected to clear the flag (and that includes the debug exception handler 
if it was invoked as a trap, e.g. in response to a data breakpoint or a 
single step).  I haven't checked if Linux gets these bits right, but it 
may be worth doing so.

 For the record -- GDB hardly cares, because it removes any instruction 
breakpoints before it is asked to resume execution of an instruction that 
has a breakpoint set at, single-steps the instruction with all the other 
threads locked out and then reinserts the breakpoints so that they can hit 
again.  Then it proceeds with whatever should be done next to fulfil the 
execution request.

  Maciej
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 0/2] x86: NMI-safe trap handlers, Mathieu Desnoyers, (Wed Jul 14, 8:49 am)
[patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 8:49 am)
[patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Wed Jul 14, 8:49 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 9:28 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Maciej W. Rozycki, (Wed Jul 14, 9:42 am)
Re: [patch 0/2] x86: NMI-safe trap handlers, Andi Kleen, (Wed Jul 14, 10:06 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 10:06 am)
Re: [patch 0/2] x86: NMI-safe trap handlers, Mathieu Desnoyers, (Wed Jul 14, 10:08 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 11:10 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Wed Jul 14, 11:12 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Wed Jul 14, 11:46 am)
Re: [patch 0/2] x86: NMI-safe trap handlers, Andi Kleen, (Wed Jul 14, 11:56 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 12:14 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Maciej W. Rozycki, (Wed Jul 14, 12:21 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 12:36 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 12:41 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 12:54 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Wed Jul 14, 12:56 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Wed Jul 14, 12:58 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 1:05 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Wed Jul 14, 1:07 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Wed Jul 14, 1:08 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 1:17 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Maciej W. Rozycki, (Wed Jul 14, 1:36 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 1:39 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 1:55 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Wed Jul 14, 2:18 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 2:23 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Maciej W. Rozycki, (Wed Jul 14, 2:45 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 2:52 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 3:14 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 3:21 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 3:31 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Maciej W. Rozycki, (Wed Jul 14, 3:31 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 3:31 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 3:37 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 3:48 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Jeremy Fitzhardinge, (Wed Jul 14, 3:51 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 3:56 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 4:02 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Wed Jul 14, 4:09 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 4:11 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 4:22 pm)
Re: [patch 0/2] x86: NMI-safe trap handlers, Tejun Heo, (Wed Jul 14, 4:29 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Tejun Heo, (Wed Jul 14, 4:32 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 4:38 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Wed Jul 14, 4:40 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Jeremy Fitzhardinge, (Wed Jul 14, 4:54 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 6:23 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 6:45 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Thu Jul 15, 7:11 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Thu Jul 15, 7:35 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Thu Jul 15, 7:46 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 7:51 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 8:38 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 9:26 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 9:44 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 9:49 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 10:38 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 11:31 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 11:43 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 11:48 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 1:44 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 3:01 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 3:16 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 3:24 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 3:26 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 3:30 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 3:46 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Thu Jul 15, 3:58 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 4:20 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 4:23 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 4:41 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 4:44 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 4:46 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Thu Jul 15, 4:48 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Fri Jul 16, 3:47 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Fri Jul 16, 4:21 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Fri Jul 16, 4:43 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Fri Jul 16, 5:00 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 5:28 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Fri Jul 16, 5:54 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 7:49 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 8:34 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 8:40 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 9:47 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 9:58 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 10:54 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, H. Peter Anvin, (Fri Jul 16, 11:05 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 11:15 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, H. Peter Anvin, (Fri Jul 16, 11:17 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 11:22 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 11:25 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 11:28 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 11:32 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 11:37 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Jul 16, 12:13 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 12:26 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 12:28 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, H. Peter Anvin, (Fri Jul 16, 12:29 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 12:30 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 12:32 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 12:32 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 12:34 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 12:39 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 2:39 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 3:07 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 3:26 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 3:40 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 3:41 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 6:15 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Sun Jul 18, 2:23 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Sun Jul 18, 2:26 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Sun Jul 18, 4:03 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Sun Jul 18, 10:36 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Sun Jul 18, 11:04 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Sun Jul 18, 11:17 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Sun Jul 18, 11:22 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Sun Jul 18, 11:43 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Sun Jul 18, 12:26 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Mon Jul 19, 12:32 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Tue Aug 3, 10:18 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Tue Aug 3, 11:25 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Tue Aug 3, 11:56 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Tue Aug 3, 12:45 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Tue Aug 3, 1:02 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Tue Aug 3, 1:10 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Tue Aug 3, 1:21 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Tue Aug 3, 1:54 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Tue Aug 3, 2:16 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Tue Aug 3, 11:27 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Dave Chinner, (Tue Aug 3, 11:46 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Tue Aug 3, 11:46 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Wed Aug 4, 12:14 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Wed Aug 4, 12:21 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Peter Zijlstra, (Wed Aug 4, 2:46 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Aug 4, 7:06 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Aug 4, 7:45 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Wed Aug 4, 7:50 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Wed Aug 4, 7:56 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, H. Peter Anvin, (Wed Aug 4, 1:23 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Aug 5, 6:42 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Aug 5, 6:49 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Masami Hiramatsu, (Thu Aug 5, 11:18 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Fri Aug 6, 2:50 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Fri Aug 6, 2:51 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Fri Aug 6, 3:11 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Fri Aug 6, 4:14 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Aug 6, 6:37 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Aug 6, 6:46 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Aug 6, 7:13 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Aug 6, 7:15 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Masami Hiramatsu, (Sat Aug 7, 2:51 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Mon Aug 9, 9:53 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Wed Aug 11, 7:34 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Wed Aug 11, 7:44 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Sun Aug 15, 6:35 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Sun Aug 15, 9:33 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Sun Aug 15, 9:44 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Sun Aug 15, 9:51 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Sun Aug 15, 11:31 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Mon Aug 16, 3:49 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Mon Aug 16, 4:29 am)