Re: [PATCH] perf tools: set GUI mode after returning from perf_session__new()

From: Namhyung Kim
Date: Mon Dec 04 2017 - 10:05:48 EST


Hi SeokHo,

On Sun, Dec 3, 2017 at 10:50 PM, Song Seok Ho <0xdevssh@xxxxxxxxx> wrote:
> If perf_session__new() returns NULL with use_browser set to 2 via --gtk option
> previously, perf dies quietly without printing any errors.
>
> The reason behind this is that GTK is not yet initialized when the caller
> inside perf_session__new() is trying to print error message to the screen.
>
> Reorder code to print the messages to stdio when GTK is not yet ready.

I'm ok with this change, but it needs to consider other error messages too.
There are more pr_err() calls between perf_session__new() and
setup_browser(), so I think they have same problem.

Thanks,
Namhyung


>
> Signed-off-by: Song Seok Ho <0xdevssh@xxxxxxxxx>
> ---
> tools/perf/builtin-report.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> index 1394cd8d96f7..0cd80b8c432e 100644
> --- a/tools/perf/builtin-report.c
> +++ b/tools/perf/builtin-report.c
> @@ -918,13 +918,6 @@ int cmd_report(int argc, const char **argv)
> return -EINVAL;
> }
>
> - if (report.use_stdio)
> - use_browser = 0;
> - else if (report.use_tui)
> - use_browser = 1;
> - else if (report.use_gtk)
> - use_browser = 2;
> -
> if (report.inverted_callchain)
> callchain_param.order = ORDER_CALLER;
> if (symbol_conf.cumulate_callchain && !callchain_param.order_set)
> @@ -949,6 +942,13 @@ int cmd_report(int argc, const char **argv)
> if (session == NULL)
> return -1;
>
> + if (report.use_stdio)
> + use_browser = 0;
> + else if (report.use_tui)
> + use_browser = 1;
> + else if (report.use_gtk)
> + use_browser = 2;
> +
> if (report.queue_size) {
> ordered_events__set_alloc_size(&session->ordered_events,
> report.queue_size);
> --
> 2.15.1
>