All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: David Carrillo-Cisneros <davidcc@google.com>
Cc: linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Andi Kleen <ak@linux.intel.com>, Simon Que <sque@chromium.org>,
	Wang Nan <wangnan0@huawei.com>, Jiri Olsa <jolsa@kernel.org>,
	He Kuang <hekuang@huawei.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	David Ahern <dsa@cumulusnetworks.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Stephane Eranian <eranian@google.com>,
	Paul Turner <pjt@google.com>
Subject: Re: [PATCH 7/7] perf tools: add feature header record to pipe-mode
Date: Thu, 18 May 2017 18:13:17 +0200	[thread overview]
Message-ID: <20170518161317.GC17926@krava> (raw)
In-Reply-To: <20170518041602.28689-8-davidcc@google.com>

On Wed, May 17, 2017 at 09:16:02PM -0700, David Carrillo-Cisneros wrote:

SNIP

>  static const char *perf_ns__names[] = {
> diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h
> index db2de6413518..d404f50260f8 100644
> --- a/tools/perf/util/event.h
> +++ b/tools/perf/util/event.h
> @@ -244,6 +244,19 @@ enum perf_user_event_type { /* above any possible kernel type */
>  	PERF_RECORD_STAT_ROUND			= 77,
>  	PERF_RECORD_EVENT_UPDATE		= 78,
>  	PERF_RECORD_TIME_CONV			= 79,
> +	PERF_RECORD_HEADER_HOSTNAME		= 80,
> +	PERF_RECORD_HEADER_OSRELEASE		= 81,
> +	PERF_RECORD_HEADER_VERSION		= 82,
> +	PERF_RECORD_HEADER_ARCH			= 83,
> +	PERF_RECORD_HEADER_NRCPUS		= 84,
> +	PERF_RECORD_HEADER_CPUDESC		= 85,
> +	PERF_RECORD_HEADER_CPUID		= 86,
> +	PERF_RECORD_HEADER_TOTAL_MEM		= 87,
> +	PERF_RECORD_HEADER_CMDLINE		= 88,
> +	PERF_RECORD_HEADER_EVENT_DESC		= 89,
> +	PERF_RECORD_HEADER_CPU_TOPOLOGY		= 90,
> +	PERF_RECORD_HEADER_NUMA_TOPOLOGY	= 91,
> +	PERF_RECORD_HEADER_PMU_MAPPINGS		= 92,
>  	PERF_RECORD_HEADER_MAX
>  };

SNIP

> +
> +/*
> + * we use a mapping table to go from record type to feature header
> + * because we have no guarantee that new record types may not be added
> + * after the feature header.
> + */
> +#define REC2FEAT(a)	[PERF_RECORD_HEADER_##a] = HEADER_##a
> +
> +static const int rec2feat[PERF_RECORD_HEADER_MAX] = {
> +	REC2FEAT(HOSTNAME),
> +	REC2FEAT(OSRELEASE),
> +	REC2FEAT(VERSION),
> +	REC2FEAT(ARCH),
> +	REC2FEAT(NRCPUS),
> +	REC2FEAT(CPUDESC),
> +	REC2FEAT(CPUID),
> +	REC2FEAT(TOTAL_MEM),
> +	REC2FEAT(EVENT_DESC),
> +	REC2FEAT(CMDLINE),
> +	REC2FEAT(CPU_TOPOLOGY),
> +	REC2FEAT(NUMA_TOPOLOGY),
> +	REC2FEAT(PMU_MAPPINGS),
>  };

hum, how about instead of adding all those new events we add
just one: PERF_RECORD_FEATURE, which would carry the id of the
feature, like:

struct feature_event {
	struct perf_event_header	header;
	u64	id;
	char	data[]; /* size bytes of raw data specific to the feature */
};


this way we could also omit the reverse event to feature map

thanks,
jirka

  parent reply	other threads:[~2017-05-18 16:13 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-18  4:15 [PATCH 0/7] perf tool: add meta-data header support for pipe-mode David Carrillo-Cisneros
2017-05-18  4:15 ` [PATCH 1/7] perf header: fail on write_padded error David Carrillo-Cisneros
2017-05-18  4:15 ` [PATCH 2/7] perf util: add const modifier to buf in "writen" function David Carrillo-Cisneros
2017-05-18  4:15 ` [PATCH 3/7] perf header: use struct feat_fd for write David Carrillo-Cisneros
2017-05-18 16:13   ` Jiri Olsa
2017-05-18 18:02     ` David Carrillo-Cisneros
2017-05-18  4:15 ` [PATCH 4/7] perf header: use struct feat_fd for print David Carrillo-Cisneros
2017-05-18  4:16 ` [PATCH 5/7] perf header: use struct feat_fd for process and read David Carrillo-Cisneros
2017-05-18 16:13   ` Jiri Olsa
2017-05-18 18:02     ` David Carrillo-Cisneros
2017-05-18  4:16 ` [PATCH 6/7] perf tool: make show-info in perf report a tool attribute David Carrillo-Cisneros
2017-05-18  4:16 ` [PATCH 7/7] perf tools: add feature header record to pipe-mode David Carrillo-Cisneros
2017-05-18 16:12   ` Jiri Olsa
2017-05-18 18:30     ` David Carrillo-Cisneros
2017-05-18 16:13   ` Jiri Olsa
2017-05-18 16:13   ` Jiri Olsa [this message]
2017-05-18 18:29     ` David Carrillo-Cisneros
2017-05-18 16:13   ` Jiri Olsa
2017-05-18 16:13   ` Jiri Olsa
2017-05-18 18:29     ` David Carrillo-Cisneros
2017-05-18  5:10 ` [PATCH 0/7] perf tool: add meta-data header support for pipe-mode Andi Kleen
2017-05-18 18:02   ` David Carrillo-Cisneros

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=20170518161317.GC17926@krava \
    --to=jolsa@redhat.com \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=davidcc@google.com \
    --cc=dsa@cumulusnetworks.com \
    --cc=eranian@google.com \
    --cc=hekuang@huawei.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=pjt@google.com \
    --cc=sque@chromium.org \
    --cc=wangnan0@huawei.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.