tools headers uapi: Sync tools/include/uapi/linux/perf_event.h
authorSong Liu <songliubraving@fb.com>
Thu, 17 Jan 2019 16:15:14 +0000 (08:15 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 21 Jan 2019 20:00:57 +0000 (17:00 -0300)
Sync changes for PERF_RECORD_KSYMBOL.

Signed-off-by: Song Liu <songliubraving@fb.com>
Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: kernel-team@fb.com
Cc: netdev@vger.kernel.org
Link: http://lkml.kernel.org/r/20190117161521.1341602-3-songliubraving@fb.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/include/uapi/linux/perf_event.h

index ea19b5d491bfe9031249553877c69a288a45b3fd..1dee5c8f166b0f3e751152ac6e81798eb8eaf0be 100644 (file)
@@ -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;
+                               ksymbol        :  1, /* include ksymbol events */
+                               __reserved_1   : 34;
 
        union {
                __u32           wakeup_events;    /* wakeup every n events */
@@ -963,9 +964,32 @@ enum perf_event_type {
         */
        PERF_RECORD_NAMESPACES                  = 16,
 
+       /*
+        * Record ksymbol register/unregister events:
+        *
+        * struct {
+        *      struct perf_event_header        header;
+        *      u64                             addr;
+        *      u32                             len;
+        *      u16                             ksym_type;
+        *      u16                             flags;
+        *      char                            name[];
+        *      struct sample_id                sample_id;
+        * };
+        */
+       PERF_RECORD_KSYMBOL                     = 17,
+
        PERF_RECORD_MAX,                        /* non-ABI */
 };
 
+enum perf_record_ksymbol_type {
+       PERF_RECORD_KSYMBOL_TYPE_UNKNOWN        = 0,
+       PERF_RECORD_KSYMBOL_TYPE_BPF            = 1,
+       PERF_RECORD_KSYMBOL_TYPE_MAX            /* non-ABI */
+};
+
+#define PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER   (1 << 0)
+
 #define PERF_MAX_STACK_DEPTH           127
 #define PERF_MAX_CONTEXTS_PER_STACK      8