lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 14 Dec 2020 00:00:35 +0100 From: Jiri Olsa <jolsa@...hat.com> To: Namhyung Kim <namhyung@...nel.org> Cc: Arnaldo Carvalho de Melo <acme@...nel.org>, Ingo Molnar <mingo@...nel.org>, Peter Zijlstra <peterz@...radead.org>, Mark Rutland <mark.rutland@....com>, Alexander Shishkin <alexander.shishkin@...ux.intel.com>, LKML <linux-kernel@...r.kernel.org>, Stephane Eranian <eranian@...gle.com>, Ian Rogers <irogers@...gle.com> Subject: Re: [PATCH 2/2] perf evlist: Support pipe mode display On Thu, Dec 10, 2020 at 03:13:02PM +0900, Namhyung Kim wrote: > Likewise, perf evlist command should print event attributes by reading > PERF_RECORD_HEADER_ATTR records. > > Before: > $ perf record -o- true | ./perf evlist -i- > (prints nothing) > > After: > $ perf record -o- true | ./perf evlist -i- > cycles:pppH > > Signed-off-by: Namhyung Kim <namhyung@...nel.org> Acked-by: Jiri Olsa <jolsa@...hat.com> thanks, jirka > --- > tools/perf/builtin-evlist.c | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/builtin-evlist.c b/tools/perf/builtin-evlist.c > index 98e992801251..4617b32c9c97 100644 > --- a/tools/perf/builtin-evlist.c > +++ b/tools/perf/builtin-evlist.c > @@ -17,6 +17,14 @@ > #include "util/data.h" > #include "util/debug.h" > #include <linux/err.h> > +#include "util/tool.h" > + > +static int process_header_feature(struct perf_session *session __maybe_unused, > + union perf_event *event __maybe_unused) > +{ > + session_done = 1; > + return 0; > +} > > static int __cmd_evlist(const char *file_name, struct perf_attr_details *details) > { > @@ -27,12 +35,20 @@ static int __cmd_evlist(const char *file_name, struct perf_attr_details *details > .mode = PERF_DATA_MODE_READ, > .force = details->force, > }; > + struct perf_tool tool = { > + /* only needed for pipe mode */ > + .attr = perf_event__process_attr, > + .feature = process_header_feature, > + }; > bool has_tracepoint = false; > > - session = perf_session__new(&data, 0, NULL); > + session = perf_session__new(&data, 0, &tool); > if (IS_ERR(session)) > return PTR_ERR(session); > > + if (data.is_pipe) > + perf_session__process_events(session); > + > evlist__for_each_entry(session->evlist, pos) { > evsel__fprintf(pos, details, stdout); > > -- > 2.29.2.576.ga3fc446d84-goog >
Powered by blists - more mailing lists