"perf hists browser: Support flat callchains" appears to have broken parent reporting

From: Andres Freund
Date: Wed Mar 30 2016 - 08:43:34 EST


Hi,

4b3a3212233a - "perf hists browser: Support flat callchains" seems to
have broken callchain display in tui mode when using !flat mode, or at
least changed it in an unintended manner.

Llooking at the same perf.data file:
perf report --tui --no-children -g
before:
- 16.69% swapper [kernel.kallsyms] [k] poll_idle
- poll_idle
+ 16.65% cpuidle_enter_state
+ 0.04% cpuidle_enter
- 3.51% swapper [kernel.kallsyms] [k] intel_idle
- intel_idle
+ 3.49% cpuidle_enter_state
+ 0.03% cpuidle_enter
- 1.35% postgres postgres [.] hash_search_with_hash_value
- hash_search_with_hash_value
- 0.32% BufTableLookup
+ ReadBuffer_common
- 0.18% LockAcquireExtended
+ 0.16% LockRelationOid
+ 0.02% XactLockTableInsert
+ 0.14% FetchPreparedStatement
+ 0.13% CreatePortal
+ 0.11% RelationIdGetRelation
+ 0.10% GetPortalByName
after:
- 16.69% swapper [kernel.kallsyms] [k] poll_idle
poll_idle
- 3.51% swapper [kernel.kallsyms] [k] intel_idle
intel_idle
- 1.35% postgres postgres [.] hash_search_with_hash_value
hash_search_with_hash_value
- 1.18% postgres postgres [.] AllocSetAlloc
AllocSetAlloc
- 0.85% postgres libc-2.22.so [.] __memcpy_sse2_unaligned
__memcpy_sse2_unaligned

as you can see after the aforementioned commit there's only one level of
callers reported.

--stdio output isn't affected.

I can provide an example perf.data file, but it apears to reproduce with
just about any profile here.

Greetings,

Andres Freund