diff options
Diffstat (limited to 'kernel/trace')
-rw-r--r-- | kernel/trace/trace_events.c | 20 | ||||
-rw-r--r-- | kernel/trace/trace_events_filter.c | 6 | ||||
-rw-r--r-- | kernel/trace/trace_export.c | 6 | ||||
-rw-r--r-- | kernel/trace/trace_kprobe.c | 12 | ||||
-rw-r--r-- | kernel/trace/trace_syscalls.c | 4 |
5 files changed, 28 insertions, 20 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index c697c7043349..2f54b48d3632 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c | |||
@@ -176,10 +176,10 @@ static int __ftrace_set_clr_event(const char *match, const char *sub, | |||
176 | 176 | ||
177 | if (match && | 177 | if (match && |
178 | strcmp(match, call->name) != 0 && | 178 | strcmp(match, call->name) != 0 && |
179 | strcmp(match, call->system) != 0) | 179 | strcmp(match, call->class->system) != 0) |
180 | continue; | 180 | continue; |
181 | 181 | ||
182 | if (sub && strcmp(sub, call->system) != 0) | 182 | if (sub && strcmp(sub, call->class->system) != 0) |
183 | continue; | 183 | continue; |
184 | 184 | ||
185 | if (event && strcmp(event, call->name) != 0) | 185 | if (event && strcmp(event, call->name) != 0) |
@@ -355,8 +355,8 @@ static int t_show(struct seq_file *m, void *v) | |||
355 | { | 355 | { |
356 | struct ftrace_event_call *call = v; | 356 | struct ftrace_event_call *call = v; |
357 | 357 | ||
358 | if (strcmp(call->system, TRACE_SYSTEM) != 0) | 358 | if (strcmp(call->class->system, TRACE_SYSTEM) != 0) |
359 | seq_printf(m, "%s:", call->system); | 359 | seq_printf(m, "%s:", call->class->system); |
360 | seq_printf(m, "%s\n", call->name); | 360 | seq_printf(m, "%s\n", call->name); |
361 | 361 | ||
362 | return 0; | 362 | return 0; |
@@ -453,7 +453,7 @@ system_enable_read(struct file *filp, char __user *ubuf, size_t cnt, | |||
453 | if (!call->name || !call->regfunc) | 453 | if (!call->name || !call->regfunc) |
454 | continue; | 454 | continue; |
455 | 455 | ||
456 | if (system && strcmp(call->system, system) != 0) | 456 | if (system && strcmp(call->class->system, system) != 0) |
457 | continue; | 457 | continue; |
458 | 458 | ||
459 | /* | 459 | /* |
@@ -925,8 +925,8 @@ event_create_dir(struct ftrace_event_call *call, struct dentry *d_events, | |||
925 | * If the trace point header did not define TRACE_SYSTEM | 925 | * If the trace point header did not define TRACE_SYSTEM |
926 | * then the system would be called "TRACE_SYSTEM". | 926 | * then the system would be called "TRACE_SYSTEM". |
927 | */ | 927 | */ |
928 | if (strcmp(call->system, TRACE_SYSTEM) != 0) | 928 | if (strcmp(call->class->system, TRACE_SYSTEM) != 0) |
929 | d_events = event_subsystem_dir(call->system, d_events); | 929 | d_events = event_subsystem_dir(call->class->system, d_events); |
930 | 930 | ||
931 | call->dir = debugfs_create_dir(call->name, d_events); | 931 | call->dir = debugfs_create_dir(call->name, d_events); |
932 | if (!call->dir) { | 932 | if (!call->dir) { |
@@ -1041,7 +1041,7 @@ static void __trace_remove_event_call(struct ftrace_event_call *call) | |||
1041 | list_del(&call->list); | 1041 | list_del(&call->list); |
1042 | trace_destroy_fields(call); | 1042 | trace_destroy_fields(call); |
1043 | destroy_preds(call); | 1043 | destroy_preds(call); |
1044 | remove_subsystem_dir(call->system); | 1044 | remove_subsystem_dir(call->class->system); |
1045 | } | 1045 | } |
1046 | 1046 | ||
1047 | /* Remove an event_call */ | 1047 | /* Remove an event_call */ |
@@ -1399,8 +1399,8 @@ static __init void event_trace_self_tests(void) | |||
1399 | * syscalls as we test. | 1399 | * syscalls as we test. |
1400 | */ | 1400 | */ |
1401 | #ifndef CONFIG_EVENT_TRACE_TEST_SYSCALLS | 1401 | #ifndef CONFIG_EVENT_TRACE_TEST_SYSCALLS |
1402 | if (call->system && | 1402 | if (call->class->system && |
1403 | strcmp(call->system, "syscalls") == 0) | 1403 | strcmp(call->class->system, "syscalls") == 0) |
1404 | continue; | 1404 | continue; |
1405 | #endif | 1405 | #endif |
1406 | 1406 | ||
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c index 88c0b6dbd7fe..ca329603d0bf 100644 --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c | |||
@@ -628,7 +628,7 @@ static int init_subsystem_preds(struct event_subsystem *system) | |||
628 | if (!call->define_fields) | 628 | if (!call->define_fields) |
629 | continue; | 629 | continue; |
630 | 630 | ||
631 | if (strcmp(call->system, system->name) != 0) | 631 | if (strcmp(call->class->system, system->name) != 0) |
632 | continue; | 632 | continue; |
633 | 633 | ||
634 | err = init_preds(call); | 634 | err = init_preds(call); |
@@ -647,7 +647,7 @@ static void filter_free_subsystem_preds(struct event_subsystem *system) | |||
647 | if (!call->define_fields) | 647 | if (!call->define_fields) |
648 | continue; | 648 | continue; |
649 | 649 | ||
650 | if (strcmp(call->system, system->name) != 0) | 650 | if (strcmp(call->class->system, system->name) != 0) |
651 | continue; | 651 | continue; |
652 | 652 | ||
653 | filter_disable_preds(call); | 653 | filter_disable_preds(call); |
@@ -1252,7 +1252,7 @@ static int replace_system_preds(struct event_subsystem *system, | |||
1252 | if (!call->define_fields) | 1252 | if (!call->define_fields) |
1253 | continue; | 1253 | continue; |
1254 | 1254 | ||
1255 | if (strcmp(call->system, system->name) != 0) | 1255 | if (strcmp(call->class->system, system->name) != 0) |
1256 | continue; | 1256 | continue; |
1257 | 1257 | ||
1258 | /* try to see if the filter can be applied */ | 1258 | /* try to see if the filter can be applied */ |
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c index e091f64ba6ce..7f16e2163817 100644 --- a/kernel/trace/trace_export.c +++ b/kernel/trace/trace_export.c | |||
@@ -18,6 +18,10 @@ | |||
18 | #undef TRACE_SYSTEM | 18 | #undef TRACE_SYSTEM |
19 | #define TRACE_SYSTEM ftrace | 19 | #define TRACE_SYSTEM ftrace |
20 | 20 | ||
21 | struct ftrace_event_class event_class_ftrace = { | ||
22 | .system = __stringify(TRACE_SYSTEM), | ||
23 | }; | ||
24 | |||
21 | /* not needed for this file */ | 25 | /* not needed for this file */ |
22 | #undef __field_struct | 26 | #undef __field_struct |
23 | #define __field_struct(type, item) | 27 | #define __field_struct(type, item) |
@@ -160,7 +164,7 @@ __attribute__((__aligned__(4))) \ | |||
160 | __attribute__((section("_ftrace_events"))) event_##call = { \ | 164 | __attribute__((section("_ftrace_events"))) event_##call = { \ |
161 | .name = #call, \ | 165 | .name = #call, \ |
162 | .id = type, \ | 166 | .id = type, \ |
163 | .system = __stringify(TRACE_SYSTEM), \ | 167 | .class = &event_class_ftrace, \ |
164 | .raw_init = ftrace_raw_init_event, \ | 168 | .raw_init = ftrace_raw_init_event, \ |
165 | .print_fmt = print, \ | 169 | .print_fmt = print, \ |
166 | .define_fields = ftrace_define_fields_##call, \ | 170 | .define_fields = ftrace_define_fields_##call, \ |
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index 1251e367bae9..eda220bf2065 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c | |||
@@ -332,8 +332,8 @@ static struct trace_probe *alloc_trace_probe(const char *group, | |||
332 | goto error; | 332 | goto error; |
333 | } | 333 | } |
334 | 334 | ||
335 | tp->call.system = kstrdup(group, GFP_KERNEL); | 335 | tp->call.class->system = kstrdup(group, GFP_KERNEL); |
336 | if (!tp->call.system) | 336 | if (!tp->call.class->system) |
337 | goto error; | 337 | goto error; |
338 | 338 | ||
339 | INIT_LIST_HEAD(&tp->list); | 339 | INIT_LIST_HEAD(&tp->list); |
@@ -361,7 +361,7 @@ static void free_trace_probe(struct trace_probe *tp) | |||
361 | for (i = 0; i < tp->nr_args; i++) | 361 | for (i = 0; i < tp->nr_args; i++) |
362 | free_probe_arg(&tp->args[i]); | 362 | free_probe_arg(&tp->args[i]); |
363 | 363 | ||
364 | kfree(tp->call.system); | 364 | kfree(tp->call.class->system); |
365 | kfree(tp->call.name); | 365 | kfree(tp->call.name); |
366 | kfree(tp->symbol); | 366 | kfree(tp->symbol); |
367 | kfree(tp); | 367 | kfree(tp); |
@@ -374,7 +374,7 @@ static struct trace_probe *find_probe_event(const char *event, | |||
374 | 374 | ||
375 | list_for_each_entry(tp, &probe_list, list) | 375 | list_for_each_entry(tp, &probe_list, list) |
376 | if (strcmp(tp->call.name, event) == 0 && | 376 | if (strcmp(tp->call.name, event) == 0 && |
377 | strcmp(tp->call.system, group) == 0) | 377 | strcmp(tp->call.class->system, group) == 0) |
378 | return tp; | 378 | return tp; |
379 | return NULL; | 379 | return NULL; |
380 | } | 380 | } |
@@ -399,7 +399,7 @@ static int register_trace_probe(struct trace_probe *tp) | |||
399 | mutex_lock(&probe_lock); | 399 | mutex_lock(&probe_lock); |
400 | 400 | ||
401 | /* register as an event */ | 401 | /* register as an event */ |
402 | old_tp = find_probe_event(tp->call.name, tp->call.system); | 402 | old_tp = find_probe_event(tp->call.name, tp->call.class->system); |
403 | if (old_tp) { | 403 | if (old_tp) { |
404 | /* delete old event */ | 404 | /* delete old event */ |
405 | unregister_trace_probe(old_tp); | 405 | unregister_trace_probe(old_tp); |
@@ -798,7 +798,7 @@ static int probes_seq_show(struct seq_file *m, void *v) | |||
798 | char buf[MAX_ARGSTR_LEN + 1]; | 798 | char buf[MAX_ARGSTR_LEN + 1]; |
799 | 799 | ||
800 | seq_printf(m, "%c", probe_is_return(tp) ? 'r' : 'p'); | 800 | seq_printf(m, "%c", probe_is_return(tp) ? 'r' : 'p'); |
801 | seq_printf(m, ":%s/%s", tp->call.system, tp->call.name); | 801 | seq_printf(m, ":%s/%s", tp->call.class->system, tp->call.name); |
802 | 802 | ||
803 | if (!tp->symbol) | 803 | if (!tp->symbol) |
804 | seq_printf(m, " 0x%p", tp->rp.kp.addr); | 804 | seq_printf(m, " 0x%p", tp->rp.kp.addr); |
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c index 4d6d711717f2..d036a74a64f3 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c | |||
@@ -15,6 +15,10 @@ static int sys_refcount_exit; | |||
15 | static DECLARE_BITMAP(enabled_enter_syscalls, NR_syscalls); | 15 | static DECLARE_BITMAP(enabled_enter_syscalls, NR_syscalls); |
16 | static DECLARE_BITMAP(enabled_exit_syscalls, NR_syscalls); | 16 | static DECLARE_BITMAP(enabled_exit_syscalls, NR_syscalls); |
17 | 17 | ||
18 | struct ftrace_event_class event_class_syscalls = { | ||
19 | .system = "syscalls" | ||
20 | }; | ||
21 | |||
18 | extern unsigned long __start_syscalls_metadata[]; | 22 | extern unsigned long __start_syscalls_metadata[]; |
19 | extern unsigned long __stop_syscalls_metadata[]; | 23 | extern unsigned long __stop_syscalls_metadata[]; |
20 | 24 | ||