Commit 4397bd2f authored by Namhyung Kim's avatar Namhyung Kim Committed by Arnaldo Carvalho de Melo

perf ui/tui: Show fatal error message only if exists

When perf exits with some error it shows the error message with
ui__error() or ui__warning() and then calls ui__exit() during
exit_browser().

On TUI, it then shows a window titled "Fatal Error" to inform user a
last message which might be related with this condition.  However it
sometimes contains no message and just annoyes users.

The usual case for this is running perf top as normal user.  (And
/proc/sys/kernel/perf_event_paranoid being 1).
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1421736050-5283-1-git-send-email-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 605a3069
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "../libslang.h" #include "../libslang.h"
char ui_helpline__last_msg[1024]; char ui_helpline__last_msg[1024];
bool tui_helpline__set;
static void tui_helpline__pop(void) static void tui_helpline__pop(void)
{ {
...@@ -35,6 +36,8 @@ static int tui_helpline__show(const char *format, va_list ap) ...@@ -35,6 +36,8 @@ static int tui_helpline__show(const char *format, va_list ap)
sizeof(ui_helpline__last_msg) - backlog, format, ap); sizeof(ui_helpline__last_msg) - backlog, format, ap);
backlog += ret; backlog += ret;
tui_helpline__set = true;
if (ui_helpline__last_msg[backlog - 1] == '\n') { if (ui_helpline__last_msg[backlog - 1] == '\n') {
ui_helpline__puts(ui_helpline__last_msg); ui_helpline__puts(ui_helpline__last_msg);
SLsmg_refresh(); SLsmg_refresh();
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
static volatile int ui__need_resize; static volatile int ui__need_resize;
extern struct perf_error_ops perf_tui_eops; extern struct perf_error_ops perf_tui_eops;
extern bool tui_helpline__set;
extern void hist_browser__init_hpp(void); extern void hist_browser__init_hpp(void);
...@@ -159,7 +160,7 @@ int ui__init(void) ...@@ -159,7 +160,7 @@ int ui__init(void)
void ui__exit(bool wait_for_ok) void ui__exit(bool wait_for_ok)
{ {
if (wait_for_ok) if (wait_for_ok && tui_helpline__set)
ui__question_window("Fatal Error", ui__question_window("Fatal Error",
ui_helpline__last_msg, ui_helpline__last_msg,
"Press any key...", 0); "Press any key...", 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment