From: Jiri Olsa <jolsa@redhat.com>
To: Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Namhyung Kim <namhyung@kernel.org>,
Andi Kleen <ak@linux.intel.com>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2] perf record: encode -k clockid frequency into Perf trace
Date: Wed, 3 Oct 2018 15:39:25 +0200 [thread overview]
Message-ID: <20181003133924.GD31725@krava> (raw)
In-Reply-To: <16b2d206-896b-c0ec-5bfd-6179ab05199a@linux.intel.com>
On Wed, Oct 03, 2018 at 10:01:56AM +0300, Alexey Budankov wrote:
>
> Store -k clockid frequency into Perf trace to enable timestamps
> derived metrics conversion into wall clock time on reporting stage.
>
> Below is the example of perf report output:
>
> tools/perf/perf record -k raw -- ../../matrix/linux/matrix.gcc
> ...
> [ perf record: Captured and wrote 31.222 MB perf.data (818054 samples) ]
>
> tools/perf/perf report --header
> # ========
> ...
> # event : name = cycles:ppp, , size = 112, { sample_period, sample_freq } = 4000, sample_type = IP|TID|TIME|PERIOD, disabled = 1, inherit = 1, mmap = 1, comm = 1, freq = 1, enable_on_exec = 1, task = 1, precise_ip = 3, sample_id_all = 1, exclude_guest = 1, mmap2 = 1, comm_exec = 1, use_clockid = 1, clockid = 4
> ...
> # clockid frequency: 1000 MHz
> ...
> # ========
>
> Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
> ---
> Changes in v2:
> - renamed clockid_freq to clockid_res_ns and get_clockid_freq() to get_clockid_res()
> - avoided redundant define of NSEC_IN_SEC, reused linux/time64.h:NSEC_PER_SEC
> - moved MHz conversion into print_clockid() and shortened write_clockid()
> ---
> tools/perf/builtin-record.c | 21 +++++++++++++++++++--
> tools/perf/perf.h | 1 +
> tools/perf/util/env.h | 1 +
> tools/perf/util/header.c | 27 +++++++++++++++++++++++++++
> tools/perf/util/header.h | 1 +
> 5 files changed, 49 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 0980dfe3396b..127dc7432394 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -592,6 +592,11 @@ static void record__init_features(struct record *rec)
> if (!rec->opts.full_auxtrace)
> perf_header__clear_feat(&session->header, HEADER_AUXTRACE);
>
> + if (rec->opts.use_clockid && rec->opts.clockid_res_ns)
> + session->header.env.clockid_res_ns = rec->opts.clockid_res_ns;
> + else
> + perf_header__clear_feat(&session->header, HEADER_CLOCKID);
> +
could you please keep only bits setting in record__init_features
and move the header.env.clockid_res_ns assignment out of it?
sry for not catching this in the first version
> perf_header__clear_feat(&session->header, HEADER_STAT);
> }
>
> @@ -1337,6 +1342,17 @@ static const struct clockid_map clockids[] = {
> CLOCKID_END,
> };
>
> +static int get_clockid_res(clockid_t clk_id, size_t *res_ns)
> +{
> + struct timespec res;
> +
> + *res_ns = 0;
> + if (!clock_getres(clk_id, &res))
> + *res_ns = res.tv_nsec + res.tv_sec * NSEC_PER_SEC;
hum, if this one fails (which I guess is unlikely) we should tell
and probably even quit
thanks,
jirka
next prev parent reply other threads:[~2018-10-03 13:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-03 7:01 [PATCH v2] perf record: encode -k clockid frequency into Perf trace Alexey Budankov
2018-10-03 13:39 ` Jiri Olsa [this message]
2018-10-03 14:41 ` Alexey Budankov
-- strict thread matches above, loose matches on Subject: below --
2018-09-28 6:39 Alexey Budankov
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=20181003133924.GD31725@krava \
--to=jolsa@redhat.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=alexey.budankov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/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.