lkml.org 
[lkml]   [2015]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 25/26] perf ui/tui: Show fatal error message only if exists
    Date
    From: Namhyung Kim <namhyung@kernel.org>

    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: Namhyung Kim <namhyung@kernel.org>
    Acked-by: Jiri 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.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/ui/tui/helpline.c | 3 +++
    tools/perf/ui/tui/setup.c | 3 ++-
    2 files changed, 5 insertions(+), 1 deletion(-)

    diff --git a/tools/perf/ui/tui/helpline.c b/tools/perf/ui/tui/helpline.c
    index 1c8b9afd5d6e..88f5143a5981 100644
    --- a/tools/perf/ui/tui/helpline.c
    +++ b/tools/perf/ui/tui/helpline.c
    @@ -9,6 +9,7 @@
    #include "../libslang.h"

    char ui_helpline__last_msg[1024];
    +bool tui_helpline__set;

    static void tui_helpline__pop(void)
    {
    @@ -35,6 +36,8 @@ static int tui_helpline__show(const char *format, va_list ap)
    sizeof(ui_helpline__last_msg) - backlog, format, ap);
    backlog += ret;

    + tui_helpline__set = true;
    +
    if (ui_helpline__last_msg[backlog - 1] == '\n') {
    ui_helpline__puts(ui_helpline__last_msg);
    SLsmg_refresh();
    diff --git a/tools/perf/ui/tui/setup.c b/tools/perf/ui/tui/setup.c
    index 3c38f25b1695..b77e1d771363 100644
    --- a/tools/perf/ui/tui/setup.c
    +++ b/tools/perf/ui/tui/setup.c
    @@ -17,6 +17,7 @@
    static volatile int ui__need_resize;

    extern struct perf_error_ops perf_tui_eops;
    +extern bool tui_helpline__set;

    extern void hist_browser__init_hpp(void);

    @@ -159,7 +160,7 @@ out:

    void ui__exit(bool wait_for_ok)
    {
    - if (wait_for_ok)
    + if (wait_for_ok && tui_helpline__set)
    ui__question_window("Fatal Error",
    ui_helpline__last_msg,
    "Press any key...", 0);
    --
    1.9.3


    \
     
     \ /
      Last update: 2015-01-26 19:01    [W:4.504 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site