All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@intel.com>
To: David Ahern <dsahern@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	linux-kernel@vger.kernel.org,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Jiri Olsa <jolsa@redhat.com>, Mike Galbraith <efault@gmx.de>,
	Namhyung Kim <namhyung@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH V2 12/15] perf tools: allow non-matching sample types
Date: Mon, 01 Jul 2013 12:32:38 +0300	[thread overview]
Message-ID: <51D14CB6.206@intel.com> (raw)
In-Reply-To: <51CC6AAF.4030404@gmail.com>

On 27/06/13 19:39, David Ahern wrote:
> On 6/27/13 1:55 AM, Adrian Hunter wrote:
>> Sample types need not be identical to determine
>> the sample id from the event.  Only the position
>> of the sample id needs to be the same.
>>
>> Compatible sample types are ones in which the bits
>> defined by PERF_COMPAT_MASK are the same.
>> 'perf_evlist__config()' forces sample types to be
>> compatible on that basis.
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
>> ---
>>   tools/perf/builtin-report.c |   2 +-
>>   tools/perf/util/event.h     |  14 +++++
>>   tools/perf/util/evlist.c    | 135
>> ++++++++++++++++++++++++++++++++++++++++++--
>>   tools/perf/util/evlist.h    |   8 ++-
>>   tools/perf/util/evsel.c     |  64 ++++++++++++++++++++-
>>   tools/perf/util/evsel.h     |  10 ++++
>>   tools/perf/util/session.c   |   8 ++-
>>   7 files changed, 230 insertions(+), 11 deletions(-)
>>

Snip

> 
> While this works for a combined S/W and tracepoint events session, I do not
> like promoting sample types to the minimum compatible level for all events
> in the session. perf needs to allow each event to have its own sample_type
> and not force a minimal compatibility.

Why?  The impact is small. The kernel API is completely unchanged.

Consider the affected sample members:

	PERF_SAMPLE_IP
	PERF_SAMPLE_TID
	PERF_SAMPLE_TIME
	PERF_SAMPLE_ADDR
	PERF_SAMPLE_ID
	PERF_SAMPLE_CPU
	PERF_SAMPLE_STREAM_ID

Of those, perf_evlist__config() always selects PERF_SAMPLE_IP,
PERF_SAMPLE_TID and PERF_SAMPLE_ID, and never selects PERF_SAMPLE_STREAM_ID.
 That leaves just:

	PERF_SAMPLE_TIME
	PERF_SAMPLE_ADDR
	PERF_SAMPLE_CPU

PERF_SAMPLE_TIME is always selected when inheriting.

PERF_SAMPLE_TIME and PERF_SAMPLE_CPU are always selected for per-cpu recording.

Under what circumstances would you want 'time' and/or 'cpu' on some events
but not all of them?

Under what circumstances would you want 'addr' but those events are not the
vast majority of the events you record?


  reply	other threads:[~2013-07-01  9:26 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-27  7:54 [PATCH V2 00/15] perf tools: some fixes and tweaks Adrian Hunter
2013-06-27  7:54 ` [PATCH V2 01/15] perf tools: remove unused parameter Adrian Hunter
2013-06-27  7:54 ` [PATCH V2 02/15] perf tools: fix missing tool parameter Adrian Hunter
2013-06-27  7:54 ` [PATCH V2 03/15] perf tools: fix missing 'finished_round' Adrian Hunter
2013-06-27  7:54 ` [PATCH V2 04/15] perf tools: fix parse_events_terms() segfault on error path Adrian Hunter
2013-06-27  7:54 ` [PATCH V2 05/15] perf tools: fix new_term() missing free " Adrian Hunter
2013-06-27  7:54 ` [PATCH V2 06/15] perf tools: fix parse_events_terms() freeing local variable " Adrian Hunter
2013-06-27 16:13   ` David Ahern
2013-06-28  6:32     ` Adrian Hunter
2013-06-28 13:41       ` David Ahern
2013-06-28 13:57         ` Jiri Olsa
2013-06-27  7:54 ` [PATCH V2 07/15] perf tools: add const specifier to perf_pmu__find name parameter Adrian Hunter
2013-06-27  7:55 ` [PATCH V2 08/15] perf tools: tidy duplicated munmap code Adrian Hunter
2013-06-27  7:55 ` [PATCH V2 09/15] perf tools: validate perf event header size Adrian Hunter
2013-06-27  7:55 ` [PATCH V2 10/15] perf tools: add debug prints Adrian Hunter
2013-06-27  7:55 ` [PATCH V2 11/15] perf tools: fix symbol_conf.nr_events Adrian Hunter
2013-06-27  7:55 ` [PATCH V2 12/15] perf tools: allow non-matching sample types Adrian Hunter
2013-06-27 16:39   ` David Ahern
2013-07-01  9:32     ` Adrian Hunter [this message]
2013-07-01 18:53       ` David Ahern
2013-07-01 19:10         ` Stephane Eranian
2013-07-02  6:58           ` Adrian Hunter
2013-07-03  6:40             ` Stephane Eranian
2013-07-02  7:09         ` Adrian Hunter
2013-07-03  6:44           ` Stephane Eranian
2013-08-26 18:54             ` Arnaldo Carvalho de Melo
2013-06-27  7:55 ` [PATCH V2 13/15] perf tools: struct thread has a tid not a pid Adrian Hunter
2013-06-27  7:55 ` [PATCH V2 14/15] perf tools: add pid to struct thread Adrian Hunter
2013-06-27 16:52   ` David Ahern
2013-06-27  7:55 ` [PATCH V2 15/15] perf tools: fix ppid in thread__fork() Adrian Hunter
2013-06-27 16:57   ` David Ahern
2013-06-28  6:47     ` Adrian Hunter
2013-06-28 13:46       ` David Ahern

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=51D14CB6.206@intel.com \
    --to=adrian.hunter@intel.com \
    --cc=acme@ghostprotocols.net \
    --cc=dsahern@gmail.com \
    --cc=efault@gmx.de \
    --cc=eranian@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namhyung@gmail.com \
    --cc=paulus@samba.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.