Commit | Line | Data |
---|---|---|
ac199db0 PZ |
1 | /* |
2 | * trace event based perf counter profiling | |
3 | * | |
4 | * Copyright (C) 2009 Red Hat Inc, Peter Zijlstra <pzijlstr@redhat.com> | |
5 | * | |
6 | */ | |
7 | ||
8 | #include "trace.h" | |
9 | ||
10 | int ftrace_profile_enable(int event_id) | |
11 | { | |
12 | struct ftrace_event_call *event; | |
20c8928a | 13 | int ret = -EINVAL; |
ac199db0 | 14 | |
20c8928a | 15 | mutex_lock(&event_mutex); |
a59fd602 | 16 | list_for_each_entry(event, &ftrace_events, list) { |
af6af30c | 17 | if (event->id == event_id && event->profile_enable) { |
20c8928a LZ |
18 | ret = event->profile_enable(event); |
19 | break; | |
20 | } | |
ac199db0 | 21 | } |
20c8928a | 22 | mutex_unlock(&event_mutex); |
ac199db0 | 23 | |
20c8928a | 24 | return ret; |
ac199db0 PZ |
25 | } |
26 | ||
27 | void ftrace_profile_disable(int event_id) | |
28 | { | |
29 | struct ftrace_event_call *event; | |
30 | ||
20c8928a | 31 | mutex_lock(&event_mutex); |
a59fd602 | 32 | list_for_each_entry(event, &ftrace_events, list) { |
20c8928a LZ |
33 | if (event->id == event_id) { |
34 | event->profile_disable(event); | |
35 | break; | |
36 | } | |
ac199db0 | 37 | } |
20c8928a | 38 | mutex_unlock(&event_mutex); |
ac199db0 | 39 | } |