Messages in this thread | | | Date | Thu, 26 Nov 2015 13:22:26 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 2/3] perf script: Pass perf_script into process_event |
| |
Em Thu, Nov 26, 2015 at 02:55:24PM +0100, Jiri Olsa escreveu: > Passing perf_script struct into process_event function.
For? Please write the motivation for a patch.
- Arnaldo
> Link: http://lkml.kernel.org/n/tip-jad0bjspvazzf5v4bsnz74ax@git.kernel.org > Signed-off-by: Jiri Olsa <jolsa@kernel.org> > --- > tools/perf/builtin-script.c | 26 ++++++++++++++------------ > 1 file changed, 14 insertions(+), 12 deletions(-) > > diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c > index 8e3f8048d2d0..3c3f8d0e3064 100644 > --- a/tools/perf/builtin-script.c > +++ b/tools/perf/builtin-script.c > @@ -588,8 +588,17 @@ static void print_sample_flags(u32 flags) > printf(" %-4s ", str); > } > > -static void process_event(union perf_event *event, struct perf_sample *sample, > - struct perf_evsel *evsel, struct addr_location *al) > +struct perf_script { > + struct perf_tool tool; > + struct perf_session *session; > + bool show_task_events; > + bool show_mmap_events; > + bool show_switch_events; > +}; > + > +static void process_event(struct perf_script *script __maybe_unused, union perf_event *event, > + struct perf_sample *sample, struct perf_evsel *evsel, > + struct addr_location *al) > { > struct thread *thread = al->thread; > struct perf_event_attr *attr = &evsel->attr; > @@ -663,12 +672,13 @@ static int cleanup_scripting(void) > return scripting_ops ? scripting_ops->stop_script() : 0; > } > > -static int process_sample_event(struct perf_tool *tool __maybe_unused, > +static int process_sample_event(struct perf_tool *tool, > union perf_event *event, > struct perf_sample *sample, > struct perf_evsel *evsel, > struct machine *machine) > { > + struct perf_script *scr = container_of(tool, struct perf_script, tool); > struct addr_location al; > > if (debug_mode) { > @@ -697,21 +707,13 @@ static int process_sample_event(struct perf_tool *tool __maybe_unused, > if (scripting_ops) > scripting_ops->process_event(event, sample, evsel, &al); > else > - process_event(event, sample, evsel, &al); > + process_event(scr, event, sample, evsel, &al); > > out_put: > addr_location__put(&al); > return 0; > } > > -struct perf_script { > - struct perf_tool tool; > - struct perf_session *session; > - bool show_task_events; > - bool show_mmap_events; > - bool show_switch_events; > -}; > - > static int process_attr(struct perf_tool *tool, union perf_event *event, > struct perf_evlist **pevlist) > { > -- > 2.4.3
| |