|
@@ -11,8 +11,8 @@ All fields are in native-endian of the machine that generated the perf.data.
|
|
|
|
|
|
When perf is writing to a pipe it uses a special version of the file
|
|
|
format that does not rely on seeking to adjust data offsets. This
|
|
|
-format is not described here. The pipe version can be converted to
|
|
|
-normal perf.data with perf inject.
|
|
|
+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:
|
|
|
|
|
@@ -411,6 +411,21 @@ An array bound by the perf_file_section size.
|
|
|
|
|
|
ids points to a array of uint64_t defining the ids for event attr attr.
|
|
|
|
|
|
+Pipe-mode data
|
|
|
+
|
|
|
+Pipe-mode avoid seeks in the file by removing the perf_file_section and flags
|
|
|
+from the struct perf_header. The trimmed header is:
|
|
|
+
|
|
|
+struct perf_pipe_file_header {
|
|
|
+ u64 magic;
|
|
|
+ u64 size;
|
|
|
+};
|
|
|
+
|
|
|
+The information about attrs, data, and event_types is instead in the
|
|
|
+synthesized events PERF_RECORD_ATTR, PERF_RECORD_HEADER_TRACING_DATA and
|
|
|
+PERF_RECORD_HEADER_EVENT_TYPE that are generated by perf record in pipe-mode.
|
|
|
+
|
|
|
+
|
|
|
References:
|
|
|
|
|
|
include/uapi/linux/perf_event.h
|