Scrolling down broken with "perf top --hierarchy"
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).
Signature · 1 line
Markus
Namhyung Kim
maintainerHi Markus,
Quoted 5 lines · Markus Trippelsdorf
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.
Quoted 1 line
From
38ef0f20e6b787fcdab265307ac679cfac6dd0ffMon Sep 17 00:00:00 2001
From: Namhyung Kim <[email protected]>
Date: Fri, 7 Oct 2016 10:09:42 +0900
Subject: [PATCH] perf top: Fix refreshing hierarchy entries on TUI
Markus reported that perf top --hierarch cannot scroll down after refresh. This was because the number of entries are not updated when hierarchy is enabled.
Unlike normal report view, hierarchy mode needs to keep its own entry count since it can have non-leaf entries which can expand/collapse.
--- tools/perf/ui/browsers/hists.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
tools/perf/ui/browsers/hists.c +2 -1
@@ -601,7 +601,8 @@ int hist_browser__run(struct hist_browser *browser, const char *help)u64 nr_entries; hbt->timer (hbt->arg); -if (hist_browser__has_filter (browser)) +if (hist_browser__has_filter (browser) || + symbol_conf.report_hierarchy)hist_browser__update_nr_entries (browser); nr_entries =hist_browser__nr_entries (browser);
Signature · 1 line
2.9.3
Quoted 8 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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.
Signature · 1 line
Markus
Namhyung Kim
maintainerQuoted 11 lines · Markus Trippelsdorf
Quoted 8 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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?
Thanks,
Namhyung
Quoted 9 lines · Namhyung Kim
Quoted 8 lines · Markus Trippelsdorf
Quoted 7 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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).
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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 in the long run you should think of making "perf top --hierarchy" the default for perf top, because it gives a much better (uncluttered) overview of what is going on.)
Signature · 1 line
Markus
Namhyung Kim
maintainerCc-ing perf maintainers,
Quoted 10 lines · Markus Trippelsdorf
Quoted 9 lines · Namhyung Kim
Quoted 8 lines · Markus Trippelsdorf
Quoted 7 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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).
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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.
Ok, I'll send a formal patch with it.
Quoted 4 lines
(And in the long run you should think of making "perf top --hierarchy" the default for perf top, because it gives a much better (uncluttered) overview of what is going on.)
I think it's a matter of taste. Some people prefer to see the top single function or something (i.e. current behavior) while others prefer to see a higher-level view.
But we can think again about the default at least for perf-top. I worried about changing default behavior because last time we did it for children mode many people complained about it. But I do think the hierarchy mode is useful for many people though.
Hmm.. I thought that it already has a config option to enable hierarch mode by default, but I cannot find it now.
Thanks,
Namhyung
Arnaldo Carvalho de Melo
maintainerEm Fri, Oct 07, 2016 at 01:53:57PM +0900, Namhyung Kim escreveu:
Quoted 28 lines
Cc-ing perf maintainers,
Quoted 10 lines · Markus Trippelsdorf
Quoted 9 lines · Namhyung Kim
Quoted 8 lines · Markus Trippelsdorf
Quoted 7 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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).
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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.
Ok, I'll send a formal patch with it.
Quoted 4 lines
(And in the long run you should think of making "perf top --hierarchy" the default for perf top, because it gives a much better (uncluttered) overview of what is going on.)
Quoted 8 lines
I think it's a matter of taste. Some people prefer to see the top single function or something (i.e. current behavior) while others prefer to see a higher-level view.
But we can think again about the default at least for perf-top. I worried about changing default behavior because last time we did it for children mode many people complained about it. But I do think the hierarchy mode is useful for many people though.
So, I think in such cases we could experiment with asking the user about switching to the new mode by showing a popup message telling what it is about, if the user says "yes, I want to try it" switch to it and if another hotkey is pressed later, write what was chosen (yes, switch to this new mode, no, I don't like it, don't pester me about it anymore) to its ~/.perfconfig file so that next time it goes straight to this new mode, else don't ask the user again and keep using whatever mode was there already.
What do you think?
- Arnaldo
Quoted 5 lines
Hmm.. I thought that it already has a config option to enable hierarch mode by default, but I cannot find it now.
Thanks,
Namhyung
Namhyung Kim
maintainerHi Arnaldo,
Sorry for late reply.
Quoted 47 lines · Arnaldo Carvalho de Melo
Em Fri, Oct 07, 2016 at 01:53:57PM +0900, Namhyung Kim escreveu:
Quoted 28 lines
Cc-ing perf maintainers,
Quoted 10 lines · Markus Trippelsdorf
Quoted 9 lines · Namhyung Kim
Quoted 8 lines · Markus Trippelsdorf
Quoted 7 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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).
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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.
Ok, I'll send a formal patch with it.
Quoted 4 lines
(And in the long run you should think of making "perf top --hierarchy" the default for perf top, because it gives a much better (uncluttered) overview of what is going on.)
Quoted 8 lines
I think it's a matter of taste. Some people prefer to see the top single function or something (i.e. current behavior) while others prefer to see a higher-level view.
But we can think again about the default at least for perf-top. I worried about changing default behavior because last time we did it for children mode many people complained about it. But I do think the hierarchy mode is useful for many people though.
So, I think in such cases we could experiment with asking the user about switching to the new mode by showing a popup message telling what it is about, if the user says "yes, I want to try it" switch to it and if another hotkey is pressed later, write what was chosen (yes, switch to this new mode, no, I don't like it, don't pester me about it anymore) to its ~/.perfconfig file so that next time it goes straight to this new mode, else don't ask the user again and keep using whatever mode was there already.
Quoted 1 line
What do you think?
I think it's a flexible way to set the default behavior while it seems like a little bit complicated for implementation. Also I think it's better to popup another dialog at the end and asks for comfirmation (but it might not be appropriate for --stdio).
And to do that, we need to have a (programmable) way of dealing with the configs.
Taeung, is there an update on your config patchset (especially for write support)?
Thanks,
Namhyung
Hi, Namhyung and Arnaldo :)
Quoted 59 lines · Namhyung Kim
Hi Arnaldo,
Sorry for late reply.
Quoted 47 lines · Arnaldo Carvalho de Melo
Em Fri, Oct 07, 2016 at 01:53:57PM +0900, Namhyung Kim escreveu:
Quoted 28 lines
Cc-ing perf maintainers,
Quoted 10 lines · Markus Trippelsdorf
Quoted 9 lines · Namhyung Kim
Quoted 8 lines · Markus Trippelsdorf
Quoted 7 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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).
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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.
Ok, I'll send a formal patch with it.
Quoted 4 lines
(And in the long run you should think of making "perf top --hierarchy" the default for perf top, because it gives a much better (uncluttered) overview of what is going on.)
Quoted 8 lines
I think it's a matter of taste. Some people prefer to see the top single function or something (i.e. current behavior) while others prefer to see a higher-level view.
But we can think again about the default at least for perf-top. I worried about changing default behavior because last time we did it for children mode many people complained about it. But I do think the hierarchy mode is useful for many people though.
So, I think in such cases we could experiment with asking the user about switching to the new mode by showing a popup message telling what it is about, if the user says "yes, I want to try it" switch to it and if another hotkey is pressed later, write what was chosen (yes, switch to this new mode, no, I don't like it, don't pester me about it anymore) to its ~/.perfconfig file so that next time it goes straight to this new mode, else don't ask the user again and keep using whatever mode was there already.
Quoted 1 line
What do you think?
I think it's a flexible way to set the default behavior while it seems like a little bit complicated for implementation. Also I think it's better to popup another dialog at the end and asks for comfirmation (but it might not be appropriate for --stdio).
Quoted 6 lines
And to do that, we need to have a (programmable) way of dealing with the configs.
Taeung, is there an update on your config patchset (especially for write support)?
Is related this link with what you said ? https://lkml.org/lkml/2016/1/11/495
Yes, the config patchset would be need to be updated. Because the config patchset which has 'write' feature don't use a recent 'struct perf_config_set' so I should change it to use 'perf_config_set' like show_config() of builtin-config.c:36.
Do you need write support of perf-config command ?
If this feature is more necessary than a recent patchset about default config array https://lkml.org/lkml/2016/9/5/17,
I'd remake config patchset for getting and setting features first. :)
Thanks,
Taeung
Namhyung Kim
maintainerHi Taeung,
Quoted 65 lines · Taeung Song
Hi, Namhyung and Arnaldo :)
Quoted 62 lines · Namhyung Kim
Hi Arnaldo,
Sorry for late reply.
Quoted 47 lines · Arnaldo Carvalho de Melo
Em Fri, Oct 07, 2016 at 01:53:57PM +0900, Namhyung Kim escreveu:
Quoted 28 lines
Cc-ing perf maintainers,
Quoted 10 lines · Markus Trippelsdorf
Quoted 9 lines · Namhyung Kim
Quoted 8 lines · Markus Trippelsdorf
Quoted 7 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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).
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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.
Ok, I'll send a formal patch with it.
Quoted 4 lines
(And in the long run you should think of making "perf top --hierarchy" the default for perf top, because it gives a much better (uncluttered) overview of what is going on.)
Quoted 8 lines
I think it's a matter of taste. Some people prefer to see the top single function or something (i.e. current behavior) while others prefer to see a higher-level view.
But we can think again about the default at least for perf-top. I worried about changing default behavior because last time we did it for children mode many people complained about it. But I do think the hierarchy mode is useful for many people though.
So, I think in such cases we could experiment with asking the user about switching to the new mode by showing a popup message telling what it is about, if the user says "yes, I want to try it" switch to it and if another hotkey is pressed later, write what was chosen (yes, switch to this new mode, no, I don't like it, don't pester me about it anymore) to its ~/.perfconfig file so that next time it goes straight to this new mode, else don't ask the user again and keep using whatever mode was there already.
Quoted 1 line
What do you think?
I think it's a flexible way to set the default behavior while it seems like a little bit complicated for implementation. Also I think it's better to popup another dialog at the end and asks for comfirmation (but it might not be appropriate for --stdio).
And to do that, we need to have a (programmable) way of dealing with the configs.
Quoted 6 lines
Quoted 3 lines
Taeung, is there an update on your config patchset (especially for write support)?
Is related this link with what you said ?
https://lkml.org/lkml/2016/1/11/495
Yep, that kind of thing.
Quoted 10 lines
Yes, the config patchset would be need to be updated. Because the config patchset which has 'write' feature don't use a recent 'struct
perf_config_set' so I should change it to use 'perf_config_set' likeshow_config()of builtin-config.c:36.Do you need write support of perf-config command ?
If this feature is more necessary than a recent patchset about default config array https://lkml.org/lkml/2016/9/5/17,
I'd remake config patchset for getting and setting features first. :)
What I need is a way to add a config item with specific value. Maybe I can just append a line into a config file, but it needs to check possible conflict somehow. So I think it needs to process existing config items properly and update with the new value.
Thanks,
Namhyung
Sorry for late reply, Namhyung
Quoted 88 lines · Namhyung Kim
Hi Taeung,
Quoted 65 lines · Taeung Song
Hi, Namhyung and Arnaldo :)
Quoted 62 lines · Namhyung Kim
Hi Arnaldo,
Sorry for late reply.
Quoted 47 lines · Arnaldo Carvalho de Melo
Em Fri, Oct 07, 2016 at 01:53:57PM +0900, Namhyung Kim escreveu:
Quoted 28 lines
Cc-ing perf maintainers,
Quoted 10 lines · Markus Trippelsdorf
Quoted 9 lines · Namhyung Kim
Quoted 8 lines · Markus Trippelsdorf
Quoted 7 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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).
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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.
Ok, I'll send a formal patch with it.
Quoted 4 lines
(And in the long run you should think of making "perf top --hierarchy" the default for perf top, because it gives a much better (uncluttered) overview of what is going on.)
Quoted 8 lines
I think it's a matter of taste. Some people prefer to see the top single function or something (i.e. current behavior) while others prefer to see a higher-level view.
But we can think again about the default at least for perf-top. I worried about changing default behavior because last time we did it for children mode many people complained about it. But I do think the hierarchy mode is useful for many people though.
So, I think in such cases we could experiment with asking the user about switching to the new mode by showing a popup message telling what it is about, if the user says "yes, I want to try it" switch to it and if another hotkey is pressed later, write what was chosen (yes, switch to this new mode, no, I don't like it, don't pester me about it anymore) to its ~/.perfconfig file so that next time it goes straight to this new mode, else don't ask the user again and keep using whatever mode was there already.
Quoted 1 line
What do you think?
I think it's a flexible way to set the default behavior while it seems like a little bit complicated for implementation. Also I think it's better to popup another dialog at the end and asks for comfirmation (but it might not be appropriate for --stdio).
And to do that, we need to have a (programmable) way of dealing with the configs.
Quoted 6 lines
Quoted 3 lines
Taeung, is there an update on your config patchset (especially for write support)?
Is related this link with what you said ?
https://lkml.org/lkml/2016/1/11/495Yep, that kind of thing.
Quoted 10 lines
Yes, the config patchset would be need to be updated. Because the config patchset which has 'write' feature don't use a recent 'struct
perf_config_set' so I should change it to use 'perf_config_set' likeshow_config()of builtin-config.c:36.Do you need write support of perf-config command ?
If this feature is more necessary than a recent patchset about default config array https://lkml.org/lkml/2016/9/5/17,
I'd remake config patchset for getting and setting features first. :)
Quoted 5 lines
What I need is a way to add a config item with specific value. Maybe I can just append a line into a config file, but it needs to check possible conflict somehow. So I think it needs to process existing config items properly and update with the new value.
I got it. Understood what you said!
I'll send a patchset for this. :)
Thanks,
Taeung
Quoted 10 lines · Markus Trippelsdorf
Quoted 9 lines · Namhyung Kim
Quoted 8 lines · Markus Trippelsdorf
Quoted 7 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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).
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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.
Signature · 1 line
Markus
Quoted 13 lines · Markus Trippelsdorf
Quoted 12 lines · Markus Trippelsdorf
Quoted 11 lines · Namhyung Kim
Quoted 10 lines · Markus Trippelsdorf
Quoted 8 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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.
Quoted 8 lines
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
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.
Signature · 1 line
Markus
Quoted 18 lines · Markus Trippelsdorf
Quoted 17 lines · Markus Trippelsdorf
Quoted 16 lines · Markus Trippelsdorf
Quoted 14 lines · Namhyung Kim
Quoted 11 lines · Markus Trippelsdorf
Quoted 8 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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?
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
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...
Signature · 1 line
Markus
Quoted 44 lines · Markus Trippelsdorf
Quoted 18 lines · Markus Trippelsdorf
Quoted 17 lines · Markus Trippelsdorf
Quoted 16 lines · Markus Trippelsdorf
Quoted 14 lines · Namhyung Kim
Quoted 11 lines · Markus Trippelsdorf
Quoted 8 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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?
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
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(quoted diff) +1
-1+ 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
Review
Quoted 10 lines
(quoted diff) +0
-00.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.
Anyway, the following hack "fixes" the issue for me:
tools/perf/util/hist.c +1 -1
@@ -67,7 +67,7 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)* +3 accounts for ' y ' symtab origin info */ if (h->ms.sym) { - symlen = h->ms.sym->namelen +4 ; + symlen =200 ;if (verbose) symlen +=BITS_PER_LONG /4 +2 +3 ;hists__new_col_len (hists,HISTC_SYMBOL , symlen);
Signature · 1 line
Markus
Namhyung Kim
maintainerHi,
Sorry for late reply.
Quoted 56 lines · Markus Trippelsdorf
Quoted 44 lines · Markus Trippelsdorf
Quoted 18 lines · Markus Trippelsdorf
Quoted 17 lines · Markus Trippelsdorf
Quoted 16 lines · Markus Trippelsdorf
Quoted 14 lines · Namhyung Kim
Quoted 11 lines · Markus Trippelsdorf
Quoted 8 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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?
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
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(quoted diff) +1
-1+ 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_SSE2Review
Quoted 10 lines
(quoted diff) +0
-00.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
Quoted 3 lines
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 orhists__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
Quoted 1 line
From
83383fa1412ddb4a1b7113aea799df63887bb4f8Mon Sep 17 00:00:00 2001
From: Namhyung Kim <[email protected]>
Date: Mon, 24 Oct 2016 13:32:23 +0900
Subject: [PATCH] perf hists: Fix column length on --hierarchy
Markus reported that there's a weird behavior on perf top --hierarch regarding the column length. Looking at the code, I found a debious code which affects the symtoms. When --hierarchy option is used, the last column length might be inaccurate since it skips to update the length on leaf entries. I cannot remember why it did and looks like a leftover from previous version during the development. Anyway updating the column length often is not harmful. So let's move the code out.
--- tools/perf/util/hist.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
tools/perf/util/hist.c +6 -6
@@ -1600,18 +1600,18 @@ static void hists__hierarchy_output_resort(struct hists *hists,if (prog)ui_progress__update (prog,1 ); + hists->nr_entries++; +if (!he->filtered) { + hists->nr_non_filtered_entries++; +hists__calc_col_len (hists, he); + } +if (!he->leaf) {hists__hierarchy_output_resort (hists, prog, &he->hroot_in, &he->hroot_out, min_callchain_hits, use_callchain); - hists->nr_entries++; -if (!he->filtered) { - hists->nr_non_filtered_entries++; -hists__calc_col_len (hists, he); - } -continue ; }
Signature · 1 line
2.10.0
Quoted 61 lines · Namhyung Kim
Hi,
Sorry for late reply.
Quoted 56 lines · Markus Trippelsdorf
Quoted 54 lines · Markus Trippelsdorf
Quoted 18 lines · Markus Trippelsdorf
Quoted 17 lines · Markus Trippelsdorf
Quoted 16 lines · Markus Trippelsdorf
Quoted 14 lines · Namhyung Kim
Quoted 11 lines · Markus Trippelsdorf
Quoted 8 lines · Namhyung Kim
Quoted 5 lines · Markus Trippelsdorf
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?
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
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(quoted diff) +1
-1+ 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
Quoted 6 lines
Quoted 3 lines
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 orhists__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?
Yes, it does. Thank you.
Another issue: all entries vanish if one scrolls to the left two times.
Signature · 1 line
Markus
Namhyung Kim
maintainerQuoted 48 lines · Markus Trippelsdorf
Quoted 47 lines · Namhyung Kim
Hi,
Sorry for late reply.
Quoted 41 lines · Markus Trippelsdorf
Quoted 26 lines · Markus Trippelsdorf
Quoted 7 lines · Markus Trippelsdorf
Quoted 3 lines · Markus Trippelsdorf
On 2016.10.07 at 06:32 +0200, Markus Trippelsdorf wrote:
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(quoted diff) +1
-1+ 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_SSE2Review
Quoted 10 lines
(quoted diff) +0
-00.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::TallTo 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 orhists__reset_col_len()is called too early or too often.
Quoted 6 lines
Quoted 2 lines
Right, it missed to call the function for leaf entries. Could you please check below patch fixes the problem?
Yes, it does. Thank you.
Another issue: all entries vanish if one scrolls to the left two times.
Hmm.. Did you mean pressing RIGHT key two times?
Thanks,
Namhyung
Quoted 49 lines · Namhyung Kim
Quoted 48 lines · Markus Trippelsdorf
Quoted 47 lines · Namhyung Kim
Hi,
Sorry for late reply.
Quoted 41 lines · Markus Trippelsdorf
Quoted 26 lines · Markus Trippelsdorf
Quoted 7 lines · Markus Trippelsdorf
Quoted 3 lines · Markus Trippelsdorf
On 2016.10.07 at 06:32 +0200, Markus Trippelsdorf wrote:
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(quoted diff) +1
-1+ 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_SSE2Review
Quoted 10 lines
(quoted diff) +0
-00.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::TallTo 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 orhists__reset_col_len()is called too early or too often.
Quoted 8 lines
Quoted 6 lines
Quoted 2 lines
Right, it missed to call the function for leaf entries. Could you please check below patch fixes the problem?
Yes, it does. Thank you.
Another issue: all entries vanish if one scrolls to the left two times.
Hmm.. Did you mean pressing RIGHT key two times?
Ah, yes, sorry.
Signature · 1 line
Markus
Namhyung Kim
maintainerQuoted 7 lines · Markus Trippelsdorf
Quoted 4 lines · Namhyung Kim
Quoted 1 line · Markus Trippelsdorf
Another issue: all entries vanish if one scrolls to the left two times.
Hmm.. Did you mean pressing RIGHT key two times?
Ah, yes, sorry.
Ok, will fix. Thanks for the report.
Thanks,
Namhyung