[PATCH v1 2/6] perf Documentation: Update perf.data-file-format.txt

From: Jin Yao
Date: Wed Sep 20 2017 - 03:17:54 EST

Currently the perf.data file starts with a perf_file_header,
while in the document, it's perf_header. So update it by the
new definition.

It also adds the description for new fields first_sample_time
and last_sample_time. The new fields will be used in perf
record/script/... to slice the traces.

Signed-off-by: Jin Yao <yao.jin@xxxxxxxxxxxxxxx>
tools/perf/Documentation/perf.data-file-format.txt | 27 +++++++++++++---------
1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/tools/perf/Documentation/perf.data-file-format.txt b/tools/perf/Documentation/perf.data-file-format.txt
index e90c59c..7c27403 100644
--- a/tools/perf/Documentation/perf.data-file-format.txt
+++ b/tools/perf/Documentation/perf.data-file-format.txt
@@ -14,17 +14,18 @@ format that does not rely on seeking to adjust data offsets. This
format is described in "Pipe-mode data" section. The pipe data version can be
augmented with additional events using perf inject.

-The file starts with a perf_header:
-struct perf_header {
- char magic[8]; /* PERFILE2 */
- uint64_t size; /* size of the header */
- uint64_t attr_size; /* size of an attribute in attrs */
- struct perf_file_section attrs;
- struct perf_file_section data;
- struct perf_file_section event_types;
- uint64_t flags;
- uint64_t flags1[3];
+The file starts with a perf_file_header:
+struct perf_file_header {
+ u64 magic;
+ u64 size;
+ u64 attr_size;
+ struct perf_file_section attrs;
+ struct perf_file_section data;
+ struct perf_file_section event_types;
+ u64 first_sample_time;
+ u64 last_sample_time;

The magic number identifies the perf file and the version. Current perf versions
@@ -416,6 +417,10 @@ An array bound by the perf_file_section size.

ids points to a array of uint64_t defining the ids for event attr attr.

+first_sample_time and last_sample_time record the timestmaps of first sample
+and last sample. In later, perf record will fetch the time from perf file
+header and use them to slice the traces for parallelization.
Pipe-mode data

Pipe-mode avoid seeks in the file by removing the perf_file_section and flags