sched: Hook sched_balance_self() into sched_class::select_task_rq()
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / include / trace / boot.h
1 #ifndef _LINUX_TRACE_BOOT_H
2 #define _LINUX_TRACE_BOOT_H
3
4 #include <linux/module.h>
5 #include <linux/kallsyms.h>
6 #include <linux/init.h>
7
8 /*
9 * Structure which defines the trace of an initcall
10 * while it is called.
11 * You don't have to fill the func field since it is
12 * only used internally by the tracer.
13 */
14 struct boot_trace_call {
15 pid_t caller;
16 char func[KSYM_SYMBOL_LEN];
17 };
18
19 /*
20 * Structure which defines the trace of an initcall
21 * while it returns.
22 */
23 struct boot_trace_ret {
24 char func[KSYM_SYMBOL_LEN];
25 int result;
26 unsigned long long duration; /* nsecs */
27 };
28
29 #ifdef CONFIG_BOOT_TRACER
30 /* Append the traces on the ring-buffer */
31 extern void trace_boot_call(struct boot_trace_call *bt, initcall_t fn);
32 extern void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn);
33
34 /* Tells the tracer that smp_pre_initcall is finished.
35 * So we can start the tracing
36 */
37 extern void start_boot_trace(void);
38
39 /* Resume the tracing of other necessary events
40 * such as sched switches
41 */
42 extern void enable_boot_trace(void);
43
44 /* Suspend this tracing. Actually, only sched_switches tracing have
45 * to be suspended. Initcalls doesn't need it.)
46 */
47 extern void disable_boot_trace(void);
48 #else
49 static inline
50 void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) { }
51
52 static inline
53 void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) { }
54
55 static inline void start_boot_trace(void) { }
56 static inline void enable_boot_trace(void) { }
57 static inline void disable_boot_trace(void) { }
58 #endif /* CONFIG_BOOT_TRACER */
59
60 #endif /* __LINUX_TRACE_BOOT_H */