OSDN Git Service

perf scripting: No need to pass thread twice to the scripting callbacks
authorArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 1 Apr 2015 16:29:25 +0000 (13:29 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 2 Apr 2015 16:18:41 +0000 (13:18 -0300)
It is already in the addr_location, so remove the redundant 'thread'
parameter from the callback signatures.

Acked-by: Jiri Olsa <jolsa@redhat.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1427906210-10519-3-git-send-email-acme@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-script.c
tools/perf/util/scripting-engines/trace-event-perl.c
tools/perf/util/scripting-engines/trace-event-python.c
tools/perf/util/trace-event-scripting.c
tools/perf/util/trace-event.h

index c286b49..257dd06 100644 (file)
@@ -446,9 +446,9 @@ static void print_sample_bts(union perf_event *event,
 }
 
 static void process_event(union perf_event *event, struct perf_sample *sample,
-                         struct perf_evsel *evsel, struct thread *thread,
-                         struct addr_location *al)
+                         struct perf_evsel *evsel, struct addr_location *al)
 {
+       struct thread *thread = al->thread;
        struct perf_event_attr *attr = &evsel->attr;
 
        if (output[attr->type].fields == 0)
@@ -573,7 +573,7 @@ static int process_sample_event(struct perf_tool *tool __maybe_unused,
        if (cpu_list && !test_bit(sample->cpu, cpu_bitmap))
                return 0;
 
-       scripting_ops->process_event(event, sample, evsel, al.thread, &al);
+       scripting_ops->process_event(event, sample, evsel, &al);
 
        return 0;
 }
index 8171fed..430b5d2 100644 (file)
@@ -360,10 +360,9 @@ static void perl_process_event_generic(union perf_event *event,
 static void perl_process_event(union perf_event *event,
                               struct perf_sample *sample,
                               struct perf_evsel *evsel,
-                              struct thread *thread,
-                              struct addr_location *al __maybe_unused)
+                              struct addr_location *al)
 {
-       perl_process_tracepoint(sample, evsel, thread);
+       perl_process_tracepoint(sample, evsel, al->thread);
        perl_process_event_generic(event, sample, evsel);
 }
 
index 2ec5dfb..de8df1d 100644 (file)
@@ -381,7 +381,6 @@ exit:
 
 static void python_process_tracepoint(struct perf_sample *sample,
                                      struct perf_evsel *evsel,
-                                     struct thread *thread,
                                      struct addr_location *al)
 {
        struct event_format *event = evsel->tp_format;
@@ -395,7 +394,7 @@ static void python_process_tracepoint(struct perf_sample *sample,
        int cpu = sample->cpu;
        void *data = sample->raw_data;
        unsigned long long nsecs = sample->time;
-       const char *comm = thread__comm_str(thread);
+       const char *comm = thread__comm_str(al->thread);
 
        t = PyTuple_New(MAX_FIELDS);
        if (!t)
@@ -766,7 +765,6 @@ static int python_process_call_return(struct call_return *cr, void *data)
 
 static void python_process_general_event(struct perf_sample *sample,
                                         struct perf_evsel *evsel,
-                                        struct thread *thread,
                                         struct addr_location *al)
 {
        PyObject *handler, *t, *dict, *callchain, *dict_sample;
@@ -816,7 +814,7 @@ static void python_process_general_event(struct perf_sample *sample,
        pydict_set_item_string_decref(dict, "raw_buf", PyString_FromStringAndSize(
                        (const char *)sample->raw_data, sample->raw_size));
        pydict_set_item_string_decref(dict, "comm",
-                       PyString_FromString(thread__comm_str(thread)));
+                       PyString_FromString(thread__comm_str(al->thread)));
        if (al->map) {
                pydict_set_item_string_decref(dict, "dso",
                        PyString_FromString(al->map->dso->name));
@@ -843,22 +841,21 @@ exit:
 static void python_process_event(union perf_event *event,
                                 struct perf_sample *sample,
                                 struct perf_evsel *evsel,
-                                struct thread *thread,
                                 struct addr_location *al)
 {
        struct tables *tables = &tables_global;
 
        switch (evsel->attr.type) {
        case PERF_TYPE_TRACEPOINT:
-               python_process_tracepoint(sample, evsel, thread, al);
+               python_process_tracepoint(sample, evsel, al);
                break;
        /* Reserve for future process_hw/sw/raw APIs */
        default:
                if (tables->db_export_mode)
                        db_export__sample(&tables->dbe, event, sample, evsel,
-                                         thread, al);
+                                         al->thread, al);
                else
-                       python_process_general_event(sample, evsel, thread, al);
+                       python_process_general_event(sample, evsel, al);
        }
 }
 
index 5c9bdd1..9df6105 100644 (file)
@@ -43,7 +43,6 @@ static int stop_script_unsupported(void)
 static void process_event_unsupported(union perf_event *event __maybe_unused,
                                      struct perf_sample *sample __maybe_unused,
                                      struct perf_evsel *evsel __maybe_unused,
-                                     struct thread *thread __maybe_unused,
                                      struct addr_location *al __maybe_unused)
 {
 }
index 356629a..d5168f0 100644 (file)
@@ -72,8 +72,7 @@ struct scripting_ops {
        void (*process_event) (union perf_event *event,
                               struct perf_sample *sample,
                               struct perf_evsel *evsel,
-                              struct thread *thread,
-                                  struct addr_location *al);
+                              struct addr_location *al);
        int (*generate_script) (struct pevent *pevent, const char *outfile);
 };