Lines Matching refs:tr
61 #define do_for_each_event_file(tr, file) \ argument
62 list_for_each_entry(tr, &ftrace_trace_arrays, list) { \
63 list_for_each_entry(file, &tr->events, list)
65 #define do_for_each_event_file_safe(tr, file) \ argument
66 list_for_each_entry(tr, &ftrace_trace_arrays, list) { \
68 list_for_each_entry_safe(file, ___n, &tr->events, list)
221 struct trace_array *tr = trace_file->tr; in trace_event_ignore_this_pid() local
225 pid_list = rcu_dereference_sched(tr->filtered_pids); in trace_event_ignore_this_pid()
229 data = this_cpu_ptr(tr->trace_buffer.data); in trace_event_ignore_this_pid()
342 struct trace_array *tr; in trace_event_enable_cmd_record() local
345 do_for_each_event_file(tr, file) { in trace_event_enable_cmd_record()
365 struct trace_array *tr = file->tr; in __ftrace_event_enable_disable() local
429 if (tr->trace_flags & TRACE_ITER_RECORD_CMD) { in __ftrace_event_enable_disable()
463 static void ftrace_clear_events(struct trace_array *tr) in ftrace_clear_events() argument
468 list_for_each_entry(file, &tr->events, list) { in ftrace_clear_events()
514 struct trace_array *tr = data; in event_filter_pid_sched_switch_probe_pre() local
517 pid_list = rcu_dereference_sched(tr->filtered_pids); in event_filter_pid_sched_switch_probe_pre()
519 this_cpu_write(tr->trace_buffer.data->ignore_pid, in event_filter_pid_sched_switch_probe_pre()
528 struct trace_array *tr = data; in event_filter_pid_sched_switch_probe_post() local
531 pid_list = rcu_dereference_sched(tr->filtered_pids); in event_filter_pid_sched_switch_probe_post()
533 this_cpu_write(tr->trace_buffer.data->ignore_pid, in event_filter_pid_sched_switch_probe_post()
540 struct trace_array *tr = data; in event_filter_pid_sched_wakeup_probe_pre() local
544 if (!this_cpu_read(tr->trace_buffer.data->ignore_pid)) in event_filter_pid_sched_wakeup_probe_pre()
547 pid_list = rcu_dereference_sched(tr->filtered_pids); in event_filter_pid_sched_wakeup_probe_pre()
549 this_cpu_write(tr->trace_buffer.data->ignore_pid, in event_filter_pid_sched_wakeup_probe_pre()
556 struct trace_array *tr = data; in event_filter_pid_sched_wakeup_probe_post() local
560 if (this_cpu_read(tr->trace_buffer.data->ignore_pid)) in event_filter_pid_sched_wakeup_probe_post()
563 pid_list = rcu_dereference_sched(tr->filtered_pids); in event_filter_pid_sched_wakeup_probe_post()
566 this_cpu_write(tr->trace_buffer.data->ignore_pid, in event_filter_pid_sched_wakeup_probe_post()
570 static void __ftrace_clear_event_pids(struct trace_array *tr) in __ftrace_clear_event_pids() argument
576 pid_list = rcu_dereference_protected(tr->filtered_pids, in __ftrace_clear_event_pids()
581 unregister_trace_sched_switch(event_filter_pid_sched_switch_probe_pre, tr); in __ftrace_clear_event_pids()
582 unregister_trace_sched_switch(event_filter_pid_sched_switch_probe_post, tr); in __ftrace_clear_event_pids()
584 unregister_trace_sched_wakeup(event_filter_pid_sched_wakeup_probe_pre, tr); in __ftrace_clear_event_pids()
585 unregister_trace_sched_wakeup(event_filter_pid_sched_wakeup_probe_post, tr); in __ftrace_clear_event_pids()
587 unregister_trace_sched_wakeup_new(event_filter_pid_sched_wakeup_probe_pre, tr); in __ftrace_clear_event_pids()
588 unregister_trace_sched_wakeup_new(event_filter_pid_sched_wakeup_probe_post, tr); in __ftrace_clear_event_pids()
590 unregister_trace_sched_waking(event_filter_pid_sched_wakeup_probe_pre, tr); in __ftrace_clear_event_pids()
591 unregister_trace_sched_waking(event_filter_pid_sched_wakeup_probe_post, tr); in __ftrace_clear_event_pids()
593 list_for_each_entry(file, &tr->events, list) { in __ftrace_clear_event_pids()
598 per_cpu_ptr(tr->trace_buffer.data, cpu)->ignore_pid = false; in __ftrace_clear_event_pids()
600 rcu_assign_pointer(tr->filtered_pids, NULL); in __ftrace_clear_event_pids()
609 static void ftrace_clear_event_pids(struct trace_array *tr) in ftrace_clear_event_pids() argument
612 __ftrace_clear_event_pids(tr); in ftrace_clear_event_pids()
703 __ftrace_set_clr_event_nolock(struct trace_array *tr, const char *match, in __ftrace_set_clr_event_nolock() argument
711 list_for_each_entry(file, &tr->events, list) { in __ftrace_set_clr_event_nolock()
741 static int __ftrace_set_clr_event(struct trace_array *tr, const char *match, in __ftrace_set_clr_event() argument
747 ret = __ftrace_set_clr_event_nolock(tr, match, sub, event, set); in __ftrace_set_clr_event()
753 static int ftrace_set_clr_event(struct trace_array *tr, char *buf, int set) in ftrace_set_clr_event() argument
782 ret = __ftrace_set_clr_event(tr, match, sub, event, set); in ftrace_set_clr_event()
805 struct trace_array *tr = top_trace_array(); in trace_set_clr_event() local
807 if (!tr) in trace_set_clr_event()
810 return __ftrace_set_clr_event(tr, NULL, system, event, set); in trace_set_clr_event()
823 struct trace_array *tr = m->private; in ftrace_event_write() local
846 ret = ftrace_set_clr_event(tr, parser.buffer + !set, set); in ftrace_event_write()
864 struct trace_array *tr = m->private; in t_next() local
868 list_for_each_entry_continue(file, &tr->events, list) { in t_next()
885 struct trace_array *tr = m->private; in t_start() local
890 file = list_entry(&tr->events, struct trace_event_file, list); in t_start()
903 struct trace_array *tr = m->private; in s_next() local
907 list_for_each_entry_continue(file, &tr->events, list) { in s_next()
918 struct trace_array *tr = m->private; in s_start() local
923 file = list_entry(&tr->events, struct trace_event_file, list); in s_start()
953 struct trace_array *tr = m->private; in p_start() local
964 pid_list = rcu_dereference_sched(tr->filtered_pids); in p_start()
982 struct trace_array *tr = m->private; in p_next() local
983 struct trace_pid_list *pid_list = rcu_dereference_sched(tr->filtered_pids); in p_next()
1076 struct trace_array *tr = dir->tr; in system_enable_read() local
1082 list_for_each_entry(file, &tr->events, list) { in system_enable_read()
1141 ret = __ftrace_set_clr_event(dir->tr, NULL, name, NULL, val); in system_enable_write()
1377 struct trace_array *tr; in subsystem_open() local
1386 list_for_each_entry(tr, &ftrace_trace_arrays, list) { in subsystem_open()
1387 list_for_each_entry(dir, &tr->systems, list) { in subsystem_open()
1409 if (trace_array_get(tr) < 0) { in subsystem_open()
1416 trace_array_put(tr); in subsystem_open()
1426 struct trace_array *tr = inode->i_private; in system_tr_open() local
1432 if (trace_array_get(tr) < 0) in system_tr_open()
1438 trace_array_put(tr); in system_tr_open()
1442 dir->tr = tr; in system_tr_open()
1446 trace_array_put(tr); in system_tr_open()
1460 trace_array_put(dir->tr); in subsystem_release()
1565 struct trace_array *tr = data; in ignore_task_cpu() local
1572 pid_list = rcu_dereference_protected(tr->filtered_pids, in ignore_task_cpu()
1575 this_cpu_write(tr->trace_buffer.data->ignore_pid, in ignore_task_cpu()
1584 struct trace_array *tr = m->private; in ftrace_event_pid_write() local
1639 filtered_pids = rcu_dereference_protected(tr->filtered_pids, in ftrace_event_pid_write()
1714 rcu_assign_pointer(tr->filtered_pids, pid_list); in ftrace_event_pid_write()
1716 list_for_each_entry(file, &tr->events, list) { in ftrace_event_pid_write()
1733 tr, INT_MAX); in ftrace_event_pid_write()
1735 tr, 0); in ftrace_event_pid_write()
1738 tr, INT_MAX); in ftrace_event_pid_write()
1740 tr, 0); in ftrace_event_pid_write()
1743 tr, INT_MAX); in ftrace_event_pid_write()
1745 tr, 0); in ftrace_event_pid_write()
1748 tr, INT_MAX); in ftrace_event_pid_write()
1750 tr, 0); in ftrace_event_pid_write()
1758 on_each_cpu(ignore_task_cpu, tr, 1); in ftrace_event_pid_write()
1892 struct trace_array *tr = inode->i_private; in ftrace_event_release() local
1894 trace_array_put(tr); in ftrace_event_release()
1911 struct trace_array *tr = inode->i_private; in ftrace_event_set_open() local
1914 if (trace_array_get(tr) < 0) in ftrace_event_set_open()
1919 ftrace_clear_events(tr); in ftrace_event_set_open()
1923 trace_array_put(tr); in ftrace_event_set_open()
1931 struct trace_array *tr = inode->i_private; in ftrace_event_set_pid_open() local
1934 if (trace_array_get(tr) < 0) in ftrace_event_set_pid_open()
1939 ftrace_clear_event_pids(tr); in ftrace_event_set_pid_open()
1943 trace_array_put(tr); in ftrace_event_set_pid_open()
1981 event_subsystem_dir(struct trace_array *tr, const char *name, in event_subsystem_dir() argument
1989 list_for_each_entry(dir, &tr->systems, list) { in event_subsystem_dir()
2025 dir->tr = tr; in event_subsystem_dir()
2042 list_add(&dir->list, &tr->systems); in event_subsystem_dir()
2059 struct trace_array *tr = file->tr; in event_create_dir() local
2070 d_events = event_subsystem_dir(tr, call->class->system, file, parent); in event_create_dir()
2127 struct trace_array *tr; in remove_event_from_tracers() local
2129 do_for_each_event_file_safe(tr, file) { in remove_event_from_tracers()
2146 struct trace_array *tr; in event_remove() local
2149 do_for_each_event_file(tr, file) { in event_remove()
2328 struct trace_array *tr) in trace_create_new_event() argument
2337 file->tr = tr; in trace_create_new_event()
2341 list_add(&file->list, &tr->events); in trace_create_new_event()
2348 __trace_add_new_event(struct trace_event_call *call, struct trace_array *tr) in __trace_add_new_event() argument
2352 file = trace_create_new_event(call, tr); in __trace_add_new_event()
2356 return event_create_dir(tr->event_dir, file); in __trace_add_new_event()
2366 struct trace_array *tr) in __trace_early_add_new_event() argument
2370 file = trace_create_new_event(call, tr); in __trace_early_add_new_event()
2410 struct trace_array *tr; in probe_remove_event_call() local
2417 do_for_each_event_file(tr, file) { in probe_remove_event_call()
2543 __trace_add_event_dirs(struct trace_array *tr) in __trace_add_event_dirs() argument
2549 ret = __trace_add_new_event(call, tr); in __trace_add_event_dirs()
2557 find_event_file(struct trace_array *tr, const char *system, const char *event) in find_event_file() argument
2563 list_for_each_entry(file, &tr->events, list) { in find_event_file()
2715 struct trace_array *tr = top_trace_array(); in event_enable_func() local
2725 if (!tr) in event_enable_func()
2741 file = find_event_file(tr, system, event); in event_enable_func()
2855 __trace_early_add_event_dirs(struct trace_array *tr) in __trace_early_add_event_dirs() argument
2861 list_for_each_entry(file, &tr->events, list) { in __trace_early_add_event_dirs()
2862 ret = event_create_dir(tr->event_dir, file); in __trace_early_add_event_dirs()
2876 __trace_early_add_events(struct trace_array *tr) in __trace_early_add_events() argument
2886 ret = __trace_early_add_new_event(call, tr); in __trace_early_add_events()
2895 __trace_remove_event_dirs(struct trace_array *tr) in __trace_remove_event_dirs() argument
2899 list_for_each_entry_safe(file, next, &tr->events, list) in __trace_remove_event_dirs()
2905 struct trace_array *tr; in __add_event_to_tracers() local
2907 list_for_each_entry(tr, &ftrace_trace_arrays, list) in __add_event_to_tracers()
2908 __trace_add_new_event(call, tr); in __add_event_to_tracers()
2928 create_event_toplevel_files(struct dentry *parent, struct trace_array *tr) in create_event_toplevel_files() argument
2934 tr, &ftrace_set_event_fops); in create_event_toplevel_files()
2947 tr, &ftrace_set_event_pid_fops); in create_event_toplevel_files()
2959 tr, &ftrace_tr_enable_fops); in create_event_toplevel_files()
2961 tr->event_dir = d_events; in create_event_toplevel_files()
2977 int event_trace_add_tracer(struct dentry *parent, struct trace_array *tr) in event_trace_add_tracer() argument
2983 ret = create_event_toplevel_files(parent, tr); in event_trace_add_tracer()
2988 __trace_add_event_dirs(tr); in event_trace_add_tracer()
3002 early_event_add_tracer(struct dentry *parent, struct trace_array *tr) in early_event_add_tracer() argument
3008 ret = create_event_toplevel_files(parent, tr); in early_event_add_tracer()
3013 __trace_early_add_event_dirs(tr); in early_event_add_tracer()
3022 int event_trace_del_tracer(struct trace_array *tr) in event_trace_del_tracer() argument
3027 clear_event_triggers(tr); in event_trace_del_tracer()
3030 __ftrace_clear_event_pids(tr); in event_trace_del_tracer()
3033 __ftrace_set_clr_event_nolock(tr, NULL, NULL, NULL, 0); in event_trace_del_tracer()
3039 __trace_remove_event_dirs(tr); in event_trace_del_tracer()
3040 tracefs_remove_recursive(tr->event_dir); in event_trace_del_tracer()
3043 tr->event_dir = NULL; in event_trace_del_tracer()
3058 early_enable_events(struct trace_array *tr, bool disable_first) in early_enable_events() argument
3073 ftrace_set_clr_event(tr, token, 0); in early_enable_events()
3075 ret = ftrace_set_clr_event(tr, token, 1); in early_enable_events()
3088 struct trace_array *tr = top_trace_array(); in event_trace_enable() local
3092 if (!tr) in event_trace_enable()
3109 __trace_early_add_events(tr); in event_trace_enable()
3111 early_enable_events(tr, false); in event_trace_enable()
3134 struct trace_array *tr; in event_trace_enable_again() local
3136 tr = top_trace_array(); in event_trace_enable_again()
3137 if (!tr) in event_trace_enable_again()
3140 early_enable_events(tr, true); in event_trace_enable_again()
3149 struct trace_array *tr; in event_trace_init() local
3154 tr = top_trace_array(); in event_trace_init()
3155 if (!tr) in event_trace_init()
3163 tr, &ftrace_avail_fops); in event_trace_init()
3173 ret = early_event_add_tracer(d_tracer, tr); in event_trace_init()
3257 struct trace_array *tr; in event_trace_self_tests() local
3260 tr = top_trace_array(); in event_trace_self_tests()
3261 if (!tr) in event_trace_self_tests()
3266 list_for_each_entry(file, &tr->events, list) { in event_trace_self_tests()
3309 list_for_each_entry(dir, &tr->systems, list) { in event_trace_self_tests()
3319 ret = __ftrace_set_clr_event(tr, NULL, system->name, NULL, 1); in event_trace_self_tests()
3328 ret = __ftrace_set_clr_event(tr, NULL, system->name, NULL, 0); in event_trace_self_tests()
3343 ret = __ftrace_set_clr_event(tr, NULL, NULL, NULL, 1); in event_trace_self_tests()
3352 ret = __ftrace_set_clr_event(tr, NULL, NULL, NULL, 0); in event_trace_self_tests()