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 v7 2/3] perf report: Support a new key to reload the browser
Date: Wed, 18 Mar 2020 15:52:38 -0300 [thread overview]
Message-ID: <20200318185238.GL11531@kernel.org> (raw)
In-Reply-To: <20200220013616.19916-3-yao.jin@linux.intel.com>
Em Thu, Feb 20, 2020 at 09:36:15AM +0800, Jin Yao escreveu:
> Sometimes we may need to reload the browser to update the output since
> some options are changed.
>
> This patch creates a new key K_RELOAD. Once the __cmd_report() returns
> K_RELOAD, it would repeat the whole process, such as, read samples from
> data file, sort the data and display in the browser.
>
> v7:
> ---
> Rebase to perf/core, no other change.
>
> v6:
> ---
> No change.
>
> v5:
> ---
> 1. Fix the 'make NO_SLANG=1' error. Define K_RELOAD in util/hist.h.
> 2. Skip setup_sorting() in repeat path if last key is K_RELOAD.
>
> v4:
> ---
> Need to quit in perf_evsel_menu__run if key is K_RELOAD.
>
> v3:
> ---
> No change.
>
> v2:
> ---
> This is a new patch created in v2.
>
> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> ---
> tools/perf/builtin-report.c | 6 +++---
> tools/perf/ui/browsers/hists.c | 1 +
> tools/perf/ui/keysyms.h | 1 +
> tools/perf/util/hist.h | 1 +
> 4 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> index 862c7f8853dc..842ef92c3598 100644
> --- a/tools/perf/builtin-report.c
> +++ b/tools/perf/builtin-report.c
> @@ -635,7 +635,7 @@ static int report__browse_hists(struct report *rep)
> * Usually "ret" is the last pressed key, and we only
> * care if the key notifies us to switch data file.
> */
> - if (ret != K_SWITCH_INPUT_DATA)
> + if (ret != K_SWITCH_INPUT_DATA && ret != K_RELOAD)
> ret = 0;
> break;
> case 2:
> @@ -1469,7 +1469,7 @@ int cmd_report(int argc, const char **argv)
> sort_order = sort_tmp;
> }
>
> - if ((last_key != K_SWITCH_INPUT_DATA) &&
> + if ((last_key != K_SWITCH_INPUT_DATA && last_key != K_RELOAD) &&
> (setup_sorting(session->evlist) < 0)) {
> if (sort_order)
> parse_options_usage(report_usage, options, "s", 1);
> @@ -1548,7 +1548,7 @@ int cmd_report(int argc, const char **argv)
> sort__setup_elide(stdout);
>
> ret = __cmd_report(&report);
> - if (ret == K_SWITCH_INPUT_DATA) {
> + if (ret == K_SWITCH_INPUT_DATA || ret == K_RELOAD) {
> perf_session__delete(session);
> last_key = K_SWITCH_INPUT_DATA;
Are you sure this shouldn't be:
last_key = ret;
?
I'm applying it to test now anyway,
- Arnaldo
> goto repeat;
> diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
> index f36dee499320..7c091fa51a5c 100644
> --- a/tools/perf/ui/browsers/hists.c
> +++ b/tools/perf/ui/browsers/hists.c
> @@ -3440,6 +3440,7 @@ static int perf_evsel_menu__run(struct evsel_menu *menu,
> pos = perf_evsel__prev(pos);
> goto browse_hists;
> case K_SWITCH_INPUT_DATA:
> + case K_RELOAD:
> case 'q':
> case CTRL('c'):
> goto out;
> diff --git a/tools/perf/ui/keysyms.h b/tools/perf/ui/keysyms.h
> index fbfac29077f2..04cc4e5c031f 100644
> --- a/tools/perf/ui/keysyms.h
> +++ b/tools/perf/ui/keysyms.h
> @@ -25,5 +25,6 @@
> #define K_ERROR -2
> #define K_RESIZE -3
> #define K_SWITCH_INPUT_DATA -4
> +#define K_RELOAD -5
>
> #endif /* _PERF_KEYSYMS_H_ */
> diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
> index 0aa63aeb58ec..bb994e030495 100644
> --- a/tools/perf/util/hist.h
> +++ b/tools/perf/util/hist.h
> @@ -536,6 +536,7 @@ static inline int block_hists_tui_browse(struct block_hist *bh __maybe_unused,
> #define K_LEFT -1000
> #define K_RIGHT -2000
> #define K_SWITCH_INPUT_DATA -3000
> +#define K_RELOAD -4000
> #endif
>
> unsigned int hists__sort_list_width(struct hists *hists);
> --
> 2.17.1
>
--
- Arnaldo
next prev parent reply other threads:[~2020-03-18 18:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-20 1:36 [PATCH v7 0/3] perf report: Support sorting by a given event in group Jin Yao
2020-02-20 1:36 ` [PATCH v7 1/3] perf report: Change sort order by a specified " Jin Yao
2020-03-18 18:45 ` Arnaldo Carvalho de Melo
2020-03-19 1:14 ` Jin, Yao
2020-04-04 8:42 ` [tip: perf/urgent] perf report: Allow specifying event to be used as sort key in --group output tip-bot2 for Jin Yao
2020-02-20 1:36 ` [PATCH v7 2/3] perf report: Support a new key to reload the browser Jin Yao
2020-03-18 18:52 ` Arnaldo Carvalho de Melo [this message]
2020-03-19 1:40 ` Jin, Yao
2020-04-04 8:42 ` [tip: perf/urgent] " tip-bot2 for Jin Yao
2020-02-20 1:36 ` [PATCH v7 3/3] perf report: support hotkey to let user select any event for sorting Jin Yao
2020-04-04 8:42 ` [tip: perf/urgent] perf report/top TUI: Support hotkeys " tip-bot2 for Jin Yao
2020-03-18 19:01 ` [PATCH v7 0/3] perf report: Support sorting by a given event in group Arnaldo Carvalho de Melo
2020-03-18 19:03 ` Arnaldo Carvalho de Melo
2020-03-18 19:08 ` Arnaldo Carvalho de Melo
2020-03-19 1:42 ` 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=20200318185238.GL11531@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.