aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r--kernel/trace/trace.h36
1 files changed, 20 insertions, 16 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 742fe1349276..94ed45e93a80 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -17,7 +17,6 @@ enum trace_type {
17 TRACE_FN, 17 TRACE_FN,
18 TRACE_CTX, 18 TRACE_CTX,
19 TRACE_WAKE, 19 TRACE_WAKE,
20 TRACE_CONT,
21 TRACE_STACK, 20 TRACE_STACK,
22 TRACE_PRINT, 21 TRACE_PRINT,
23 TRACE_SPECIAL, 22 TRACE_SPECIAL,
@@ -34,7 +33,7 @@ enum trace_type {
34 TRACE_KMEM_FREE, 33 TRACE_KMEM_FREE,
35 TRACE_POWER, 34 TRACE_POWER,
36 35
37 __TRACE_LAST_TYPE 36 __TRACE_LAST_TYPE,
38}; 37};
39 38
40/* 39/*
@@ -199,7 +198,6 @@ struct kmemtrace_free_entry {
199 * NEED_RESCED - reschedule is requested 198 * NEED_RESCED - reschedule is requested
200 * HARDIRQ - inside an interrupt handler 199 * HARDIRQ - inside an interrupt handler
201 * SOFTIRQ - inside a softirq handler 200 * SOFTIRQ - inside a softirq handler
202 * CONT - multiple entries hold the trace item
203 */ 201 */
204enum trace_flag_type { 202enum trace_flag_type {
205 TRACE_FLAG_IRQS_OFF = 0x01, 203 TRACE_FLAG_IRQS_OFF = 0x01,
@@ -207,7 +205,6 @@ enum trace_flag_type {
207 TRACE_FLAG_NEED_RESCHED = 0x04, 205 TRACE_FLAG_NEED_RESCHED = 0x04,
208 TRACE_FLAG_HARDIRQ = 0x08, 206 TRACE_FLAG_HARDIRQ = 0x08,
209 TRACE_FLAG_SOFTIRQ = 0x10, 207 TRACE_FLAG_SOFTIRQ = 0x10,
210 TRACE_FLAG_CONT = 0x20,
211}; 208};
212 209
213#define TRACE_BUF_SIZE 1024 210#define TRACE_BUF_SIZE 1024
@@ -283,7 +280,6 @@ extern void __ftrace_bad_type(void);
283 do { \ 280 do { \
284 IF_ASSIGN(var, ent, struct ftrace_entry, TRACE_FN); \ 281 IF_ASSIGN(var, ent, struct ftrace_entry, TRACE_FN); \
285 IF_ASSIGN(var, ent, struct ctx_switch_entry, 0); \ 282 IF_ASSIGN(var, ent, struct ctx_switch_entry, 0); \
286 IF_ASSIGN(var, ent, struct trace_field_cont, TRACE_CONT); \
287 IF_ASSIGN(var, ent, struct stack_entry, TRACE_STACK); \ 283 IF_ASSIGN(var, ent, struct stack_entry, TRACE_STACK); \
288 IF_ASSIGN(var, ent, struct userstack_entry, TRACE_USER_STACK);\ 284 IF_ASSIGN(var, ent, struct userstack_entry, TRACE_USER_STACK);\
289 IF_ASSIGN(var, ent, struct print_entry, TRACE_PRINT); \ 285 IF_ASSIGN(var, ent, struct print_entry, TRACE_PRINT); \
@@ -365,6 +361,21 @@ struct tracer {
365 struct tracer *next; 361 struct tracer *next;
366 int print_max; 362 int print_max;
367 struct tracer_flags *flags; 363 struct tracer_flags *flags;
364
365 /*
366 * If you change one of the following on tracing runtime, recall
367 * init_tracer_stat()
368 */
369
370 /* Iteration over statistic entries */
371 void *(*stat_start)(void);
372 void *(*stat_next)(void *prev, int idx);
373 /* Compare two entries for sorting (optional) for stats */
374 int (*stat_cmp)(void *p1, void *p2);
375 /* Print a stat entry */
376 int (*stat_show)(struct seq_file *s, void *p);
377 /* Print the headers of your stat entries */
378 int (*stat_headers)(struct seq_file *s);
368}; 379};
369 380
370struct trace_seq { 381struct trace_seq {
@@ -450,6 +461,8 @@ void tracing_start_sched_switch_record(void);
450int register_tracer(struct tracer *type); 461int register_tracer(struct tracer *type);
451void unregister_tracer(struct tracer *type); 462void unregister_tracer(struct tracer *type);
452 463
464void init_tracer_stat(struct tracer *trace);
465
453extern unsigned long nsecs_to_usecs(unsigned long nsecs); 466extern unsigned long nsecs_to_usecs(unsigned long nsecs);
454 467
455extern unsigned long tracing_max_latency; 468extern unsigned long tracing_max_latency;
@@ -481,10 +494,10 @@ struct tracer_switch_ops {
481 void *private; 494 void *private;
482 struct tracer_switch_ops *next; 495 struct tracer_switch_ops *next;
483}; 496};
484
485char *trace_find_cmdline(int pid);
486#endif /* CONFIG_CONTEXT_SWITCH_TRACER */ 497#endif /* CONFIG_CONTEXT_SWITCH_TRACER */
487 498
499extern char *trace_find_cmdline(int pid);
500
488#ifdef CONFIG_DYNAMIC_FTRACE 501#ifdef CONFIG_DYNAMIC_FTRACE
489extern unsigned long ftrace_update_tot_cnt; 502extern unsigned long ftrace_update_tot_cnt;
490#define DYN_FTRACE_TEST_NAME trace_selftest_dynamic_test_func 503#define DYN_FTRACE_TEST_NAME trace_selftest_dynamic_test_func
@@ -513,15 +526,6 @@ extern int trace_selftest_startup_branch(struct tracer *trace,
513#endif /* CONFIG_FTRACE_STARTUP_TEST */ 526#endif /* CONFIG_FTRACE_STARTUP_TEST */
514 527
515extern void *head_page(struct trace_array_cpu *data); 528extern void *head_page(struct trace_array_cpu *data);
516extern int trace_seq_printf(struct trace_seq *s, const char *fmt, ...);
517extern void trace_seq_print_cont(struct trace_seq *s,
518 struct trace_iterator *iter);
519
520extern int
521seq_print_ip_sym(struct trace_seq *s, unsigned long ip,
522 unsigned long sym_flags);
523extern ssize_t trace_seq_to_user(struct trace_seq *s, char __user *ubuf,
524 size_t cnt);
525extern long ns2usecs(cycle_t nsec); 529extern long ns2usecs(cycle_t nsec);
526extern int 530extern int
527trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args); 531trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args);