Lines Matching refs:tr

36 static void stop_irqsoff_tracer(struct trace_array *tr, int graph);
37 static int start_irqsoff_tracer(struct trace_array *tr, int graph);
101 static int func_prolog_dec(struct trace_array *tr, in func_prolog_dec() argument
123 *data = per_cpu_ptr(tr->trace_buffer.data, cpu); in func_prolog_dec()
141 struct trace_array *tr = irqsoff_trace; in irqsoff_tracer_call() local
145 if (!func_prolog_dec(tr, &data, &flags)) in irqsoff_tracer_call()
148 trace_function(tr, ip, parent_ip, flags, preempt_count()); in irqsoff_tracer_call()
156 irqsoff_set_flag(struct trace_array *tr, u32 old_flags, u32 bit, int set) in irqsoff_set_flag() argument
171 tr->max_latency = 0; in irqsoff_set_flag()
179 struct trace_array *tr = irqsoff_trace; in irqsoff_graph_entry() local
185 if (!func_prolog_dec(tr, &data, &flags)) in irqsoff_graph_entry()
189 ret = __trace_graph_entry(tr, trace, flags, pc); in irqsoff_graph_entry()
197 struct trace_array *tr = irqsoff_trace; in irqsoff_graph_return() local
202 if (!func_prolog_dec(tr, &data, &flags)) in irqsoff_graph_return()
206 __trace_graph_return(tr, trace, flags, pc); in irqsoff_graph_return()
249 __trace_function(struct trace_array *tr, in __trace_function() argument
254 trace_graph_function(tr, ip, parent_ip, flags, pc); in __trace_function()
256 trace_function(tr, ip, parent_ip, flags, pc); in __trace_function()
263 irqsoff_set_flag(struct trace_array *tr, u32 old_flags, u32 bit, int set) in irqsoff_set_flag() argument
298 static int report_latency(struct trace_array *tr, cycle_t delta) in report_latency() argument
304 if (delta <= tr->max_latency) in report_latency()
311 check_critical_timing(struct trace_array *tr, in check_critical_timing() argument
328 if (!report_latency(tr, delta)) in check_critical_timing()
334 if (!report_latency(tr, delta)) in check_critical_timing()
337 __trace_function(tr, CALLER_ADDR0, parent_ip, flags, pc); in check_critical_timing()
339 __trace_stack(tr, flags, 5, pc); in check_critical_timing()
347 tr->max_latency = delta; in check_critical_timing()
348 update_max_tr_single(tr, current, cpu); in check_critical_timing()
359 __trace_function(tr, CALLER_ADDR0, parent_ip, flags, pc); in check_critical_timing()
366 struct trace_array *tr = irqsoff_trace; in start_critical_timing() local
378 data = per_cpu_ptr(tr->trace_buffer.data, cpu); in start_critical_timing()
391 __trace_function(tr, ip, parent_ip, flags, preempt_count()); in start_critical_timing()
402 struct trace_array *tr = irqsoff_trace; in stop_critical_timing() local
416 data = per_cpu_ptr(tr->trace_buffer.data, cpu); in stop_critical_timing()
425 __trace_function(tr, ip, parent_ip, flags, preempt_count()); in stop_critical_timing()
426 check_critical_timing(tr, data, parent_ip ? : ip, cpu); in stop_critical_timing()
526 static int register_irqsoff_function(struct trace_array *tr, int graph, int set) in register_irqsoff_function() argument
538 ret = register_ftrace_function(tr->ops); in register_irqsoff_function()
546 static void unregister_irqsoff_function(struct trace_array *tr, int graph) in unregister_irqsoff_function() argument
554 unregister_ftrace_function(tr->ops); in unregister_irqsoff_function()
559 static void irqsoff_function_set(struct trace_array *tr, int set) in irqsoff_function_set() argument
562 register_irqsoff_function(tr, is_graph(), 1); in irqsoff_function_set()
564 unregister_irqsoff_function(tr, is_graph()); in irqsoff_function_set()
567 static int irqsoff_flag_changed(struct trace_array *tr, u32 mask, int set) in irqsoff_flag_changed() argument
569 struct tracer *tracer = tr->current_trace; in irqsoff_flag_changed()
572 irqsoff_function_set(tr, set); in irqsoff_flag_changed()
577 static int start_irqsoff_tracer(struct trace_array *tr, int graph) in start_irqsoff_tracer() argument
581 ret = register_irqsoff_function(tr, graph, 0); in start_irqsoff_tracer()
591 static void stop_irqsoff_tracer(struct trace_array *tr, int graph) in stop_irqsoff_tracer() argument
595 unregister_irqsoff_function(tr, graph); in stop_irqsoff_tracer()
600 static int __irqsoff_tracer_init(struct trace_array *tr) in __irqsoff_tracer_init() argument
608 set_tracer_flag(tr, TRACE_ITER_OVERWRITE, 1); in __irqsoff_tracer_init()
609 set_tracer_flag(tr, TRACE_ITER_LATENCY_FMT, 1); in __irqsoff_tracer_init()
611 tr->max_latency = 0; in __irqsoff_tracer_init()
612 irqsoff_trace = tr; in __irqsoff_tracer_init()
615 tracing_reset_online_cpus(&tr->trace_buffer); in __irqsoff_tracer_init()
617 ftrace_init_array_ops(tr, irqsoff_tracer_call); in __irqsoff_tracer_init()
620 if (start_irqsoff_tracer(tr, (tr->flags & TRACE_ARRAY_FL_GLOBAL && in __irqsoff_tracer_init()
628 static void irqsoff_tracer_reset(struct trace_array *tr) in irqsoff_tracer_reset() argument
633 stop_irqsoff_tracer(tr, is_graph()); in irqsoff_tracer_reset()
635 set_tracer_flag(tr, TRACE_ITER_LATENCY_FMT, lat_flag); in irqsoff_tracer_reset()
636 set_tracer_flag(tr, TRACE_ITER_OVERWRITE, overwrite_flag); in irqsoff_tracer_reset()
637 ftrace_reset_array_ops(tr); in irqsoff_tracer_reset()
642 static void irqsoff_tracer_start(struct trace_array *tr) in irqsoff_tracer_start() argument
647 static void irqsoff_tracer_stop(struct trace_array *tr) in irqsoff_tracer_stop() argument
653 static int irqsoff_tracer_init(struct trace_array *tr) in irqsoff_tracer_init() argument
657 return __irqsoff_tracer_init(tr); in irqsoff_tracer_init()
686 static int preemptoff_tracer_init(struct trace_array *tr) in preemptoff_tracer_init() argument
690 return __irqsoff_tracer_init(tr); in preemptoff_tracer_init()
722 static int preemptirqsoff_tracer_init(struct trace_array *tr) in preemptirqsoff_tracer_init() argument
726 return __irqsoff_tracer_init(tr); in preemptirqsoff_tracer_init()