From: Jiri Olsa <jolsa@redhat.com>
To: kan.liang@intel.com
Cc: acme@kernel.org, jolsa@kernel.org, namhyung@kernel.org,
ak@linux.intel.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH RFC V3 3/5] perf,tool: partial time support
Date: Tue, 14 Jul 2015 08:54:38 +0200 [thread overview]
Message-ID: <20150714065438.GE22977@krava.local> (raw)
In-Reply-To: <1436345097-11113-4-git-send-email-kan.liang@intel.com>
On Wed, Jul 08, 2015 at 04:44:55AM -0400, kan.liang@intel.com wrote:
> From: Kan Liang <kan.liang@intel.com>
>
> When multiple events are sampled it may not be needed to collect fine
> grained time stamps on all events. The sample sites are usually nearby.
> It's enough to have time stamps on the regular reference events.
> This patchkit adds the ability to turn off time stamps per event. This
> in term can reduce sampling overhead and the size of the perf.data.
[PATCH RFC V3 3/5] perf,tool: partial time support
for a minute I was wondering why's the patch not full and just partial ;-)
'per event' might sound better
SNIP
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index 83c0803..1d58330 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -619,10 +619,37 @@ void perf_evsel__config(struct perf_evsel *evsel, struct record_opts *opts)
> struct perf_event_attr *attr = &evsel->attr;
> int track = evsel->tracking;
> bool per_cpu = opts->target.default_per_cpu && !opts->target.per_thread;
> + bool sample_time = opts->sample_time;
>
> attr->sample_id_all = perf_missing_features.sample_id_all ? 0 : 1;
> attr->inherit = !opts->no_inherit;
>
> + /*
> + * If user doesn't explicitly set time option,
> + * let event attribute decide.
> + */
> +
> + if (!opts->sample_time_set) {
> + if (attr->sample_type & PERF_SAMPLE_TIME)
> + sample_time = true;
> + else
> + sample_time = false;
> + }
> +
> + /*
> + * Event parsing doesn't check the availability
> + * Clear the bit which event parsing may be set.
> + * Let following code check and reset if available
> + *
> + * Also, the sample size may be caculated mistakenly,
> + * because event parsing may set the PERF_SAMPLE_TIME.
> + * Remove the size which add in perf_evsel__init
> + */
> + if (attr->sample_type & PERF_SAMPLE_TIME) {
> + attr->sample_type &= ~PERF_SAMPLE_TIME;
> + evsel->sample_size -= sizeof(u64);
> + }
so we have TIME enabled by default, like:
[jolsa@krava perf]$ ./perf record ls
...
[jolsa@krava perf]$ ./perf evlist -v
cycles: 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, sample_id_all: 1, exclude_guest: 1, mmap2:
1, comm_exec: 1
this patch disables it by default and there might be people out there
who actualy care.
I wonder you should instead disable it completely via --no-timestamp
option and enable it via 'time' term for specific events, like:
$ perf record --no-timestamp -e 'cpu/...time/,cpu/.../'ls
or disable timestamps globaly if 'time' term is detected in any
event definition..?
jirka
next prev parent reply other threads:[~2015-07-14 6:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-08 8:44 [PATCH RFC V3 0/5] partial callgrap and time support kan.liang
2015-07-08 8:44 ` [PATCH RFC V3 1/5] perf,tools: introduce OPT_CALLBACK_SET/OPT_CALLBACK_NOOPT_SET kan.liang
2015-07-14 6:54 ` Jiri Olsa
2015-07-08 8:44 ` [PATCH RFC V3 2/5] perf/documentation: Add description for period kan.liang
2015-07-14 6:55 ` Jiri Olsa
2015-07-14 14:05 ` Arnaldo Carvalho de Melo
2015-07-21 9:31 ` [tip:perf/core] perf record: Document setting '-e pmu/period=N/' in man page tip-bot for Kan Liang
2015-07-08 8:44 ` [PATCH RFC V3 3/5] perf,tool: partial time support kan.liang
2015-07-13 13:27 ` Namhyung Kim
2015-07-13 19:01 ` Liang, Kan
2015-07-14 1:04 ` Namhyung Kim
2015-07-15 19:03 ` Liang, Kan
2015-07-17 7:12 ` Namhyung Kim
2015-07-14 6:54 ` Jiri Olsa [this message]
2015-07-14 6:54 ` Jiri Olsa
2015-07-08 8:44 ` [PATCH RFC V3 4/5] perf,tool: partial callgrap support kan.liang
2015-07-08 8:44 ` [PATCH RFC V3 5/5] perf,tests: Add tests to callgrap and time parse kan.liang
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=20150714065438.GE22977@krava.local \
--to=jolsa@redhat.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).