Lines Matching refs:tr

40 static void stop_irqsoff_tracer(struct trace_array *tr, int graph);
41 static int start_irqsoff_tracer(struct trace_array *tr, int graph);
65 static int irqsoff_display_graph(struct trace_array *tr, int set);
66 # define is_graph(tr) ((tr)->trace_flags & TRACE_ITER_DISPLAY_GRAPH)
68 static inline int irqsoff_display_graph(struct trace_array *tr, int set)
72 # define is_graph(tr) false
99 static int func_prolog_dec(struct trace_array *tr,
125 *data = per_cpu_ptr(tr->array_buffer.data, cpu);
143 struct trace_array *tr = irqsoff_trace;
148 if (!func_prolog_dec(tr, &data, &flags))
153 trace_function(tr, ip, parent_ip, trace_ctx);
160 static int irqsoff_display_graph(struct trace_array *tr, int set)
164 if (!(is_graph(tr) ^ set))
172 tr->max_latency = 0;
180 struct trace_array *tr = irqsoff_trace;
198 if (!func_prolog_dec(tr, &data, &flags))
202 ret = __trace_graph_entry(tr, trace, trace_ctx);
210 struct trace_array *tr = irqsoff_trace;
217 if (!func_prolog_dec(tr, &data, &flags))
221 __trace_graph_return(tr, trace, trace_ctx);
232 if (is_graph(iter->tr))
255 if (is_graph(iter->tr))
263 struct trace_array *tr = irqsoff_trace;
265 if (is_graph(tr))
272 __trace_function(struct trace_array *tr,
276 if (is_graph(tr))
277 trace_graph_function(tr, ip, parent_ip, trace_ctx);
279 trace_function(tr, ip, parent_ip, trace_ctx);
309 static bool report_latency(struct trace_array *tr, u64 delta)
315 if (delta <= tr->max_latency)
322 check_critical_timing(struct trace_array *tr,
337 if (!report_latency(tr, delta))
343 if (!report_latency(tr, delta))
346 __trace_function(tr, CALLER_ADDR0, parent_ip, trace_ctx);
348 __trace_stack(tr, trace_ctx, 5);
356 tr->max_latency = delta;
357 update_max_tr_single(tr, current, cpu);
368 __trace_function(tr, CALLER_ADDR0, parent_ip, trace_ctx);
375 struct trace_array *tr = irqsoff_trace;
386 data = per_cpu_ptr(tr->array_buffer.data, cpu);
397 __trace_function(tr, ip, parent_ip, tracing_gen_ctx());
408 struct trace_array *tr = irqsoff_trace;
422 data = per_cpu_ptr(tr->array_buffer.data, cpu);
431 __trace_function(tr, ip, parent_ip, trace_ctx);
432 check_critical_timing(tr, data, parent_ip ? : ip, cpu);
457 static int register_irqsoff_function(struct trace_array *tr, int graph, int set)
462 if (function_enabled || (!set && !(tr->trace_flags & TRACE_ITER_FUNCTION)))
468 ret = register_ftrace_function(tr->ops);
476 static void unregister_irqsoff_function(struct trace_array *tr, int graph)
484 unregister_ftrace_function(tr->ops);
489 static int irqsoff_function_set(struct trace_array *tr, u32 mask, int set)
495 register_irqsoff_function(tr, is_graph(tr), 1);
497 unregister_irqsoff_function(tr, is_graph(tr));
501 static int register_irqsoff_function(struct trace_array *tr, int graph, int set)
505 static void unregister_irqsoff_function(struct trace_array *tr, int graph) { }
506 static inline int irqsoff_function_set(struct trace_array *tr, u32 mask, int set)
512 static int irqsoff_flag_changed(struct trace_array *tr, u32 mask, int set)
514 struct tracer *tracer = tr->current_trace;
516 if (irqsoff_function_set(tr, mask, set))
521 return irqsoff_display_graph(tr, set);
527 static int start_irqsoff_tracer(struct trace_array *tr, int graph)
531 ret = register_irqsoff_function(tr, graph, 0);
541 static void stop_irqsoff_tracer(struct trace_array *tr, int graph)
545 unregister_irqsoff_function(tr, graph);
550 static int __irqsoff_tracer_init(struct trace_array *tr)
555 save_flags = tr->trace_flags;
558 set_tracer_flag(tr, TRACE_ITER_OVERWRITE, 1);
559 set_tracer_flag(tr, TRACE_ITER_LATENCY_FMT, 1);
561 set_tracer_flag(tr, TRACE_ITER_PAUSE_ON_TRACE, 1);
563 tr->max_latency = 0;
564 irqsoff_trace = tr;
568 ftrace_init_array_ops(tr, irqsoff_tracer_call);
571 if (start_irqsoff_tracer(tr, (tr->flags & TRACE_ARRAY_FL_GLOBAL &&
572 is_graph(tr))))
579 static void __irqsoff_tracer_reset(struct trace_array *tr)
585 stop_irqsoff_tracer(tr, is_graph(tr));
587 set_tracer_flag(tr, TRACE_ITER_LATENCY_FMT, lat_flag);
588 set_tracer_flag(tr, TRACE_ITER_OVERWRITE, overwrite_flag);
589 set_tracer_flag(tr, TRACE_ITER_PAUSE_ON_TRACE, pause_flag);
590 ftrace_reset_array_ops(tr);
595 static void irqsoff_tracer_start(struct trace_array *tr)
600 static void irqsoff_tracer_stop(struct trace_array *tr)
623 static int irqsoff_tracer_init(struct trace_array *tr)
627 return __irqsoff_tracer_init(tr);
630 static void irqsoff_tracer_reset(struct trace_array *tr)
632 __irqsoff_tracer_reset(tr);
669 static int preemptoff_tracer_init(struct trace_array *tr)
673 return __irqsoff_tracer_init(tr);
676 static void preemptoff_tracer_reset(struct trace_array *tr)
678 __irqsoff_tracer_reset(tr);
704 static int preemptirqsoff_tracer_init(struct trace_array *tr)
708 return __irqsoff_tracer_init(tr);
711 static void preemptirqsoff_tracer_reset(struct trace_array *tr)
713 __irqsoff_tracer_reset(tr);