Re: Scrolling down broken with "perf top --hierarchy"

From: Namhyung Kim
Date: Mon Oct 24 2016 - 00:55:16 EST


Hi,

Sorry for late reply.

On Mon, Oct 10, 2016 at 07:54:27PM +0200, Markus Trippelsdorf wrote:
> On 2016.10.08 at 13:21 +0200, Markus Trippelsdorf wrote:
> > On 2016.10.07 at 07:09 +0200, Markus Trippelsdorf wrote:
> > > On 2016.10.07 at 06:56 +0200, Markus Trippelsdorf wrote:
> > > > On 2016.10.07 at 06:32 +0200, Markus Trippelsdorf wrote:
> > > > > On 2016.10.07 at 13:22 +0900, Namhyung Kim wrote:
> > > > > > On Fri, Oct 07, 2016 at 05:51:18AM +0200, Markus Trippelsdorf wrote:
> > > > > > > On 2016.10.07 at 10:17 +0900, Namhyung Kim wrote:
> > > > > > > > On Thu, Oct 06, 2016 at 06:33:33PM +0200, Markus Trippelsdorf wrote:
> > > > > > > > > Scrolling down is broken when using "perf top --hierarchy".
> > > > > > > > > When it starts up everything is OK and one can scroll up and down to all
> > > > > > > > > entries. But as further and further new entries get added to the list,
> > > > > > > > > scrolling down is blocked (at the position of the last entry that was
> > > > > > > > > shown directly after startup).
> > > > > > > >
> > > > > > > > I think below patch will fix the problem. Please check.
> > > > > > >
> > > > > > > Yes. It works fine now. Many thanks.
> > > > > >
> > > > > > Good. Can I add your Tested-by then?
> > > > >
> > > > > Sure.
> > > >
> > > > And BTW symbols are currently always cut off at 60 characters in
> > > > expanded entries.
> > >
> > > Hmm, no. Sometimes they are cut off, sometimes they are not. I haven't
> > > figured out what triggered this strange behavior.
> >
> > Here is an example:
> >
> > % echo $COLUMNS
> > 179
> > % perf top --hierarchy
> > + 34.81% [kernel]
> > - 20.89% chrome
> > 0.51% [.] v8::internal::IncrementalMarking:
> > 0.43% [.] tc_malloc
> > 0.29% [.] sqlite3BtreeMovetoUnpacked
> > 0.28% [.] tc_free
> > 0.24% [.] v8::internal::BodyDescriptorBase:
> > 0.24% [.] sqlite3VdbeExec
> > 0.22% [.] v8::internal::MarkCompactCollecto
> > 0.19% [.] blink::SelectorChecker::checkOne
> > 0.19% [.] SkBlitRow::Color32
> > 0.18% [.] SkBlitLCD16OpaqueRow_SSE2
> > 0.17% [.] btreeInitPage.part.366
> > 0.16% [.] blink::SelectorChecker::matchSele
> > 0.15% [.] blink::ElementRuleCollector::coll
> > 0.15% [.] blink::CSSTokenizer::consumeName
> > 0.14% [.] sqlite3GetVarint
> > 0.13% [.] operator new[]
> > 0.12% [.] FPDFAPI_inflate_fast
> > 0.11% [.] v8::internal::HeapObject::SizeFro
> > 0.09% [.] tracked_objects::ThreadData::Tall
> > ...
>
> To continue this monologue, perf doesn't even look at these entries. So some
> hists__calc_col_len() calls seem to be missing for the "perf top --hierarchy"
> case or hists__reset_col_len() is called too early or too often.

Right, it missed to call the function for leaf entries. Could you
please check below patch fixes the problem?

Thanks,
Namhyung