From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Jin Yao <yao.jin@linux.intel.com>
Cc: jolsa@kernel.org, peterz@infradead.org, mingo@redhat.com,
alexander.shishkin@linux.intel.com, Linux-kernel@vger.kernel.org,
ak@linux.intel.com, kan.liang@intel.com, yao.jin@intel.com
Subject: Re: [PATCH 2/2] perf top: support hotkey to change sort order
Date: Fri, 20 Mar 2020 10:51:06 -0300 [thread overview]
Message-ID: <20200320135106.GB29833@kernel.org> (raw)
In-Reply-To: <20200320072414.25551-2-yao.jin@linux.intel.com>
Em Fri, Mar 20, 2020 at 03:24:14PM +0800, Jin Yao escreveu:
> It would be nice if we can use a hotkey in perf top browser to
> select a event for sorting.
>
> For example,
> perf top --group -e cycles,instructions,cache-misses
>
> Samples
> Overhead Shared Object Symbol
> 40.03% 45.71% 0.03% div [.] main
> 20.46% 14.67% 0.21% libc-2.27.so [.] __random_r
> 20.01% 19.54% 0.02% libc-2.27.so [.] __random
> 9.68% 10.68% 0.00% div [.] compute_flag
> 4.32% 4.70% 0.00% libc-2.27.so [.] rand
> 3.84% 3.43% 0.00% div [.] rand@plt
> 0.05% 0.05% 2.33% libc-2.27.so [.] __strcmp_sse2_unaligned
> 0.04% 0.08% 2.43% perf [.] perf_hpp__is_dynamic_en
> 0.04% 0.02% 6.64% perf [.] rb_next
> 0.04% 0.01% 3.87% perf [.] dso__find_symbol
> 0.04% 0.04% 1.77% perf [.] sort__dso_cmp
>
> When user press hotkey '2' (event index, starting from 0), it indicates
> to sort output by the third event in group (cache-misses).
>
> Samples
> Overhead Shared Object Symbol
> 4.07% 1.28% 6.68% perf [.] rb_next
> 3.57% 3.98% 4.11% perf [.] __hists__insert_output
> 3.67% 11.24% 3.60% perf [.] perf_hpp__is_dynamic_e
> 3.67% 3.20% 3.20% perf [.] hpp__sort_overhead
> 0.81% 0.06% 3.01% perf [.] dso__find_symbol
> 1.62% 5.47% 2.51% perf [.] hists__match
> 2.70% 1.86% 2.47% libc-2.27.so [.] _int_malloc
> 0.19% 0.00% 2.29% [kernel] [k] copy_page
> 0.41% 0.32% 1.98% perf [.] hists__decay_entries
> 1.84% 3.67% 1.68% perf [.] sort__dso_cmp
> 0.16% 0.00% 1.63% [kernel] [k] clear_page_erms
>
> Now the output is sorted by cache-misses.
>
> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> ---
> tools/perf/builtin-top.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
> index 144043637cec..b39f6ffb874e 100644
> --- a/tools/perf/builtin-top.c
> +++ b/tools/perf/builtin-top.c
> @@ -616,6 +616,7 @@ static void *display_thread_tui(void *arg)
> .arg = top,
> .refresh = top->delay_secs,
> };
> + int ret;
>
> /* In order to read symbols from other namespaces perf to needs to call
> * setns(2). This isn't permitted if the struct_fs has multiple users.
> @@ -626,6 +627,7 @@ static void *display_thread_tui(void *arg)
>
> prctl(PR_SET_NAME, "perf-top-UI", 0, 0, 0);
>
> +repeat:
> perf_top__sort_new_samples(top);
>
> /*
> @@ -638,13 +640,17 @@ static void *display_thread_tui(void *arg)
> hists->uid_filter_str = top->record_opts.target.uid_str;
> }
>
> - perf_evlist__tui_browse_hists(top->evlist, help, &hbt,
> + ret = perf_evlist__tui_browse_hists(top->evlist, help, &hbt,
> top->min_percent,
> &top->session->header.env,
> !top->record_opts.overwrite,
> &top->annotation_opts);
>
> - stop_top();
> + if (ret == K_RELOAD)
> + goto repeat;
> + else
> + stop_top();
> +
That is really nice and small, but shouldn't we flush all the histograms
that were in place, sorted by the previous key? I think we have a 'z'
for zeroing samples that may be what we need, take a look, please,
- Arnaldo
> return NULL;
> }
>
> --
> 2.17.1
>
--
- Arnaldo
next prev parent reply other threads:[~2020-03-20 13:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-20 7:24 [PATCH 1/2] perf top: Support --group-sort-idx to change the sort order Jin Yao
2020-03-20 7:24 ` [PATCH 2/2] perf top: support hotkey to change " Jin Yao
2020-03-20 13:51 ` Arnaldo Carvalho de Melo [this message]
2020-03-22 3:46 ` Jin, Yao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200320135106.GB29833@kernel.org \
--to=arnaldo.melo@gmail.com \
--cc=Linux-kernel@vger.kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=yao.jin@intel.com \
--cc=yao.jin@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.