|
@@ -134,8 +134,9 @@ enum perf_event_sample_format {
|
|
|
PERF_SAMPLE_STACK_USER = 1U << 13,
|
|
|
PERF_SAMPLE_WEIGHT = 1U << 14,
|
|
|
PERF_SAMPLE_DATA_SRC = 1U << 15,
|
|
|
+ PERF_SAMPLE_IDENTIFIER = 1U << 16,
|
|
|
|
|
|
- PERF_SAMPLE_MAX = 1U << 16, /* non-ABI */
|
|
|
+ PERF_SAMPLE_MAX = 1U << 17, /* non-ABI */
|
|
|
};
|
|
|
|
|
|
/*
|
|
@@ -492,12 +493,12 @@ enum perf_event_type {
|
|
|
/*
|
|
|
* If perf_event_attr.sample_id_all is set then all event types will
|
|
|
* have the sample_type selected fields related to where/when
|
|
|
- * (identity) an event took place (TID, TIME, ID, CPU, STREAM_ID)
|
|
|
- * described in PERF_RECORD_SAMPLE below, it will be stashed just after
|
|
|
- * the perf_event_header and the fields already present for the existing
|
|
|
- * fields, i.e. at the end of the payload. That way a newer perf.data
|
|
|
- * file will be supported by older perf tools, with these new optional
|
|
|
- * fields being ignored.
|
|
|
+ * (identity) an event took place (TID, TIME, ID, STREAM_ID, CPU,
|
|
|
+ * IDENTIFIER) described in PERF_RECORD_SAMPLE below, it will be stashed
|
|
|
+ * just after the perf_event_header and the fields already present for
|
|
|
+ * the existing fields, i.e. at the end of the payload. That way a newer
|
|
|
+ * perf.data file will be supported by older perf tools, with these new
|
|
|
+ * optional fields being ignored.
|
|
|
*
|
|
|
* struct sample_id {
|
|
|
* { u32 pid, tid; } && PERF_SAMPLE_TID
|
|
@@ -505,7 +506,12 @@ enum perf_event_type {
|
|
|
* { u64 id; } && PERF_SAMPLE_ID
|
|
|
* { u64 stream_id;} && PERF_SAMPLE_STREAM_ID
|
|
|
* { u32 cpu, res; } && PERF_SAMPLE_CPU
|
|
|
+ * { u64 id; } && PERF_SAMPLE_IDENTIFIER
|
|
|
* } && perf_event_attr::sample_id_all
|
|
|
+ *
|
|
|
+ * Note that PERF_SAMPLE_IDENTIFIER duplicates PERF_SAMPLE_ID. The
|
|
|
+ * advantage of PERF_SAMPLE_IDENTIFIER is that its position is fixed
|
|
|
+ * relative to header.size.
|
|
|
*/
|
|
|
|
|
|
/*
|
|
@@ -594,6 +600,13 @@ enum perf_event_type {
|
|
|
* struct {
|
|
|
* struct perf_event_header header;
|
|
|
*
|
|
|
+ * #
|
|
|
+ * # Note that PERF_SAMPLE_IDENTIFIER duplicates PERF_SAMPLE_ID.
|
|
|
+ * # The advantage of PERF_SAMPLE_IDENTIFIER is that its position
|
|
|
+ * # is fixed relative to header.
|
|
|
+ * #
|
|
|
+ *
|
|
|
+ * { u64 id; } && PERF_SAMPLE_IDENTIFIER
|
|
|
* { u64 ip; } && PERF_SAMPLE_IP
|
|
|
* { u32 pid, tid; } && PERF_SAMPLE_TID
|
|
|
* { u64 time; } && PERF_SAMPLE_TIME
|