History

ftrace: add ftrace_kill_atomic

It has been suggested that I add a way to disable the function tracer on an oops. This code adds a ftrace_kill_atomic. It is not meant to be used in normal situations. It will disable the ftrace tracer, but will not perform the nice shutdown that requires scheduling.

Steven Rostedt committed 18 years ago

Commit a2bb6a31 parent 26bc83f2 files · +16 −0Browse files

Unified · Split

2 files
  1. include/linux/ftrace.h +1 −0
  2. kernel/trace/ftrace.c +15 −0
include/linux/ftrace.h+1−0
@@ -89,6 +89,7 @@ void ftrace_enable_daemon(void); · 88 unmodified lines
8989
9090 /* totally disable ftrace - can not re-enable after this */
9191 void ftrace_kill(void);
92+void ftrace_kill_atomic(void);
9293
9394 static inline void tracer_disable(void)
9495 {
kernel/trace/ftrace.c+15−0
@@ -1601,6 +1601,21 @@ core_initcall(ftrace_dynamic_init); · 1600 unmodified lines
16011601 # define ftrace_force_shutdown() do { } while (0)
16021602 #endif /* CONFIG_DYNAMIC_FTRACE */
16031603
1604+/**
1605+ * ftrace_kill_atomic - kill ftrace from critical sections
1606+ *
1607+ * This function should be used by panic code. It stops ftrace
1608+ * but in a not so nice way. If you need to simply kill ftrace
1609+ * from a non-atomic section, use ftrace_kill.
1610+ */
1611+void ftrace_kill_atomic(void)
1612+{
1613+ ftrace_disabled = 1;
1614+ ftrace_enabled = 0;
1615+ ftraced_suspend = -1;
1616+ clear_ftrace_function();
1617+}
1618+
16041619 /**
16051620 * ftrace_kill - totally shutdown ftrace
16061621 *