diff options
Diffstat (limited to 'tools/perf')
| -rw-r--r-- | tools/perf/builtin-script.c | 25 | ||||
| -rw-r--r-- | tools/perf/util/scripting-engines/trace-event-perl.c | 11 | ||||
| -rw-r--r-- | tools/perf/util/scripting-engines/trace-event-python.c | 11 | ||||
| -rw-r--r-- | tools/perf/util/trace-event-scripting.c | 9 | ||||
| -rw-r--r-- | tools/perf/util/trace-event.h | 7 |
5 files changed, 41 insertions, 22 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 5f40df635dcb..b2bdd5534026 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c | |||
| @@ -20,6 +20,20 @@ static u64 last_timestamp; | |||
| 20 | static u64 nr_unordered; | 20 | static u64 nr_unordered; |
| 21 | extern const struct option record_options[]; | 21 | extern const struct option record_options[]; |
| 22 | 22 | ||
| 23 | static void process_event(union perf_event *event __unused, | ||
| 24 | struct perf_sample *sample, | ||
| 25 | struct perf_session *session __unused, | ||
| 26 | struct thread *thread) | ||
| 27 | { | ||
| 28 | /* | ||
| 29 | * FIXME: better resolve from pid from the struct trace_entry | ||
| 30 | * field, although it should be the same than this perf | ||
| 31 | * event pid | ||
| 32 | */ | ||
| 33 | print_event(sample->cpu, sample->raw_data, sample->raw_size, | ||
| 34 | sample->time, thread->comm); | ||
| 35 | } | ||
| 36 | |||
| 23 | static int default_start_script(const char *script __unused, | 37 | static int default_start_script(const char *script __unused, |
| 24 | int argc __unused, | 38 | int argc __unused, |
| 25 | const char **argv __unused) | 39 | const char **argv __unused) |
| @@ -40,7 +54,7 @@ static int default_generate_script(const char *outfile __unused) | |||
| 40 | static struct scripting_ops default_scripting_ops = { | 54 | static struct scripting_ops default_scripting_ops = { |
| 41 | .start_script = default_start_script, | 55 | .start_script = default_start_script, |
| 42 | .stop_script = default_stop_script, | 56 | .stop_script = default_stop_script, |
| 43 | .process_event = print_event, | 57 | .process_event = process_event, |
| 44 | .generate_script = default_generate_script, | 58 | .generate_script = default_generate_script, |
| 45 | }; | 59 | }; |
| 46 | 60 | ||
| @@ -86,14 +100,7 @@ static int process_sample_event(union perf_event *event, | |||
| 86 | last_timestamp = sample->time; | 100 | last_timestamp = sample->time; |
| 87 | return 0; | 101 | return 0; |
| 88 | } | 102 | } |
| 89 | /* | 103 | scripting_ops->process_event(event, sample, session, thread); |
| 90 | * FIXME: better resolve from pid from the struct trace_entry | ||
| 91 | * field, although it should be the same than this perf | ||
| 92 | * event pid | ||
| 93 | */ | ||
| 94 | scripting_ops->process_event(sample->cpu, sample->raw_data, | ||
| 95 | sample->raw_size, | ||
| 96 | sample->time, thread->comm); | ||
| 97 | } | 104 | } |
| 98 | 105 | ||
| 99 | session->hists.stats.total_period += sample->period; | 106 | session->hists.stats.total_period += sample->period; |
diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c index 93680818e244..621427212e86 100644 --- a/tools/perf/util/scripting-engines/trace-event-perl.c +++ b/tools/perf/util/scripting-engines/trace-event-perl.c | |||
| @@ -245,9 +245,10 @@ static inline struct event *find_cache_event(int type) | |||
| 245 | return event; | 245 | return event; |
| 246 | } | 246 | } |
| 247 | 247 | ||
| 248 | static void perl_process_event(int cpu, void *data, | 248 | static void perl_process_event(union perf_event *pevent __unused, |
| 249 | int size __unused, | 249 | struct perf_sample *sample, |
| 250 | unsigned long long nsecs, char *comm) | 250 | struct perf_session *session __unused, |
| 251 | struct thread *thread) | ||
| 251 | { | 252 | { |
| 252 | struct format_field *field; | 253 | struct format_field *field; |
| 253 | static char handler[256]; | 254 | static char handler[256]; |
| @@ -256,6 +257,10 @@ static void perl_process_event(int cpu, void *data, | |||
| 256 | struct event *event; | 257 | struct event *event; |
| 257 | int type; | 258 | int type; |
| 258 | int pid; | 259 | int pid; |
| 260 | int cpu = sample->cpu; | ||
| 261 | void *data = sample->raw_data; | ||
| 262 | unsigned long long nsecs = sample->time; | ||
| 263 | char *comm = thread->comm; | ||
| 259 | 264 | ||
| 260 | dSP; | 265 | dSP; |
| 261 | 266 | ||
diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index 2040b8538527..1b85d6055159 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c | |||
| @@ -204,9 +204,10 @@ static inline struct event *find_cache_event(int type) | |||
| 204 | return event; | 204 | return event; |
| 205 | } | 205 | } |
| 206 | 206 | ||
| 207 | static void python_process_event(int cpu, void *data, | 207 | static void python_process_event(union perf_event *pevent __unused, |
| 208 | int size __unused, | 208 | struct perf_sample *sample, |
| 209 | unsigned long long nsecs, char *comm) | 209 | struct perf_session *session __unused, |
| 210 | struct thread *thread) | ||
| 210 | { | 211 | { |
| 211 | PyObject *handler, *retval, *context, *t, *obj, *dict = NULL; | 212 | PyObject *handler, *retval, *context, *t, *obj, *dict = NULL; |
| 212 | static char handler_name[256]; | 213 | static char handler_name[256]; |
| @@ -217,6 +218,10 @@ static void python_process_event(int cpu, void *data, | |||
| 217 | unsigned n = 0; | 218 | unsigned n = 0; |
| 218 | int type; | 219 | int type; |
| 219 | int pid; | 220 | int pid; |
| 221 | int cpu = sample->cpu; | ||
| 222 | void *data = sample->raw_data; | ||
| 223 | unsigned long long nsecs = sample->time; | ||
| 224 | char *comm = thread->comm; | ||
| 220 | 225 | ||
| 221 | t = PyTuple_New(MAX_FIELDS); | 226 | t = PyTuple_New(MAX_FIELDS); |
| 222 | if (!t) | 227 | if (!t) |
diff --git a/tools/perf/util/trace-event-scripting.c b/tools/perf/util/trace-event-scripting.c index f7af2fca965d..66f4b78737ab 100644 --- a/tools/perf/util/trace-event-scripting.c +++ b/tools/perf/util/trace-event-scripting.c | |||
| @@ -36,11 +36,10 @@ static int stop_script_unsupported(void) | |||
| 36 | return 0; | 36 | return 0; |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | static void process_event_unsupported(int cpu __unused, | 39 | static void process_event_unsupported(union perf_event *event __unused, |
| 40 | void *data __unused, | 40 | struct perf_sample *sample __unused, |
| 41 | int size __unused, | 41 | struct perf_session *session __unused, |
| 42 | unsigned long long nsecs __unused, | 42 | struct thread *thread __unused) |
| 43 | char *comm __unused) | ||
| 44 | { | 43 | { |
| 45 | } | 44 | } |
| 46 | 45 | ||
diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h index b5f12ca24d99..5f7b5139c321 100644 --- a/tools/perf/util/trace-event.h +++ b/tools/perf/util/trace-event.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #include <stdbool.h> | 4 | #include <stdbool.h> |
| 5 | #include "parse-events.h" | 5 | #include "parse-events.h" |
| 6 | #include "session.h" | ||
| 6 | 7 | ||
| 7 | #define __unused __attribute__((unused)) | 8 | #define __unused __attribute__((unused)) |
| 8 | 9 | ||
| @@ -278,8 +279,10 @@ struct scripting_ops { | |||
| 278 | const char *name; | 279 | const char *name; |
| 279 | int (*start_script) (const char *script, int argc, const char **argv); | 280 | int (*start_script) (const char *script, int argc, const char **argv); |
| 280 | int (*stop_script) (void); | 281 | int (*stop_script) (void); |
| 281 | void (*process_event) (int cpu, void *data, int size, | 282 | void (*process_event) (union perf_event *event, |
| 282 | unsigned long long nsecs, char *comm); | 283 | struct perf_sample *sample, |
| 284 | struct perf_session *session, | ||
| 285 | struct thread *thread); | ||
| 283 | int (*generate_script) (const char *outfile); | 286 | int (*generate_script) (const char *outfile); |
| 284 | }; | 287 | }; |
| 285 | 288 | ||
