[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190507081759.GB17416@krava>
Date: Tue, 7 May 2019 10:18:00 +0200
From: Jiri Olsa <jolsa@...hat.com>
To: Song Liu <songliubraving@...com>
Cc: Jiri Olsa <jolsa@...nel.org>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
lkml <linux-kernel@...r.kernel.org>,
Ingo Molnar <mingo@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Stanislav Fomichev <sdf@...ichev.me>,
Adrian Hunter <adrian.hunter@...el.com>,
Andi Kleen <ak@...ux.intel.com>
Subject: Re: [PATCH 10/12] perf script: Add --show-bpf-events to show eBPF
related events
On Mon, May 06, 2019 at 09:42:44PM +0000, Song Liu wrote:
SNIP
> > +static int
> > +process_bpf_events(struct perf_tool *tool __maybe_unused,
> > + union perf_event *event,
> > + struct perf_sample *sample,
> > + struct machine *machine)
> > +{
> > + struct thread *thread;
> > + struct perf_script *script = container_of(tool, struct perf_script, tool);
> > + struct perf_session *session = script->session;
> > + struct perf_evsel *evsel = perf_evlist__id2evsel(session->evlist, sample->id);
> > +
> > + if (machine__process_ksymbol(machine, event, sample) < 0)
> > + return -1;
> > +
> > + if (!evsel->attr.sample_id_all) {
> > + perf_event__fprintf(event, stdout);
> > + return 0;
> > + }
> > +
> > + thread = machine__findnew_thread(machine, sample->pid, sample->tid);
> > + if (thread == NULL) {
> > + pr_debug("problem processing MMAP event, skipping it.\n");
> > + return -1;
> > + }
> > +
> > + if (!filter_cpu(sample)) {
> > + perf_sample__fprintf_start(sample, thread, evsel,
> > + event->header.type, stdout);
> > + perf_event__fprintf(event, stdout);
> > + }
> > +
> > + thread__put(thread);
> > + return 0;
> > +}
> > +
> > static void sig_handler(int sig __maybe_unused)
> > {
> > session_done = 1;
> > @@ -2420,6 +2456,10 @@ static int __cmd_script(struct perf_script *script)
> > script->tool.ordered_events = false;
> > script->tool.finished_round = process_finished_round_event;
> > }
> > + if (script->show_bpf_events) {
> > + script->tool.ksymbol = process_bpf_events;
> > + script->tool.bpf_event = process_bpf_events;
>
> Why do we need both set to process_bpf_events?
--show-*-events option is there to display all the related events for given '*'
we want to display both ksymbol and bpf_event in here,
process_bpf_events takes care of it for both of them
thanks,
jirka
Powered by blists - more mailing lists