From: Jiri Olsa <jolsa@redhat.com>
To: Milian Wolff <milian.wolff@kdab.com>
Cc: acme@kernel.org, jolsa@kernel.org, Linux-kernel@vger.kernel.org,
linux-perf-users@vger.kernel.org
Subject: Re: [PATCH 2/2] perf script: flush output stream after events in verbose mode
Date: Mon, 22 Oct 2018 11:43:17 +0200 [thread overview]
Message-ID: <20181022094317.GG2452@krava> (raw)
In-Reply-To: <20181021191424.16183-2-milian.wolff@kdab.com>
On Sun, Oct 21, 2018 at 09:14:24PM +0200, Milian Wolff wrote:
> When the perf script output is written to a terminal stream,
> the normal output of `perf script` would get buffered, but its
> debug output would be written directly. This made it quite hard
> to figure out where a given debug output is coming from. We can
> improve on this by flushing the output buffer after processing an
> event. To see the value, compare the following output for a
> `perf script -v` run:
>
> Before this patch:
> ```
> unwind: reg 16, val 7faf7dfdc000
> unwind: reg 7, val 7ffc80811e30
> unwind: find_proc_info dso /usr/lib/ld-2.28.so
> unwind: reg 6, val 0
> unwind: _start:ip = 0x7faf7dfdc000 (0x2000)
> unwind: reg 16, val 7faf7dfdc000
> unwind: reg 7, val 7ffc80811e30
> unwind: find_proc_info dso /usr/lib/ld-2.28.so
> unwind: reg 6, val 0
> unwind: _start:ip = 0x7faf7dfdc000 (0x2000)
> unwind: reg 16, val 7faf7dfdc000
> unwind: reg 7, val 7ffc80811e30
> unwind: find_proc_info dso /usr/lib/ld-2.28.so
> unwind: reg 6, val 0
> unwind: _start:ip = 0x7faf7dfdc000 (0x2000)
> unwind: reg 16, val 7faf7dfdc000
> unwind: reg 7, val 7ffc80811e30
> ... lots and lots of verbose debug output
> cpp-inlining 24617 90229.122036534: 1 cycles:uppp:
> 7faf7dfdc000 _start+0x0 (/usr/lib/ld-2.28.so)
>
> cpp-inlining 24617 90229.122043974: 1 cycles:uppp:
> 7faf7dfdc000 _start+0x0 (/usr/lib/ld-2.28.so)
> ...
> ```
>
> After this patch:
> ```
> ...
> unwind: reg 16, val 7faf7dfdc000
> unwind: reg 7, val 7ffc80811e30
> unwind: find_proc_info dso /usr/lib/ld-2.28.so
> unwind: reg 6, val 0
> unwind: _start:ip = 0x7faf7dfdc000 (0x2000)
> cpp-inlining 24617 90229.122036534: 1 cycles:uppp:
> 7faf7dfdc000 _start+0x0 (/usr/lib/ld-2.28.so)
>
> unwind: reg 16, val 7faf7dfdc000
> unwind: reg 7, val 7ffc80811e30
> unwind: find_proc_info dso /usr/lib/ld-2.28.so
> unwind: reg 6, val 0
> unwind: _start:ip = 0x7faf7dfdc000 (0x2000)
> cpp-inlining 24617 90229.122043974: 1 cycles:uppp:
> 7faf7dfdc000 _start+0x0 (/usr/lib/ld-2.28.so)
> ...
> ```
>
> This new output format makes it much easier to use perf script
> output for debugging purposes, e.g. to investigate broken dwarf
> unwinding.
yep, I plan to check on this ;-)
>
> Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> ---
> tools/perf/builtin-script.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
> index bd468b90801b..ca09b7d2adb7 100644
> --- a/tools/perf/builtin-script.c
> +++ b/tools/perf/builtin-script.c
> @@ -1737,6 +1737,9 @@ static void process_event(struct perf_script *script,
>
> if (PRINT_FIELD(METRIC))
> perf_sample__fprint_metric(script, thread, evsel, sample, fp);
> +
> + if (verbose)
> + fflush(fp);
should we call fflush(NULL) to dump all the streams?
the verbose goes to stderr and fp seems to be stdout byt default
jirka
next prev parent reply other threads:[~2018-10-22 9:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-21 19:14 [PATCH 1/2] perf script: allow extended console debug output Milian Wolff
2018-10-21 19:14 ` [PATCH 2/2] perf script: flush output stream after events in verbose mode Milian Wolff
2018-10-22 9:43 ` Jiri Olsa [this message]
2018-10-22 10:09 ` Milian Wolff
2018-10-22 10:16 ` Jiri Olsa
2018-10-22 10:38 ` Milian Wolff
2018-10-22 13:54 ` Jiri Olsa
2018-10-22 17:25 ` Arnaldo Carvalho de Melo
2018-10-26 7:35 ` [tip:perf/urgent] perf script: Flush " tip-bot for Milian Wolff
2018-10-22 9:40 ` [PATCH 1/2] perf script: allow extended console debug output Jiri Olsa
2018-10-22 15:09 ` Arnaldo Carvalho de Melo
2018-10-26 7:34 ` [tip:perf/urgent] perf script: Allow " tip-bot for Milian Wolff
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=20181022094317.GG2452@krava \
--to=jolsa@redhat.com \
--cc=Linux-kernel@vger.kernel.org \
--cc=acme@kernel.org \
--cc=jolsa@kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=milian.wolff@kdab.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.