Syncing perf_event.h uapi header with user data changes.

Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Jiri Olsa <[email protected]>
---
 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

Reply via email to