Lines Matching defs:tr

72 #define do_for_each_event_file(tr, file)			\
73 list_for_each_entry(tr, &ftrace_trace_arrays, list) { \
74 list_for_each_entry(file, &tr->events, list)
76 #define do_for_each_event_file_safe(tr, file) \
77 list_for_each_entry(tr, &ftrace_trace_arrays, list) { \
79 list_for_each_entry_safe(file, ___n, &tr->events, list)
478 struct trace_array *tr = trace_file->tr;
483 pid_list = rcu_dereference_raw(tr->filtered_pids);
484 no_pid_list = rcu_dereference_raw(tr->filtered_no_pids);
489 data = this_cpu_ptr(tr->array_buffer.data);
568 struct trace_array *tr;
572 do_for_each_event_file(tr, file) {
590 struct trace_array *tr;
594 do_for_each_event_file(tr, file) {
613 struct trace_array *tr = file->tr;
688 if (tr->trace_flags & TRACE_ITER_RECORD_CMD) {
694 if (tr->trace_flags & TRACE_ITER_RECORD_TGID) {
733 static void ftrace_clear_events(struct trace_array *tr)
738 list_for_each_entry(file, &tr->events, list) {
748 struct trace_array *tr = data;
750 pid_list = rcu_dereference_raw(tr->filtered_pids);
753 pid_list = rcu_dereference_raw(tr->filtered_no_pids);
763 struct trace_array *tr = data;
765 pid_list = rcu_dereference_sched(tr->filtered_pids);
768 pid_list = rcu_dereference_sched(tr->filtered_no_pids);
772 void trace_event_follow_fork(struct trace_array *tr, bool enable)
776 tr, INT_MIN);
778 tr, INT_MAX);
781 tr);
783 tr);
793 struct trace_array *tr = data;
798 pid_list = rcu_dereference_sched(tr->filtered_pids);
799 no_pid_list = rcu_dereference_sched(tr->filtered_no_pids);
808 this_cpu_write(tr->array_buffer.data->ignore_pid, ret ||
819 struct trace_array *tr = data;
823 pid_list = rcu_dereference_sched(tr->filtered_pids);
824 no_pid_list = rcu_dereference_sched(tr->filtered_no_pids);
826 this_cpu_write(tr->array_buffer.data->ignore_pid,
833 struct trace_array *tr = data;
838 if (!this_cpu_read(tr->array_buffer.data->ignore_pid))
841 pid_list = rcu_dereference_sched(tr->filtered_pids);
842 no_pid_list = rcu_dereference_sched(tr->filtered_no_pids);
844 this_cpu_write(tr->array_buffer.data->ignore_pid,
851 struct trace_array *tr = data;
856 if (this_cpu_read(tr->array_buffer.data->ignore_pid))
859 pid_list = rcu_dereference_sched(tr->filtered_pids);
860 no_pid_list = rcu_dereference_sched(tr->filtered_no_pids);
863 this_cpu_write(tr->array_buffer.data->ignore_pid,
867 static void unregister_pid_events(struct trace_array *tr)
869 unregister_trace_sched_switch(event_filter_pid_sched_switch_probe_pre, tr);
870 unregister_trace_sched_switch(event_filter_pid_sched_switch_probe_post, tr);
872 unregister_trace_sched_wakeup(event_filter_pid_sched_wakeup_probe_pre, tr);
873 unregister_trace_sched_wakeup(event_filter_pid_sched_wakeup_probe_post, tr);
875 unregister_trace_sched_wakeup_new(event_filter_pid_sched_wakeup_probe_pre, tr);
876 unregister_trace_sched_wakeup_new(event_filter_pid_sched_wakeup_probe_post, tr);
878 unregister_trace_sched_waking(event_filter_pid_sched_wakeup_probe_pre, tr);
879 unregister_trace_sched_waking(event_filter_pid_sched_wakeup_probe_post, tr);
882 static void __ftrace_clear_event_pids(struct trace_array *tr, int type)
889 pid_list = rcu_dereference_protected(tr->filtered_pids,
891 no_pid_list = rcu_dereference_protected(tr->filtered_no_pids,
899 unregister_pid_events(tr);
901 list_for_each_entry(file, &tr->events, list) {
906 per_cpu_ptr(tr->array_buffer.data, cpu)->ignore_pid = false;
910 rcu_assign_pointer(tr->filtered_pids, NULL);
913 rcu_assign_pointer(tr->filtered_no_pids, NULL);
925 static void ftrace_clear_event_pids(struct trace_array *tr, int type)
928 __ftrace_clear_event_pids(tr, type);
1028 __ftrace_set_clr_event_nolock(struct trace_array *tr, const char *match,
1037 list_for_each_entry(file, &tr->events, list) {
1075 static int __ftrace_set_clr_event(struct trace_array *tr, const char *match,
1081 ret = __ftrace_set_clr_event_nolock(tr, match, sub, event, set);
1087 int ftrace_set_clr_event(struct trace_array *tr, char *buf, int set)
1092 if (!tr)
1118 ret = __ftrace_set_clr_event(tr, match, sub, event, set);
1141 struct trace_array *tr = top_trace_array();
1143 if (!tr)
1146 return __ftrace_set_clr_event(tr, NULL, system, event, set);
1152 * @tr: concerned trace array.
1163 int trace_array_set_clr_event(struct trace_array *tr, const char *system,
1168 if (!tr)
1172 return __ftrace_set_clr_event(tr, NULL, system, event, set);
1185 struct trace_array *tr = m->private;
1191 ret = tracing_update_buffers(tr);
1206 ret = ftrace_set_clr_event(tr, parser.buffer + !set, set);
1224 struct trace_array *tr = m->private;
1228 list_for_each_entry_continue(file, &tr->events, list) {
1245 struct trace_array *tr = m->private;
1250 file = list_entry(&tr->events, struct trace_event_file, list);
1263 struct trace_array *tr = m->private;
1267 list_for_each_entry_continue(file, &tr->events, list) {
1278 struct trace_array *tr = m->private;
1283 file = list_entry(&tr->events, struct trace_event_file, list);
1312 struct trace_array *tr = m->private;
1316 pid_list = rcu_dereference_sched(tr->filtered_pids);
1318 pid_list = rcu_dereference_sched(tr->filtered_no_pids);
1339 struct trace_array *tr = m->private;
1343 * tr->filtered_pids as p_start() has.
1344 * If we just passed the tr->filtered_pids around, then RCU would
1351 pid_list = rcu_dereference_sched(tr->filtered_pids);
1353 pid_list = rcu_dereference_sched(tr->filtered_no_pids);
1429 ret = tracing_update_buffers(file->tr);
1457 struct trace_array *tr = dir->tr;
1463 list_for_each_entry(file, &tr->events, list) {
1509 ret = tracing_update_buffers(dir->tr);
1523 ret = __ftrace_set_clr_event(dir->tr, NULL, name, NULL, val);
1758 struct trace_array *tr = NULL, *iter_tr;
1772 tr = iter_tr;
1790 if (trace_array_get(tr) < 0) {
1797 trace_array_put(tr);
1807 struct trace_array *tr = inode->i_private;
1810 /* Make a temporary dir that has no system but points to tr */
1820 dir->tr = tr;
1830 trace_array_put(dir->tr);
1900 struct trace_array *tr = filp->private_data;
1913 ring_buffer_print_page_header(tr->array_buffer.buffer, s);
1948 struct trace_array *tr = data;
1956 pid_list = rcu_dereference_protected(tr->filtered_pids,
1958 no_pid_list = rcu_dereference_protected(tr->filtered_no_pids,
1961 this_cpu_write(tr->array_buffer.data->ignore_pid,
1965 static void register_pid_events(struct trace_array *tr)
1974 tr, INT_MAX);
1976 tr, 0);
1979 tr, INT_MAX);
1981 tr, 0);
1984 tr, INT_MAX);
1986 tr, 0);
1989 tr, INT_MAX);
1991 tr, 0);
1999 struct trace_array *tr = m->private;
2009 ret = tracing_update_buffers(tr);
2016 filtered_pids = rcu_dereference_protected(tr->filtered_pids,
2018 other_pids = rcu_dereference_protected(tr->filtered_no_pids,
2021 filtered_pids = rcu_dereference_protected(tr->filtered_no_pids,
2023 other_pids = rcu_dereference_protected(tr->filtered_pids,
2032 rcu_assign_pointer(tr->filtered_pids, pid_list);
2034 rcu_assign_pointer(tr->filtered_no_pids, pid_list);
2036 list_for_each_entry(file, &tr->events, list) {
2044 register_pid_events(tr);
2052 on_each_cpu(ignore_task_cpu, tr, 1);
2225 /* copy tr over to seq ops */
2233 struct trace_array *tr = inode->i_private;
2235 trace_array_put(tr);
2253 struct trace_array *tr = inode->i_private;
2256 ret = tracing_check_open_get_tr(tr);
2262 ftrace_clear_events(tr);
2266 trace_array_put(tr);
2274 struct trace_array *tr = inode->i_private;
2277 ret = tracing_check_open_get_tr(tr);
2283 ftrace_clear_event_pids(tr, TRACE_PIDS);
2287 trace_array_put(tr);
2295 struct trace_array *tr = inode->i_private;
2298 ret = tracing_check_open_get_tr(tr);
2304 ftrace_clear_event_pids(tr, TRACE_NO_PIDS);
2308 trace_array_put(tr);
2360 event_subsystem_dir(struct trace_array *tr, const char *name,
2379 list_for_each_entry(dir, &tr->systems, list) {
2422 dir->tr = tr;
2428 list_add(&dir->list, &tr->systems);
2567 struct trace_array *tr = file->tr;
2625 e_events = event_subsystem_dir(tr, call->class->system, file, parent);
2655 struct trace_array *tr;
2657 do_for_each_event_file_safe(tr, file) {
2674 struct trace_array *tr;
2677 do_for_each_event_file(tr, file) {
2682 tr->clear_trace = true;
2970 struct trace_array *tr)
2977 if (!event_in_systems(call, tr->system_names))
2984 pid_list = rcu_dereference_protected(tr->filtered_pids,
2986 no_pid_list = rcu_dereference_protected(tr->filtered_no_pids,
2994 file->tr = tr;
2998 list_add(&file->list, &tr->events);
3042 __trace_add_new_event(struct trace_event_call *call, struct trace_array *tr)
3046 file = trace_create_new_event(call, tr);
3049 * allocation, or NULL if the event is not part of the tr->system_names.
3050 * When the event is not part of the tr->system_names, return zero, not
3060 return event_create_dir(tr->event_dir, file);
3090 struct trace_array *tr)
3095 file = trace_create_new_event(call, tr);
3098 * allocation, or NULL if the event is not part of the tr->system_names.
3099 * When the event is not part of the tr->system_names, return zero, not
3151 struct trace_array *tr;
3158 do_for_each_event_file(tr, file) {
3170 tr->clear_trace = true;
3185 list_for_each_entry(tr, &ftrace_trace_arrays, list) {
3186 tr->clear_trace = false;
3300 __trace_add_event_dirs(struct trace_array *tr)
3306 ret = __trace_add_new_event(call, tr);
3315 __find_event_file(struct trace_array *tr, const char *system, const char *event)
3321 list_for_each_entry(file, &tr->events, list) {
3338 find_event_file(struct trace_array *tr, const char *system, const char *event)
3342 file = __find_event_file(tr, system, event);
3374 struct trace_array *tr = top_trace_array();
3379 tr = trace_array_find_get(instance);
3380 if (!tr)
3383 ret = trace_array_get(tr);
3390 file = find_event_file(tr, system, event);
3392 trace_array_put(tr);
3400 trace_array_put(tr);
3431 trace_array_put(file->tr);
3458 struct trace_array *tr, struct ftrace_probe_ops *ops,
3475 struct trace_array *tr, struct ftrace_probe_ops *ops,
3532 event_enable_init(struct ftrace_probe_ops *ops, struct trace_array *tr,
3570 event_enable_free(struct ftrace_probe_ops *ops, struct trace_array *tr,
3623 event_enable_func(struct trace_array *tr, struct ftrace_hash *hash,
3635 if (!tr)
3651 file = find_event_file(tr, system, event);
3663 ret = unregister_ftrace_function_probe_func(glob+1, tr, ops);
3706 ret = register_ftrace_function_probe(glob, tr, ops, data);
3765 static void __trace_early_add_event_dirs(struct trace_array *tr)
3771 list_for_each_entry(file, &tr->events, list) {
3772 ret = event_create_dir(tr->event_dir, file);
3785 void __trace_early_add_events(struct trace_array *tr)
3796 ret = __trace_early_add_new_event(call, tr);
3805 __trace_remove_event_dirs(struct trace_array *tr)
3809 list_for_each_entry_safe(file, next, &tr->events, list)
3815 struct trace_array *tr;
3817 list_for_each_entry(tr, &ftrace_trace_arrays, list)
3818 __trace_add_new_event(call, tr);
3860 create_event_toplevel_files(struct dentry *parent, struct trace_array *tr)
3881 tr, &ftrace_set_event_fops);
3888 nr_entries, tr);
3897 tr, &ftrace_set_event_pid_fops);
3900 TRACE_MODE_WRITE, parent, tr,
3903 tr->event_dir = e_events;
3911 * @tr: The trace array associated with these events
3921 int event_trace_add_tracer(struct dentry *parent, struct trace_array *tr)
3927 ret = create_event_toplevel_files(parent, tr);
3932 /* If tr already has the event list, it is initialized in early boot. */
3933 if (unlikely(!list_empty(&tr->events)))
3934 __trace_early_add_event_dirs(tr);
3936 __trace_add_event_dirs(tr);
3948 early_event_add_tracer(struct dentry *parent, struct trace_array *tr)
3954 ret = create_event_toplevel_files(parent, tr);
3959 __trace_early_add_event_dirs(tr);
3969 int event_trace_del_tracer(struct trace_array *tr)
3974 clear_event_triggers(tr);
3977 __ftrace_clear_event_pids(tr, TRACE_PIDS | TRACE_NO_PIDS);
3980 __ftrace_set_clr_event_nolock(tr, NULL, NULL, NULL, 0);
3986 __trace_remove_event_dirs(tr);
3987 eventfs_remove_events_dir(tr->event_dir);
3990 tr->event_dir = NULL;
4003 early_enable_events(struct trace_array *tr, char *buf, bool disable_first)
4017 ftrace_set_clr_event(tr, token, 0);
4019 ret = ftrace_set_clr_event(tr, token, 1);
4032 struct trace_array *tr = top_trace_array();
4036 if (!tr)
4055 __trace_early_add_events(tr);
4057 early_enable_events(tr, bootup_event_buf, false);
4079 struct trace_array *tr;
4081 tr = top_trace_array();
4082 if (!tr)
4085 early_enable_events(tr, bootup_event_buf, true);
4106 struct trace_array *tr;
4109 tr = top_trace_array();
4110 if (!tr)
4114 NULL, tr, &ftrace_avail_fops);
4116 ret = early_event_add_tracer(NULL, tr);
4202 struct trace_array *tr;
4205 tr = top_trace_array();
4206 if (!tr)
4211 list_for_each_entry(file, &tr->events, list) {
4254 list_for_each_entry(dir, &tr->systems, list) {
4264 ret = __ftrace_set_clr_event(tr, NULL, system->name, NULL, 1);
4273 ret = __ftrace_set_clr_event(tr, NULL, system->name, NULL, 0);
4288 ret = __ftrace_set_clr_event(tr, NULL, NULL, NULL, 1);
4297 ret = __ftrace_set_clr_event(tr, NULL, NULL, NULL, 0);
4356 event_trace_file.tr = top_trace_array();
4357 if (WARN_ON(!event_trace_file.tr))