diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2014-10-23 13:45:13 +0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-10-29 10:32:49 -0200 |
commit | 0db15b1e84a59e6e1da5fe6e74c35fe52fa29d92 (patch) | |
tree | 58834174c0672d033286fd21757091bcbb97ae45 /tools/perf/util/comm.h | |
parent | 7e4772dc99a3ebfc53708eff262f7a8155485e85 (diff) | |
download | lwn-0db15b1e84a59e6e1da5fe6e74c35fe52fa29d92.tar.gz lwn-0db15b1e84a59e6e1da5fe6e74c35fe52fa29d92.zip |
perf tools: Add facility to export data in database-friendly way
This patch introduces an abstraction for exporting sample data in a
database-friendly way. The abstraction does not implement the actual
output. A subsequent patch takes this facility into use for extending
the script interface.
The abstraction is needed because static data like symbols, dsos, comms
etc need to be exported only once. That means allocating them a unique
identifier and recording it on each structure. The member 'db_id' is
used for that. 'db_id' is just a 64-bit sequence number.
Exporting centres around the db_export__sample() function which exports
the associated data structures if they have not yet been allocated a
db_id.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1414061124-26830-6-git-send-email-adrian.hunter@intel.com
[ committer note: Stash db_id using symbol_conf.priv_size + symbol__priv() and foo->priv areas ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/comm.h')
-rw-r--r-- | tools/perf/util/comm.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/perf/util/comm.h b/tools/perf/util/comm.h index 51c10ab257f8..71c9c39340d4 100644 --- a/tools/perf/util/comm.h +++ b/tools/perf/util/comm.h @@ -12,6 +12,10 @@ struct comm { u64 start; struct list_head list; bool exec; + union { /* Tool specific area */ + void *priv; + u64 db_id; + }; }; void comm__free(struct comm *comm); |