[PATCH 10/21] perf tools: Sync perf_event.h uapi header

Jiri Olsa
2018-01-24T11:52:14Z

Syncing perf_event.h uapi header with user data changes.

Link: http://lkml.kernel.org/n/tip-hoayrwj8xl8a8oy54m0fhdyo@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/include/uapi/linux/perf_event.h | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
index dea5e9c32e8a..d30583411f97 100644
--- a/tools/include/uapi/linux/perf_event.h
+++ b/tools/include/uapi/linux/perf_event.h
@@ -371,7 +371,8 @@ struct perf_event_attr {
context_switch : 1, /* context switch data */
write_backward : 1, /* Write ring buffer from end to beginning */
namespaces : 1, /* include namespaces data */
- __reserved_1 : 35;
+ user_data : 1, /* generate user data */
+ __reserved_1 : 34;

union {
__u32 wakeup_events; /* wakeup every n events */
@@ -619,10 +620,12 @@ struct perf_event_mmap_page {
* PERF_RECORD_MISC_MMAP_DATA - PERF_RECORD_MMAP* events
* PERF_RECORD_MISC_COMM_EXEC - PERF_RECORD_COMM event
* PERF_RECORD_MISC_SWITCH_OUT - PERF_RECORD_SWITCH* events
+ * PERF_RECORD_MISC_USER_DATA - PERF_RECORD_SAMPLE event
*/
#define PERF_RECORD_MISC_MMAP_DATA (1 << 13)
#define PERF_RECORD_MISC_COMM_EXEC (1 << 13)
#define PERF_RECORD_MISC_SWITCH_OUT (1 << 13)
+#define PERF_RECORD_MISC_USER_DATA (1 << 13)
/*
* Indicates that the content of PERF_SAMPLE_IP points to
* the actual instruction that triggered the event. See also
@@ -821,6 +824,7 @@ enum perf_event_type {
* { u64 abi; # enum perf_sample_regs_abi
* u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR
* { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR
+ * { u64 user_data_id;} && PERF_SAMPLE_USER_DATA_ID
* };
*/
PERF_RECORD_SAMPLE = 9,
@@ -923,6 +927,31 @@ enum perf_event_type {
*/
PERF_RECORD_NAMESPACES = 16,

+ /*
+ * Records the user space data for previous
+ * kernel samples.
+ *
+ * struct {
+ * struct perf_event_header header;
+ * u64 sample_type;
+ *
+ * # The sample_type value could contain following
+ * # PERF_SAMPLE_* bits:
+ * #
+ * # PERF_SAMPLE_USER_DATA_ID
+ * # PERF_SAMPLE_CALLCHAIN
+ * #
+ * # and governs the data portion:
+ *
+ * { u64 nr,
+ * u64 ips[nr];} && PERF_SAMPLE_CALLCHAIN
+ * { u64 user_data_id;} && PERF_SAMPLE_USER_DATA_ID
+ *
+ * struct sample_id sample_id;
+ * };
+ */
+ PERF_RECORD_USER_DATA = 17,
+
PERF_RECORD_MAX, /* non-ABI */
};

--
2.13.6