From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752215AbbH1Gha (ORCPT ); Fri, 28 Aug 2015 02:37:30 -0400 Received: from terminus.zytor.com ([198.137.202.10]:54614 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751919AbbH1Gh1 (ORCPT ); Fri, 28 Aug 2015 02:37:27 -0400 Date: Thu, 27 Aug 2015 23:37:12 -0700 From: tip-bot for Arnaldo Carvalho de Melo Message-ID: Cc: namhyung@kernel.org, dsahern@gmail.com, bp@suse.de, adrian.hunter@intel.com, linux-kernel@vger.kernel.org, mingo@kernel.org, fweisbec@gmail.com, eranian@google.com, tglx@linutronix.de, hpa@zytor.com, acme@redhat.com, jolsa@redhat.com Reply-To: adrian.hunter@intel.com, bp@suse.de, dsahern@gmail.com, namhyung@kernel.org, linux-kernel@vger.kernel.org, mingo@kernel.org, fweisbec@gmail.com, jolsa@redhat.com, hpa@zytor.com, acme@redhat.com, eranian@google.com, tglx@linutronix.de To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf ui tui progress: Implement the ui_progress_ops->finish() method Git-Commit-ID: 1e259ad4a25e37eb298bb5772b9a51e70bed7782 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 1e259ad4a25e37eb298bb5772b9a51e70bed7782 Gitweb: http://git.kernel.org/tip/1e259ad4a25e37eb298bb5772b9a51e70bed7782 Author: Arnaldo Carvalho de Melo AuthorDate: Mon, 24 Aug 2015 16:18:26 -0300 Committer: Arnaldo Carvalho de Melo CommitDate: Mon, 24 Aug 2015 16:18:26 -0300 perf ui tui progress: Implement the ui_progress_ops->finish() method So that we can erase the progress bar after we're done with it, avoiding things like: ------------------------------------------------------------------- ┌─Error:──────────────────────────────────────────────────────┐ │Can't annotate unmapped_area_topdown: │ │ │ │No vmlinux file with build id a826726b5ddacfab1f0bade868f1a79│ │was found in the path. │ │ │ │Note that annotation using /proc/kcore requires CAP_SYS_RAWIO│ ┌Processin│ │──┐ │ │Please use: │ │ └─────────│ │──┘ │ perf buildid-cache -vu vmlinux │ │ │ │or: │ │ │ │ --vmlinux vmlinux │ │ │ │ │ │Press any key... │ └─────────────────────────────────────────────────────────────┘ Can't annotate unmapped_area_topdown: ------------------------------------------------------------------- I.e. that finished progress bar behind the error window. It is not a problem when we end up redrawing the whole screen, but its ugly when we present such error windows, provide a TUI method so that code like the above may avoid this situation, as will be done with the annotation code in the next cset. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-qvktnojzwwe37pweging058t@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/ui/tui/progress.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tools/perf/ui/tui/progress.c b/tools/perf/ui/tui/progress.c index c61d14b..c4b9900 100644 --- a/tools/perf/ui/tui/progress.c +++ b/tools/perf/ui/tui/progress.c @@ -33,9 +33,26 @@ static void tui_progress__update(struct ui_progress *p) pthread_mutex_unlock(&ui__lock); } +static void tui_progress__finish(void) +{ + int y; + + if (use_browser <= 0) + return; + + ui__refresh_dimensions(false); + pthread_mutex_lock(&ui__lock); + y = SLtt_Screen_Rows / 2 - 2; + SLsmg_set_color(0); + SLsmg_fill_region(y, 0, 3, SLtt_Screen_Cols, ' '); + SLsmg_refresh(); + pthread_mutex_unlock(&ui__lock); +} + static struct ui_progress_ops tui_progress__ops = { - .update = tui_progress__update, + .update = tui_progress__update, + .finish = tui_progress__finish, }; void tui_progress__init(void)