Sync changes for PERF_RECORD_BPF_EVENT.

Signed-off-by: Song Liu <songliubrav...@fb.com>
---
 tools/include/uapi/linux/perf_event.h | 35 ++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/tools/include/uapi/linux/perf_event.h 
b/tools/include/uapi/linux/perf_event.h
index 9de8780ac8d9..0ae3dae55fa8 100644
--- a/tools/include/uapi/linux/perf_event.h
+++ b/tools/include/uapi/linux/perf_event.h
@@ -372,7 +372,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;
+                               bpf_event      :  1, /* include bpf events */
+                               __reserved_1   : 34;
 
        union {
                __u32           wakeup_events;    /* wakeup every n events */
@@ -965,9 +966,41 @@ enum perf_event_type {
         */
        PERF_RECORD_NAMESPACES                  = 16,
 
+       /*
+        * Record different types of bpf events:
+        *  enum perf_bpf_event_type {
+        *     PERF_BPF_EVENT_UNKNOWN           = 0,
+        *     PERF_BPF_EVENT_PROG_LOAD         = 1,
+        *     PERF_BPF_EVENT_PROG_UNLOAD       = 2,
+        *  };
+        *
+        * struct {
+        *      struct perf_event_header header;
+        *      u32                             type;
+        *      u32                             flags;
+        *      u32                             id; // prog_id or other id
+        *      u32                             sub_id; // subprog id
+        *
+        *      // for bpf_prog types, bpf prog or subprog
+        *      u8                              tag[BPF_TAG_SIZE];
+        *      u64                             addr;
+        *      u64                             len;
+        *      char                            name[];
+        *      struct sample_id                sample_id;
+        * };
+        */
+       PERF_RECORD_BPF_EVENT                   = 17,
+
        PERF_RECORD_MAX,                        /* non-ABI */
 };
 
+enum perf_bpf_event_type {
+       PERF_BPF_EVENT_UNKNOWN          = 0,
+       PERF_BPF_EVENT_PROG_LOAD        = 1,
+       PERF_BPF_EVENT_PROG_UNLOAD      = 2,
+       PERF_BPF_EVENT_MAX,             /* non-ABI */
+};
+
 #define PERF_MAX_STACK_DEPTH           127
 #define PERF_MAX_CONTEXTS_PER_STACK      8
 
-- 
2.17.1

Reply via email to