Files
linux/include/linux
Steven Rostedt 08d636b6d4 ftrace/x86: Have arch x86_64 use breakpoints instead of stop machine
This method changes x86 to add a breakpoint to the mcount locations
instead of calling stop machine.

Now that iret can be handled by NMIs, we perform the following to
update code:

1) Add a breakpoint to all locations that will be modified

2) Sync all cores

3) Update all locations to be either a nop or call (except breakpoint
   op)

4) Sync all cores

5) Remove the breakpoint with the new code.

6) Sync all cores

[
  Added updates that Masami suggested:
   Use unlikely(modifying_ftrace_code) in int3 trap to keep kprobes efficient.
   Don't use NOTIFY_* in ftrace handler in int3 as it is not a notifier.
]

Cc: H. Peter Anvin <hpa@zytor.com>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2012-04-27 21:10:44 -04:00
..
2011-11-02 16:07:03 -07:00
2011-10-26 15:43:25 -04:00
2012-03-20 21:29:46 -04:00
2012-03-21 17:55:01 -07:00
2012-03-16 20:35:02 +00:00
2012-03-16 20:35:02 +00:00
2012-02-28 16:02:54 +01:00
2012-01-03 22:54:57 -05:00
2011-10-29 21:20:22 +02:00
2012-03-29 15:38:31 +10:30
2012-03-23 16:58:38 -07:00
2011-12-13 09:26:45 +00:00
2012-03-20 21:29:37 -04:00
2012-03-20 21:29:53 -04:00
2012-02-20 19:46:36 +11:00
2012-01-04 08:56:31 -06:00
2011-10-31 20:19:04 +00:00
2011-11-26 14:59:39 -05:00
2012-03-28 18:30:03 +01:00
2011-12-11 18:25:16 -05:00
2012-01-12 20:13:04 -08:00
2012-04-05 15:30:34 -07:00
2011-12-13 11:58:49 +01:00
2012-02-28 17:10:21 +00:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-27 22:45:26 -04:00
2012-01-03 22:55:17 -05:00
2012-01-09 13:52:09 +01:00
2012-03-08 10:50:35 -08:00
2012-03-21 17:54:57 -07:00
2012-03-08 10:50:35 -08:00
2012-01-17 15:40:51 -08:00
2011-12-27 11:26:41 +02:00
2012-02-29 15:35:41 -06:00
2012-03-15 21:41:34 +01:00
2012-03-03 15:04:45 -05:00
2012-03-28 17:19:28 -07:00
2011-11-14 00:47:54 -05:00
2012-04-03 17:23:23 -04:00
2012-03-05 15:26:47 -05:00
2012-03-21 17:54:58 -07:00
2012-03-21 17:55:01 -07:00
2012-01-06 12:10:26 -08:00
2012-03-16 21:49:24 +01:00
2011-12-13 09:26:45 +00:00
2011-11-02 16:07:02 -07:00
2012-03-20 21:29:38 -04:00
2012-01-03 22:55:07 -05:00
2012-03-28 18:30:03 +01:00
2012-03-08 11:38:50 -08:00
2012-03-12 22:19:13 +01:00
2012-01-09 09:33:57 +09:00
2012-03-06 11:01:33 +02:00
2012-03-19 16:53:08 -04:00
2011-12-13 09:26:45 +00:00
2011-10-31 17:30:47 -07:00
2012-01-03 22:54:56 -05:00
2012-03-22 19:43:43 -07:00
2012-03-28 18:30:03 +01:00
2011-11-02 16:07:02 -07:00
2012-03-31 08:09:50 +05:30
2012-03-08 10:50:35 -08:00
2012-03-28 18:30:03 +01:00