unix, unix/linux: add additional Linux perf API bits

Add sample_max_stack field to struct perf_event_attr.

Add the missing PERF_FLAG_FD_CLOEXEC flag, the missing
PERF_COUNT_SW_BPF_OUTPUT constant, missing PERF_RECORD_*
constants, and missing PERF_SAMPLE_BRANCH_* constants.

Change-Id: I44c5e37ff36420b35e56c97e7fc190cd0af95e21
Reviewed-on: https://go-review.googlesource.com/c/sys/+/166457
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
This commit is contained in:
Andrei Tudor Călin
2019-03-09 12:25:39 +00:00
committed by Tobias Klauser
parent 584f3b12f4
commit 980fc434d2
14 changed files with 420 additions and 140 deletions
+30 -10
View File
@@ -331,7 +331,8 @@ struct perf_event_attr_go {
__s32 clockid;
__u64 sample_regs_intr;
__u32 aux_watermark;
__u32 __reserved_2;
__u16 sample_max_stack;
__u16 __reserved_2;
};
// ustat is deprecated and glibc 2.28 removed ustat.h. Provide the type here for
@@ -931,6 +932,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = C.PERF_COUNT_SW_ALIGNMENT_FAULTS
PERF_COUNT_SW_EMULATION_FAULTS = C.PERF_COUNT_SW_EMULATION_FAULTS
PERF_COUNT_SW_DUMMY = C.PERF_COUNT_SW_DUMMY
PERF_COUNT_SW_BPF_OUTPUT = C.PERF_COUNT_SW_BPF_OUTPUT
PERF_SAMPLE_IP = C.PERF_SAMPLE_IP
PERF_SAMPLE_TID = C.PERF_SAMPLE_TID
@@ -952,21 +954,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = C.PERF_SAMPLE_BRANCH_ANY_CALL
PERF_SAMPLE_BRANCH_ANY_RETURN = C.PERF_SAMPLE_BRANCH_ANY_RETURN
PERF_SAMPLE_BRANCH_IND_CALL = C.PERF_SAMPLE_BRANCH_IND_CALL
PERF_SAMPLE_BRANCH_ABORT_TX = C.PERF_SAMPLE_BRANCH_ABORT_TX
PERF_SAMPLE_BRANCH_IN_TX = C.PERF_SAMPLE_BRANCH_IN_TX
PERF_SAMPLE_BRANCH_NO_TX = C.PERF_SAMPLE_BRANCH_NO_TX
PERF_SAMPLE_BRANCH_COND = C.PERF_SAMPLE_BRANCH_COND
PERF_SAMPLE_BRANCH_CALL_STACK = C.PERF_SAMPLE_BRANCH_CALL_STACK
PERF_SAMPLE_BRANCH_IND_JUMP = C.PERF_SAMPLE_BRANCH_IND_JUMP
PERF_SAMPLE_BRANCH_CALL = C.PERF_SAMPLE_BRANCH_CALL
PERF_SAMPLE_BRANCH_NO_FLAGS = C.PERF_SAMPLE_BRANCH_NO_FLAGS
PERF_SAMPLE_BRANCH_NO_CYCLES = C.PERF_SAMPLE_BRANCH_NO_CYCLES
PERF_SAMPLE_BRANCH_TYPE_SAVE = C.PERF_SAMPLE_BRANCH_TYPE_SAVE
PERF_FORMAT_TOTAL_TIME_ENABLED = C.PERF_FORMAT_TOTAL_TIME_ENABLED
PERF_FORMAT_TOTAL_TIME_RUNNING = C.PERF_FORMAT_TOTAL_TIME_RUNNING
PERF_FORMAT_ID = C.PERF_FORMAT_ID
PERF_FORMAT_GROUP = C.PERF_FORMAT_GROUP
PERF_RECORD_MMAP = C.PERF_RECORD_MMAP
PERF_RECORD_LOST = C.PERF_RECORD_LOST
PERF_RECORD_COMM = C.PERF_RECORD_COMM
PERF_RECORD_EXIT = C.PERF_RECORD_EXIT
PERF_RECORD_THROTTLE = C.PERF_RECORD_THROTTLE
PERF_RECORD_UNTHROTTLE = C.PERF_RECORD_UNTHROTTLE
PERF_RECORD_FORK = C.PERF_RECORD_FORK
PERF_RECORD_READ = C.PERF_RECORD_READ
PERF_RECORD_SAMPLE = C.PERF_RECORD_SAMPLE
PERF_RECORD_MMAP = C.PERF_RECORD_MMAP
PERF_RECORD_LOST = C.PERF_RECORD_LOST
PERF_RECORD_COMM = C.PERF_RECORD_COMM
PERF_RECORD_EXIT = C.PERF_RECORD_EXIT
PERF_RECORD_THROTTLE = C.PERF_RECORD_THROTTLE
PERF_RECORD_UNTHROTTLE = C.PERF_RECORD_UNTHROTTLE
PERF_RECORD_FORK = C.PERF_RECORD_FORK
PERF_RECORD_READ = C.PERF_RECORD_READ
PERF_RECORD_SAMPLE = C.PERF_RECORD_SAMPLE
PERF_RECORD_MMAP2 = C.PERF_RECORD_MMAP2
PERF_RECORD_AUX = C.PERF_RECORD_AUX
PERF_RECORD_ITRACE_START = C.PERF_RECORD_ITRACE_START
PERF_RECORD_LOST_SAMPLES = C.PERF_RECORD_LOST_SAMPLES
PERF_RECORD_SWITCH = C.PERF_RECORD_SWITCH
PERF_RECORD_SWITCH_CPU_WIDE = C.PERF_RECORD_SWITCH_CPU_WIDE
PERF_RECORD_NAMESPACES = C.PERF_RECORD_NAMESPACES
PERF_CONTEXT_HV = C.PERF_CONTEXT_HV
PERF_CONTEXT_KERNEL = C.PERF_CONTEXT_KERNEL
@@ -979,6 +998,7 @@ const (
PERF_FLAG_FD_NO_GROUP = C.PERF_FLAG_FD_NO_GROUP
PERF_FLAG_FD_OUTPUT = C.PERF_FLAG_FD_OUTPUT
PERF_FLAG_PID_CGROUP = C.PERF_FLAG_PID_CGROUP
PERF_FLAG_FD_CLOEXEC = C.PERF_FLAG_FD_CLOEXEC
)
// Platform ABI and calling convention