On Thu, Dec 10, 2020 at 03:13:01PM +0900, Namhyung Kim wrote: > The --header-only checks file header and prints the feature data. But > as pipe mode doesn't have it in the header it prints almost nothing. > Change it to process first few records until it founds HEADER_FEATURE. > > Before: > $ perf record -o- true | perf report -i- --header-only > # ======== > # captured on : Thu Dec 10 14:34:59 2020 > # header version : 1 > # data offset : 0 > # data size : 0 > # feat offset : 0 > # ======== > # > > After: > $ perf record -o- true | perf report -i- --header-only > # ======== > # captured on : Thu Dec 10 14:49:11 2020 > # header version : 1 > # data offset : 0 > # data size : 0 > # feat offset : 0 > # ======== > # > # hostname : balhae > # os release : 5.7.17-1xxx > # perf version : 5.10.rc6.gdb0ea13cc741 > # arch : x86_64 > # nrcpus online : 8 > # nrcpus avail : 8 > # cpudesc : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz > # cpuid : GenuineIntel,6,142,12 > # total memory : 16158916 kB > # cmdline : perf record -o- true > # event : name = cycles, , id = { 81, 82, 83, 84, 85, 86, 87, 88 }, size = > 120, ... > # CPU_TOPOLOGY info available, use -I to display > # NUMA_TOPOLOGY info available, use -I to display > # pmu mappings: intel_pt = 9, intel_bts = 8, software = 1, power = 20, > uprobe = 7, ... > # time of first sample : 0.000000 > # time of last sample : 0.000000 > # sample duration : 0.000 ms > # MEM_TOPOLOGY info available, use -I to display > # cpu pmu capabilities: branches=32, max_precise=3, pmu_name=skylake > > Signed-off-by: Namhyung Kim <namhy...@kernel.org>
Acked-by: Jiri Olsa <jo...@redhat.com> thanks, jirka > --- > tools/perf/builtin-report.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c > index 5efbd0602f17..2a845d6cac09 100644 > --- a/tools/perf/builtin-report.c > +++ b/tools/perf/builtin-report.c > @@ -226,6 +226,8 @@ static int process_feature_event(struct perf_session > *session, > pr_err("failed: wrong feature ID: %" PRI_lu64 "\n", > event->feat.feat_id); > return -1; > + } else if (rep->header_only) { > + session_done = 1; > } > > /* > @@ -1512,6 +1514,13 @@ int cmd_report(int argc, const char **argv) > perf_session__fprintf_info(session, stdout, > report.show_full_info); > if (report.header_only) { > + if (data.is_pipe) { > + /* > + * we need to process first few records > + * which contains PERF_RECORD_HEADER_FEATURE. > + */ > + perf_session__process_events(session); > + } > ret = 0; > goto error; > } > -- > 2.29.2.576.ga3fc446d84-goog >