* [RFC 0/2] perf scripting cleanups @ 2015-04-01 16:36 Arnaldo Carvalho de Melo 2015-04-01 16:36 ` [PATCH 1/2] perf script: No need to lookup thread twice Arnaldo Carvalho de Melo ` (3 more replies) 0 siblings, 4 replies; 11+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-04-01 16:36 UTC (permalink / raw) To: Jiri Olsa Cc: linux-kernel, Arnaldo Carvalho de Melo, David Ahern, Adrian Hunter, Borislav Petkov, Don Zickus, Frederic Weisbecker, Namhyung Kim, Stephane Eranian Hi David, Jiri, Please take a look if it is ok for you guys Adrian, there is another thing: db_export__sample(&tables->dbe, event, sample, evsel, al->thread, al); In tools/perf/util/scripting-engines/trace-event-python.c has this redundancy as well, see the (al->thread, al), I'll probably remove that extra thread parm there if you don't have any other subtle use for that... - Arnaldo Arnaldo Carvalho de Melo (2): perf script: No need to lookup thread twice perf scripting: No need to pass thread twice to the scripting callbacks tools/perf/builtin-script.c | 14 +++----------- tools/perf/util/scripting-engines/trace-event-perl.c | 5 ++--- tools/perf/util/scripting-engines/trace-event-python.c | 13 +++++-------- tools/perf/util/trace-event-scripting.c | 1 - tools/perf/util/trace-event.h | 3 +-- 5 files changed, 11 insertions(+), 25 deletions(-) -- 1.9.3 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] perf script: No need to lookup thread twice 2015-04-01 16:36 [RFC 0/2] perf scripting cleanups Arnaldo Carvalho de Melo @ 2015-04-01 16:36 ` Arnaldo Carvalho de Melo 2015-04-03 5:06 ` [tip:perf/core] " tip-bot for Arnaldo Carvalho de Melo 2015-04-01 16:36 ` [PATCH 2/2] perf scripting: No need to pass thread twice to the scripting callbacks Arnaldo Carvalho de Melo ` (2 subsequent siblings) 3 siblings, 1 reply; 11+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-04-01 16:36 UTC (permalink / raw) To: Jiri Olsa Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Borislav Petkov, David Ahern, Don Zickus, Frederic Weisbecker, Namhyung Kim, Stephane Eranian From: Arnaldo Carvalho de Melo <acme@redhat.com> We get the thread when we call perf_event__preprocess_sample(), no need to do it before that. 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: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-ksvs38n1d5vf9hfnhzj75xrm@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/builtin-script.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 662366ceb572..c286b49c81b2 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -549,14 +549,6 @@ static int process_sample_event(struct perf_tool *tool __maybe_unused, struct machine *machine) { struct addr_location al; - struct thread *thread = machine__findnew_thread(machine, sample->pid, - sample->tid); - - if (thread == NULL) { - pr_debug("problem processing %d event, skipping it.\n", - event->header.type); - return -1; - } if (debug_mode) { if (sample->time < last_timestamp) { @@ -581,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, thread, &al); + scripting_ops->process_event(event, sample, evsel, al.thread, &al); return 0; } -- 1.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [tip:perf/core] perf script: No need to lookup thread twice 2015-04-01 16:36 ` [PATCH 1/2] perf script: No need to lookup thread twice Arnaldo Carvalho de Melo @ 2015-04-03 5:06 ` tip-bot for Arnaldo Carvalho de Melo 0 siblings, 0 replies; 11+ messages in thread From: tip-bot for Arnaldo Carvalho de Melo @ 2015-04-03 5:06 UTC (permalink / raw) To: linux-tip-commits Cc: jolsa, adrian.hunter, eranian, acme, linux-kernel, bp, mingo, fweisbec, tglx, dsahern, dzickus, namhyung, hpa Commit-ID: 79628f2cfe0f488b23e5dc99a4a9a599032fa653 Gitweb: http://git.kernel.org/tip/79628f2cfe0f488b23e5dc99a4a9a599032fa653 Author: Arnaldo Carvalho de Melo <acme@redhat.com> AuthorDate: Wed, 1 Apr 2015 13:26:45 -0300 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Thu, 2 Apr 2015 13:18:21 -0300 perf script: No need to lookup thread twice We get the thread when we call perf_event__preprocess_sample(), no need to do it before that. 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-2-git-send-email-acme@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/builtin-script.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 662366c..c286b49 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -549,14 +549,6 @@ static int process_sample_event(struct perf_tool *tool __maybe_unused, struct machine *machine) { struct addr_location al; - struct thread *thread = machine__findnew_thread(machine, sample->pid, - sample->tid); - - if (thread == NULL) { - pr_debug("problem processing %d event, skipping it.\n", - event->header.type); - return -1; - } if (debug_mode) { if (sample->time < last_timestamp) { @@ -581,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, thread, &al); + scripting_ops->process_event(event, sample, evsel, al.thread, &al); return 0; } ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/2] perf scripting: No need to pass thread twice to the scripting callbacks 2015-04-01 16:36 [RFC 0/2] perf scripting cleanups Arnaldo Carvalho de Melo 2015-04-01 16:36 ` [PATCH 1/2] perf script: No need to lookup thread twice Arnaldo Carvalho de Melo @ 2015-04-01 16:36 ` Arnaldo Carvalho de Melo 2015-04-03 5:06 ` [tip:perf/core] " tip-bot for Arnaldo Carvalho de Melo 2015-04-02 8:16 ` [RFC 0/2] perf scripting cleanups Namhyung Kim 2015-04-02 9:16 ` Adrian Hunter 3 siblings, 1 reply; 11+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-04-01 16:36 UTC (permalink / raw) To: Jiri Olsa Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Borislav Petkov, David Ahern, Don Zickus, Frederic Weisbecker, Namhyung Kim, Stephane Eranian From: Arnaldo Carvalho de Melo <acme@redhat.com> It is already in the addr_location, so remove the redundant 'thread' parameter from the callback signatures. 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: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-fuj5cj0uxc5a8j9xr2mqfwav@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/builtin-script.c | 6 +++--- tools/perf/util/scripting-engines/trace-event-perl.c | 5 ++--- tools/perf/util/scripting-engines/trace-event-python.c | 13 +++++-------- tools/perf/util/trace-event-scripting.c | 1 - tools/perf/util/trace-event.h | 3 +-- 5 files changed, 11 insertions(+), 17 deletions(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index c286b49c81b2..257dd066cb1a 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -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; } diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c index 8171fed4136e..430b5d27828e 100644 --- a/tools/perf/util/scripting-engines/trace-event-perl.c +++ b/tools/perf/util/scripting-engines/trace-event-perl.c @@ -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); } diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index 2ec5dfb5a456..de8df1d5e1bd 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -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); } } diff --git a/tools/perf/util/trace-event-scripting.c b/tools/perf/util/trace-event-scripting.c index 5c9bdd1591a9..9df61059a85d 100644 --- a/tools/perf/util/trace-event-scripting.c +++ b/tools/perf/util/trace-event-scripting.c @@ -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) { } diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h index 356629a30ca9..d5168f0be4ec 100644 --- a/tools/perf/util/trace-event.h +++ b/tools/perf/util/trace-event.h @@ -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); }; -- 1.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [tip:perf/core] perf scripting: No need to pass thread twice to the scripting callbacks 2015-04-01 16:36 ` [PATCH 2/2] perf scripting: No need to pass thread twice to the scripting callbacks Arnaldo Carvalho de Melo @ 2015-04-03 5:06 ` tip-bot for Arnaldo Carvalho de Melo 0 siblings, 0 replies; 11+ messages in thread From: tip-bot for Arnaldo Carvalho de Melo @ 2015-04-03 5:06 UTC (permalink / raw) To: linux-tip-commits Cc: mingo, eranian, fweisbec, namhyung, bp, adrian.hunter, jolsa, dzickus, linux-kernel, hpa, acme, dsahern, tglx Commit-ID: f9d5d549d2c2934be84b0bc7e5e034834459f591 Gitweb: http://git.kernel.org/tip/f9d5d549d2c2934be84b0bc7e5e034834459f591 Author: Arnaldo Carvalho de Melo <acme@redhat.com> AuthorDate: Wed, 1 Apr 2015 13:29:25 -0300 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Thu, 2 Apr 2015 13:18:41 -0300 perf scripting: No need to pass thread twice to the scripting callbacks 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 | 6 +++--- tools/perf/util/scripting-engines/trace-event-perl.c | 5 ++--- tools/perf/util/scripting-engines/trace-event-python.c | 13 +++++-------- tools/perf/util/trace-event-scripting.c | 1 - tools/perf/util/trace-event.h | 3 +-- 5 files changed, 11 insertions(+), 17 deletions(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index c286b49..257dd06 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -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; } diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c index 8171fed..430b5d2 100644 --- a/tools/perf/util/scripting-engines/trace-event-perl.c +++ b/tools/perf/util/scripting-engines/trace-event-perl.c @@ -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); } diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index 2ec5dfb..de8df1d 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -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); } } diff --git a/tools/perf/util/trace-event-scripting.c b/tools/perf/util/trace-event-scripting.c index 5c9bdd1..9df6105 100644 --- a/tools/perf/util/trace-event-scripting.c +++ b/tools/perf/util/trace-event-scripting.c @@ -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) { } diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h index 356629a..d5168f0 100644 --- a/tools/perf/util/trace-event.h +++ b/tools/perf/util/trace-event.h @@ -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); }; ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFC 0/2] perf scripting cleanups 2015-04-01 16:36 [RFC 0/2] perf scripting cleanups Arnaldo Carvalho de Melo 2015-04-01 16:36 ` [PATCH 1/2] perf script: No need to lookup thread twice Arnaldo Carvalho de Melo 2015-04-01 16:36 ` [PATCH 2/2] perf scripting: No need to pass thread twice to the scripting callbacks Arnaldo Carvalho de Melo @ 2015-04-02 8:16 ` Namhyung Kim 2015-04-02 8:35 ` Jiri Olsa 2015-04-02 9:16 ` Adrian Hunter 3 siblings, 1 reply; 11+ messages in thread From: Namhyung Kim @ 2015-04-02 8:16 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Jiri Olsa, linux-kernel, David Ahern, Adrian Hunter, Borislav Petkov, Don Zickus, Frederic Weisbecker, Stephane Eranian On Wed, Apr 01, 2015 at 01:36:48PM -0300, Arnaldo Carvalho de Melo wrote: > Hi David, Jiri, > > Please take a look if it is ok for you guys > > Adrian, there is another thing: > > db_export__sample(&tables->dbe, event, sample, evsel, al->thread, al); > > In tools/perf/util/scripting-engines/trace-event-python.c has this redundancy > as well, see the (al->thread, al), I'll probably remove that extra thread parm > there if you don't have any other subtle use for that... For both patches, Acked-by: Namhyung Kim <namhyung@kernel.org> Thanks, Namhyung ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC 0/2] perf scripting cleanups 2015-04-02 8:16 ` [RFC 0/2] perf scripting cleanups Namhyung Kim @ 2015-04-02 8:35 ` Jiri Olsa 0 siblings, 0 replies; 11+ messages in thread From: Jiri Olsa @ 2015-04-02 8:35 UTC (permalink / raw) To: Namhyung Kim Cc: Arnaldo Carvalho de Melo, linux-kernel, David Ahern, Adrian Hunter, Borislav Petkov, Don Zickus, Frederic Weisbecker, Stephane Eranian On Thu, Apr 02, 2015 at 05:16:09PM +0900, Namhyung Kim wrote: > On Wed, Apr 01, 2015 at 01:36:48PM -0300, Arnaldo Carvalho de Melo wrote: > > Hi David, Jiri, > > > > Please take a look if it is ok for you guys > > > > Adrian, there is another thing: > > > > db_export__sample(&tables->dbe, event, sample, evsel, al->thread, al); > > > > In tools/perf/util/scripting-engines/trace-event-python.c has this redundancy > > as well, see the (al->thread, al), I'll probably remove that extra thread parm > > there if you don't have any other subtle use for that... > > For both patches, > > Acked-by: Namhyung Kim <namhyung@kernel.org> looks ok for me too Acked-by: Jiri Olsa <jolsa@kernel.org> jirka ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC 0/2] perf scripting cleanups 2015-04-01 16:36 [RFC 0/2] perf scripting cleanups Arnaldo Carvalho de Melo ` (2 preceding siblings ...) 2015-04-02 8:16 ` [RFC 0/2] perf scripting cleanups Namhyung Kim @ 2015-04-02 9:16 ` Adrian Hunter 2015-04-02 14:15 ` Arnaldo Carvalho de Melo 3 siblings, 1 reply; 11+ messages in thread From: Adrian Hunter @ 2015-04-02 9:16 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, Jiri Olsa Cc: linux-kernel, David Ahern, Borislav Petkov, Don Zickus, Frederic Weisbecker, Namhyung Kim, Stephane Eranian On 01/04/15 19:36, Arnaldo Carvalho de Melo wrote: > Hi David, Jiri, > > Please take a look if it is ok for you guys > > Adrian, there is another thing: > > db_export__sample(&tables->dbe, event, sample, evsel, al->thread, al); > > In tools/perf/util/scripting-engines/trace-event-python.c has this redundancy > as well, see the (al->thread, al), I'll probably remove that extra thread parm Yes please remove it too. > there if you don't have any other subtle use for that... Nope > > - Arnaldo > > Arnaldo Carvalho de Melo (2): > perf script: No need to lookup thread twice > perf scripting: No need to pass thread twice to the scripting > callbacks > > tools/perf/builtin-script.c | 14 +++----------- > tools/perf/util/scripting-engines/trace-event-perl.c | 5 ++--- > tools/perf/util/scripting-engines/trace-event-python.c | 13 +++++-------- > tools/perf/util/trace-event-scripting.c | 1 - > tools/perf/util/trace-event.h | 3 +-- > 5 files changed, 11 insertions(+), 25 deletions(-) > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC 0/2] perf scripting cleanups 2015-04-02 9:16 ` Adrian Hunter @ 2015-04-02 14:15 ` Arnaldo Carvalho de Melo 2015-04-02 20:42 ` Adrian Hunter 2015-04-03 5:07 ` [tip:perf/core] perf db-export: No need to have -> thread twice in struct export_sample tip-bot for Arnaldo Carvalho de Melo 0 siblings, 2 replies; 11+ messages in thread From: Arnaldo Carvalho de Melo @ 2015-04-02 14:15 UTC (permalink / raw) To: Adrian Hunter Cc: Jiri Olsa, linux-kernel, David Ahern, Borislav Petkov, Don Zickus, Frederic Weisbecker, Namhyung Kim, Stephane Eranian Em Thu, Apr 02, 2015 at 12:16:40PM +0300, Adrian Hunter escreveu: > On 01/04/15 19:36, Arnaldo Carvalho de Melo wrote: > > Hi David, Jiri, > > > > Please take a look if it is ok for you guys > > > > Adrian, there is another thing: > > > > db_export__sample(&tables->dbe, event, sample, evsel, al->thread, al); > > > > In tools/perf/util/scripting-engines/trace-event-python.c has this redundancy > > as well, see the (al->thread, al), I'll probably remove that extra thread parm > > Yes please remove it too. > > > there if you don't have any other subtle use for that... > > Nope Ok, adding it as below, with your Acked-by, there is the one at the bottom too, i.s. struct export_sample doesn't need a ->thread field, same reason, if you are ok with that too, will add your Acked-by. - Arnaldo >From 765b042be1054ec7b5f76b3a004e0aff503e350f Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo <acme@redhat.com> Date: Thu, 2 Apr 2015 11:08:30 -0300 Subject: [PATCH 1/1] perf db-export: No need to pass thread twice to db_export__sample As it is available via another parameter, address_location->thread. Acked-by: 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: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Stephane Eranian <eranian@google.com> Link: lkml.kernel.org/r/551D08F8.3040706@intel.com Link: http://lkml.kernel.org/n/tip-6dbn0tcm9hyv92g7h3zj2dbt@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/db-export.c | 3 ++- tools/perf/util/db-export.h | 2 +- tools/perf/util/scripting-engines/trace-event-python.c | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/perf/util/db-export.c b/tools/perf/util/db-export.c index c81dae399763..5499887edc46 100644 --- a/tools/perf/util/db-export.c +++ b/tools/perf/util/db-export.c @@ -282,8 +282,9 @@ int db_export__branch_type(struct db_export *dbe, u32 branch_type, int db_export__sample(struct db_export *dbe, union perf_event *event, struct perf_sample *sample, struct perf_evsel *evsel, - struct thread *thread, struct addr_location *al) + struct addr_location *al) { + struct thread* thread = al->thread; struct export_sample es = { .event = event, .sample = sample, diff --git a/tools/perf/util/db-export.h b/tools/perf/util/db-export.h index adbd22d66798..b9faa1386cf4 100644 --- a/tools/perf/util/db-export.h +++ b/tools/perf/util/db-export.h @@ -97,7 +97,7 @@ int db_export__branch_type(struct db_export *dbe, u32 branch_type, const char *name); int db_export__sample(struct db_export *dbe, union perf_event *event, struct perf_sample *sample, struct perf_evsel *evsel, - struct thread *thread, struct addr_location *al); + struct addr_location *al); int db_export__branch_types(struct db_export *dbe); diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index de8df1d5e1bd..1d3cc1b01731 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -852,8 +852,7 @@ static void python_process_event(union perf_event *event, /* Reserve for future process_hw/sw/raw APIs */ default: if (tables->db_export_mode) - db_export__sample(&tables->dbe, event, sample, evsel, - al->thread, al); + db_export__sample(&tables->dbe, event, sample, evsel, al); else python_process_general_event(sample, evsel, al); } -- 1.8.3.1 diff --git a/tools/perf/util/db-export.c b/tools/perf/util/db-export.c index 5499887edc46..bb39a3ffc70b 100644 --- a/tools/perf/util/db-export.c +++ b/tools/perf/util/db-export.c @@ -289,7 +289,6 @@ int db_export__sample(struct db_export *dbe, union perf_event *event, .event = event, .sample = sample, .evsel = evsel, - .thread = thread, .al = al, }; struct thread *main_thread; diff --git a/tools/perf/util/db-export.h b/tools/perf/util/db-export.h index b9faa1386cf4..25e22fd76aca 100644 --- a/tools/perf/util/db-export.h +++ b/tools/perf/util/db-export.h @@ -34,7 +34,6 @@ struct export_sample { union perf_event *event; struct perf_sample *sample; struct perf_evsel *evsel; - struct thread *thread; struct addr_location *al; u64 db_id; u64 comm_db_id; diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index 1d3cc1b01731..5544b8cdd1ee 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -679,7 +679,7 @@ static int python_export_sample(struct db_export *dbe, tuple_set_u64(t, 0, es->db_id); tuple_set_u64(t, 1, es->evsel->db_id); tuple_set_u64(t, 2, es->al->machine->db_id); - tuple_set_u64(t, 3, es->thread->db_id); + tuple_set_u64(t, 3, es->al->thread->db_id); tuple_set_u64(t, 4, es->comm_db_id); tuple_set_u64(t, 5, es->dso_db_id); tuple_set_u64(t, 6, es->sym_db_id); ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFC 0/2] perf scripting cleanups 2015-04-02 14:15 ` Arnaldo Carvalho de Melo @ 2015-04-02 20:42 ` Adrian Hunter 2015-04-03 5:07 ` [tip:perf/core] perf db-export: No need to have -> thread twice in struct export_sample tip-bot for Arnaldo Carvalho de Melo 1 sibling, 0 replies; 11+ messages in thread From: Adrian Hunter @ 2015-04-02 20:42 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Jiri Olsa, linux-kernel, David Ahern, Borislav Petkov, Don Zickus, Frederic Weisbecker, Namhyung Kim, Stephane Eranian On 2/04/2015 5:15 p.m., Arnaldo Carvalho de Melo wrote: > Em Thu, Apr 02, 2015 at 12:16:40PM +0300, Adrian Hunter escreveu: >> On 01/04/15 19:36, Arnaldo Carvalho de Melo wrote: >>> Hi David, Jiri, >>> >>> Please take a look if it is ok for you guys >>> >>> Adrian, there is another thing: >>> >>> db_export__sample(&tables->dbe, event, sample, evsel, al->thread, al); >>> >>> In tools/perf/util/scripting-engines/trace-event-python.c has this redundancy >>> as well, see the (al->thread, al), I'll probably remove that extra thread parm >> >> Yes please remove it too. >> >>> there if you don't have any other subtle use for that... >> >> Nope > > Ok, adding it as below, with your Acked-by, there is the one at the > bottom too, i.s. struct export_sample doesn't need a ->thread field, > same reason, if you are ok with that too, will add your Acked-by. Yes that also looks fine. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [tip:perf/core] perf db-export: No need to have -> thread twice in struct export_sample 2015-04-02 14:15 ` Arnaldo Carvalho de Melo 2015-04-02 20:42 ` Adrian Hunter @ 2015-04-03 5:07 ` tip-bot for Arnaldo Carvalho de Melo 1 sibling, 0 replies; 11+ messages in thread From: tip-bot for Arnaldo Carvalho de Melo @ 2015-04-03 5:07 UTC (permalink / raw) To: linux-tip-commits Cc: adrian.hunter, jolsa, dzickus, fweisbec, tglx, linux-kernel, namhyung, mingo, hpa, eranian, bp, acme, dsahern Commit-ID: b83e868d0a0350c107b98417b4dcc73834506f98 Gitweb: http://git.kernel.org/tip/b83e868d0a0350c107b98417b4dcc73834506f98 Author: Arnaldo Carvalho de Melo <acme@redhat.com> AuthorDate: Thu, 2 Apr 2015 11:16:05 -0300 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Thu, 2 Apr 2015 13:18:43 -0300 perf db-export: No need to have ->thread twice in struct export_sample As it comes from address_location->thread, that is already stored as export_sample->al, where the thread can be obtained. 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: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/20150402141542.GA9630@kernel.org Link: http://lkml.kernel.org/n/tip-bzotbl4epoztw0jd6sm2stpf@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/db-export.c | 1 - tools/perf/util/db-export.h | 1 - tools/perf/util/scripting-engines/trace-event-python.c | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/perf/util/db-export.c b/tools/perf/util/db-export.c index 5499887..bb39a3f 100644 --- a/tools/perf/util/db-export.c +++ b/tools/perf/util/db-export.c @@ -289,7 +289,6 @@ int db_export__sample(struct db_export *dbe, union perf_event *event, .event = event, .sample = sample, .evsel = evsel, - .thread = thread, .al = al, }; struct thread *main_thread; diff --git a/tools/perf/util/db-export.h b/tools/perf/util/db-export.h index b9faa13..25e22fd 100644 --- a/tools/perf/util/db-export.h +++ b/tools/perf/util/db-export.h @@ -34,7 +34,6 @@ struct export_sample { union perf_event *event; struct perf_sample *sample; struct perf_evsel *evsel; - struct thread *thread; struct addr_location *al; u64 db_id; u64 comm_db_id; diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index 1d3cc1b..5544b8c 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -679,7 +679,7 @@ static int python_export_sample(struct db_export *dbe, tuple_set_u64(t, 0, es->db_id); tuple_set_u64(t, 1, es->evsel->db_id); tuple_set_u64(t, 2, es->al->machine->db_id); - tuple_set_u64(t, 3, es->thread->db_id); + tuple_set_u64(t, 3, es->al->thread->db_id); tuple_set_u64(t, 4, es->comm_db_id); tuple_set_u64(t, 5, es->dso_db_id); tuple_set_u64(t, 6, es->sym_db_id); ^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-04-03 5:07 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-04-01 16:36 [RFC 0/2] perf scripting cleanups Arnaldo Carvalho de Melo 2015-04-01 16:36 ` [PATCH 1/2] perf script: No need to lookup thread twice Arnaldo Carvalho de Melo 2015-04-03 5:06 ` [tip:perf/core] " tip-bot for Arnaldo Carvalho de Melo 2015-04-01 16:36 ` [PATCH 2/2] perf scripting: No need to pass thread twice to the scripting callbacks Arnaldo Carvalho de Melo 2015-04-03 5:06 ` [tip:perf/core] " tip-bot for Arnaldo Carvalho de Melo 2015-04-02 8:16 ` [RFC 0/2] perf scripting cleanups Namhyung Kim 2015-04-02 8:35 ` Jiri Olsa 2015-04-02 9:16 ` Adrian Hunter 2015-04-02 14:15 ` Arnaldo Carvalho de Melo 2015-04-02 20:42 ` Adrian Hunter 2015-04-03 5:07 ` [tip:perf/core] perf db-export: No need to have -> thread twice in struct export_sample tip-bot for Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).