diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/debugfs.h | 8 | ||||
-rw-r--r-- | include/linux/ftrace.h | 15 | ||||
-rw-r--r-- | include/linux/ring_buffer.h | 11 | ||||
-rw-r--r-- | include/linux/sched.h | 2 |
4 files changed, 28 insertions, 8 deletions
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index af0e01d4c663..eb5c2ba2f81a 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
@@ -71,6 +71,9 @@ struct dentry *debugfs_create_bool(const char *name, mode_t mode, | |||
71 | struct dentry *debugfs_create_blob(const char *name, mode_t mode, | 71 | struct dentry *debugfs_create_blob(const char *name, mode_t mode, |
72 | struct dentry *parent, | 72 | struct dentry *parent, |
73 | struct debugfs_blob_wrapper *blob); | 73 | struct debugfs_blob_wrapper *blob); |
74 | |||
75 | bool debugfs_initialized(void); | ||
76 | |||
74 | #else | 77 | #else |
75 | 78 | ||
76 | #include <linux/err.h> | 79 | #include <linux/err.h> |
@@ -183,6 +186,11 @@ static inline struct dentry *debugfs_create_blob(const char *name, mode_t mode, | |||
183 | return ERR_PTR(-ENODEV); | 186 | return ERR_PTR(-ENODEV); |
184 | } | 187 | } |
185 | 188 | ||
189 | static inline bool debugfs_initialized(void) | ||
190 | { | ||
191 | return false; | ||
192 | } | ||
193 | |||
186 | #endif | 194 | #endif |
187 | 195 | ||
188 | #endif | 196 | #endif |
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index db3fed630db3..015a3d22cf74 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
@@ -145,9 +145,15 @@ enum { | |||
145 | }; | 145 | }; |
146 | 146 | ||
147 | struct dyn_ftrace { | 147 | struct dyn_ftrace { |
148 | unsigned long ip; /* address of mcount call-site */ | 148 | union { |
149 | unsigned long flags; | 149 | unsigned long ip; /* address of mcount call-site */ |
150 | struct dyn_arch_ftrace arch; | 150 | struct dyn_ftrace *freelist; |
151 | }; | ||
152 | union { | ||
153 | unsigned long flags; | ||
154 | struct dyn_ftrace *newlist; | ||
155 | }; | ||
156 | struct dyn_arch_ftrace arch; | ||
151 | }; | 157 | }; |
152 | 158 | ||
153 | int ftrace_force_update(void); | 159 | int ftrace_force_update(void); |
@@ -369,8 +375,7 @@ struct ftrace_ret_stack { | |||
369 | extern void return_to_handler(void); | 375 | extern void return_to_handler(void); |
370 | 376 | ||
371 | extern int | 377 | extern int |
372 | ftrace_push_return_trace(unsigned long ret, unsigned long long time, | 378 | ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth); |
373 | unsigned long func, int *depth); | ||
374 | extern void | 379 | extern void |
375 | ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret); | 380 | ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret); |
376 | 381 | ||
diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h index 9e6052bd1a1c..e1b7b2173885 100644 --- a/include/linux/ring_buffer.h +++ b/include/linux/ring_buffer.h | |||
@@ -18,10 +18,13 @@ struct ring_buffer_event { | |||
18 | /** | 18 | /** |
19 | * enum ring_buffer_type - internal ring buffer types | 19 | * enum ring_buffer_type - internal ring buffer types |
20 | * | 20 | * |
21 | * @RINGBUF_TYPE_PADDING: Left over page padding | 21 | * @RINGBUF_TYPE_PADDING: Left over page padding or discarded event |
22 | * array is ignored | 22 | * If time_delta is 0: |
23 | * size is variable depending on how much | 23 | * array is ignored |
24 | * size is variable depending on how much | ||
24 | * padding is needed | 25 | * padding is needed |
26 | * If time_delta is non zero: | ||
27 | * everything else same as RINGBUF_TYPE_DATA | ||
25 | * | 28 | * |
26 | * @RINGBUF_TYPE_TIME_EXTEND: Extend the time delta | 29 | * @RINGBUF_TYPE_TIME_EXTEND: Extend the time delta |
27 | * array[0] = time delta (28 .. 59) | 30 | * array[0] = time delta (28 .. 59) |
@@ -65,6 +68,8 @@ ring_buffer_event_time_delta(struct ring_buffer_event *event) | |||
65 | return event->time_delta; | 68 | return event->time_delta; |
66 | } | 69 | } |
67 | 70 | ||
71 | void ring_buffer_event_discard(struct ring_buffer_event *event); | ||
72 | |||
68 | /* | 73 | /* |
69 | * size is in bytes for each per CPU buffer. | 74 | * size is in bytes for each per CPU buffer. |
70 | */ | 75 | */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 89cd308cc7a5..471e36d30123 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1409,6 +1409,8 @@ struct task_struct { | |||
1409 | int curr_ret_stack; | 1409 | int curr_ret_stack; |
1410 | /* Stack of return addresses for return function tracing */ | 1410 | /* Stack of return addresses for return function tracing */ |
1411 | struct ftrace_ret_stack *ret_stack; | 1411 | struct ftrace_ret_stack *ret_stack; |
1412 | /* time stamp for last schedule */ | ||
1413 | unsigned long long ftrace_timestamp; | ||
1412 | /* | 1414 | /* |
1413 | * Number of functions that haven't been traced | 1415 | * Number of functions that haven't been traced |
1414 | * because of depth overrun. | 1416 | * because of depth overrun. |