Skip to content

RFC perf tools: Make perf_hpp__init respect output dimensions

Jiri Olsa lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest3 patches 3 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3perf tools: Get rid of superfluos call to reset_dimensionstools/perf/util/sort.c+0 -20 replies
2/3perf tools: Introduce hpp_dimension__add_output functiontools/perf/util/sort.c tools/perf/util/sort.h+8 -00 replies
3/3perf tools: Use hpp_dimension__add_output to register hpp columnstools/perf/ui/hist.c+8 -81 reply

Reviews trailers per patch

None of the 3 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchNamhyung Kim
SeriesA-b
1/3
2/3
3/3

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [RFC 0/3] perf tools: Make perf_hpp__init respect output dimensions

hi,
The perf_hpp__init currently does not respect sorting dimensions and the setup_sorting function could endup queueing same format twice. That screwed up the perf_hpp__list and got stuck in loop within perf_hpp__setup_output_field function.

  $ perf report -F +overhead
  0x00000000004c1355 in perf_hpp__is_sort_entry (format=format@entry=0x880440 <perf_hpp.format>) at util/sort.c:1506
  1506    {
     #0  0x00000000004c1355 in perf_hpp__is_sort_entry (format=format@entry=0x880440 <perf_hpp.format>) at util/sort.c:1506
     #1  0x00000000004c139d in perf_hpp__same_sort_entry (a=a@entry=0x880440 <perf_hpp.format>, b=b@entry=0x2bb2fe0) at util/sort.c:1380
     #2  0x00000000004f8d3c in perf_hpp__setup_output_field () at ui/hist.c:554
     #3  0x00000000004c1d1e in setup_sorting () at util/sort.c:1984
     #4  0x000000000042efbf in cmd_report (argc=0, argv=0x7ffea5a0e790, prefix=<optimized out>) at builtin-report.c:874
     #5  0x0000000000476f13 in run_builtin (p=p@entry=0x875628 <commands+168>, argc=argc@entry=3, argv=argv@entry=0x7ffea5a0e790) at perf.c:385
     #6  0x000000000047710b in handle_internal_command (argc=3, argv=0x7ffea5a0e790) at perf.c:445
     #7  0x0000000000477176 in run_argv (argcp=argcp@entry=0x7ffea5a0e5fc, argv=argv@entry=0x7ffea5a0e5f0) at perf.c:489
     #8  0x00000000004773e7 in main (argc=3, argv=0x7ffea5a0e790) at perf.c:606

Using hpp_dimension__add_output function to register the output column. It will also mark the dimension as taken and omit above stuck.

It might need some other changes.. not sure, Namhyung? ;-)

Available in:
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
perf/cols

thanks,
jirka

---
Jiri Olsa (3):
perf tools: Get rid of superfluos call to reset_dimensions perf tools: Introduce hpp_dimension__add_output function perf tools: Use hpp_dimension__add_output to register hpp columns

 tools/perf/ui/hist.c   | 16 ++++++++--------
 tools/perf/util/sort.c |  8 ++++++--
 tools/perf/util/sort.h |  2 ++
 3 files changed, 16 insertions(+), 10 deletions(-)