sys: improve perf_event_open description

This commit is contained in:
Dmitry Vyukov 2016-11-16 10:04:27 +01:00
parent 4e20245f4d
commit 447e172205
4 changed files with 138 additions and 7 deletions

View File

@ -21,15 +21,24 @@ ioctl$PERF_EVENT_IOC_SET_BPF(fd fd_perf, cmd const[PERF_EVENT_IOC_SET_BPF], prog
perf_flags = PERF_FLAG_FD_NO_GROUP, PERF_FLAG_FD_OUTPUT, PERF_FLAG_PID_CGROUP, PERF_FLAG_FD_CLOEXEC
perf_event_type = PERF_TYPE_HARDWARE, PERF_TYPE_SOFTWARE, PERF_TYPE_TRACEPOINT, PERF_TYPE_HW_CACHE, PERF_TYPE_RAW, PERF_TYPE_BREAKPOINT
perf_bp_type = HW_BREAKPOINT_EMPTY, HW_BREAKPOINT_R, HW_BREAKPOINT_W, HW_BREAKPOINT_X
perf_attr_flags = 1, 2, 4
perf_sample_type = PERF_SAMPLE_IP, PERF_SAMPLE_TID, PERF_SAMPLE_TIME, PERF_SAMPLE_ADDR, PERF_SAMPLE_READ, PERF_SAMPLE_CALLCHAIN, PERF_SAMPLE_ID, PERF_SAMPLE_CPU, PERF_SAMPLE_PERIOD, PERF_SAMPLE_STREAM_ID, PERF_SAMPLE_RAW, PERF_SAMPLE_BRANCH_STACK, PERF_SAMPLE_REGS_USER, PERF_SAMPLE_STACK_USER, PERF_SAMPLE_WEIGHT, PERF_SAMPLE_DATA_SRC, PERF_SAMPLE_IDENTIFIER, PERF_SAMPLE_TRANSACTION, PERF_SAMPLE_REGS_INTR
perf_read_format = PERF_FORMAT_TOTAL_TIME_ENABLED, PERF_FORMAT_TOTAL_TIME_RUNNING, PERF_FORMAT_ID, PERF_FORMAT_GROUP
perf_branch_sample_type = PERF_SAMPLE_BRANCH_USER, PERF_SAMPLE_BRANCH_KERNEL, PERF_SAMPLE_BRANCH_HV, PERF_SAMPLE_BRANCH_ANY, PERF_SAMPLE_BRANCH_ANY_CALL, PERF_SAMPLE_BRANCH_ANY_RETURN, PERF_SAMPLE_BRANCH_IND_CALL, PERF_SAMPLE_BRANCH_ABORT_TX, PERF_SAMPLE_BRANCH_IN_TX, PERF_SAMPLE_BRANCH_NO_TX, PERF_SAMPLE_BRANCH_COND, PERF_SAMPLE_BRANCH_CALL_STACK, PERF_SAMPLE_BRANCH_IND_JUMP, PERF_SAMPLE_BRANCH_CALL, PERF_SAMPLE_BRANCH_NO_FLAGS, PERF_SAMPLE_BRANCH_NO_CYCLES, PERF_SAMPLE_BRANCH_MAX
perf_attr_flags = 1, 2, 4, 8
perf_event_attr {
type flags[perf_event_type, int32]
size len[parent, int32]
config int64
#TODO: config can contain lots of various flags depending on type.
# this is a hacky way to generate something reasonable.
config0 int8
config1 int8
config2 int8
config3 int8
config4 const[0, int32]
freq int64
sample int64
format int64
sample flags[perf_sample_type, int64]
format flags[perf_read_format, int64]
# Lots of various bit flags.
# Split into int8's because for int64 large values generated less frequently than small ones.
# Kernel checks that unused bits are zero.
@ -40,12 +49,14 @@ perf_event_attr {
freserv const[0, int32]
wakeup int32
bptype flags[perf_bp_type, int32]
config1 int64
config2 int64
bsample int64
config5 int64
config6 int64
bsample flags[perf_branch_sample_type, int64]
regs int64
stack int64
clockid flags[clock_type, int32]
regs2 int64
auxwm int32
maxstk int16
reserv const[0, int16]
}

View File

@ -16,6 +16,46 @@ PERF_FLAG_FD_CLOEXEC = 8
PERF_FLAG_FD_NO_GROUP = 1
PERF_FLAG_FD_OUTPUT = 2
PERF_FLAG_PID_CGROUP = 4
PERF_FORMAT_GROUP = 8
PERF_FORMAT_ID = 4
PERF_FORMAT_TOTAL_TIME_ENABLED = 1
PERF_FORMAT_TOTAL_TIME_RUNNING = 2
PERF_SAMPLE_ADDR = 8
PERF_SAMPLE_BRANCH_ABORT_TX = 128
PERF_SAMPLE_BRANCH_ANY = 8
PERF_SAMPLE_BRANCH_ANY_CALL = 16
PERF_SAMPLE_BRANCH_ANY_RETURN = 32
PERF_SAMPLE_BRANCH_CALL = 8192
PERF_SAMPLE_BRANCH_CALL_STACK = 2048
PERF_SAMPLE_BRANCH_COND = 1024
PERF_SAMPLE_BRANCH_HV = 4
PERF_SAMPLE_BRANCH_IND_CALL = 64
PERF_SAMPLE_BRANCH_IND_JUMP = 4096
PERF_SAMPLE_BRANCH_IN_TX = 256
PERF_SAMPLE_BRANCH_KERNEL = 2
PERF_SAMPLE_BRANCH_MAX = 65536
PERF_SAMPLE_BRANCH_NO_CYCLES = 32768
PERF_SAMPLE_BRANCH_NO_FLAGS = 16384
PERF_SAMPLE_BRANCH_NO_TX = 512
PERF_SAMPLE_BRANCH_STACK = 2048
PERF_SAMPLE_BRANCH_USER = 1
PERF_SAMPLE_CALLCHAIN = 32
PERF_SAMPLE_CPU = 128
PERF_SAMPLE_DATA_SRC = 32768
PERF_SAMPLE_ID = 64
PERF_SAMPLE_IDENTIFIER = 65536
PERF_SAMPLE_IP = 1
PERF_SAMPLE_PERIOD = 256
PERF_SAMPLE_RAW = 1024
PERF_SAMPLE_READ = 16
PERF_SAMPLE_REGS_INTR = 262144
PERF_SAMPLE_REGS_USER = 4096
PERF_SAMPLE_STACK_USER = 8192
PERF_SAMPLE_STREAM_ID = 512
PERF_SAMPLE_TID = 2
PERF_SAMPLE_TIME = 4
PERF_SAMPLE_TRANSACTION = 131072
PERF_SAMPLE_WEIGHT = 16384
PERF_TYPE_BREAKPOINT = 5
PERF_TYPE_HARDWARE = 0
PERF_TYPE_HW_CACHE = 3

View File

@ -16,6 +16,46 @@ PERF_FLAG_FD_CLOEXEC = 8
PERF_FLAG_FD_NO_GROUP = 1
PERF_FLAG_FD_OUTPUT = 2
PERF_FLAG_PID_CGROUP = 4
PERF_FORMAT_GROUP = 8
PERF_FORMAT_ID = 4
PERF_FORMAT_TOTAL_TIME_ENABLED = 1
PERF_FORMAT_TOTAL_TIME_RUNNING = 2
PERF_SAMPLE_ADDR = 8
PERF_SAMPLE_BRANCH_ABORT_TX = 128
PERF_SAMPLE_BRANCH_ANY = 8
PERF_SAMPLE_BRANCH_ANY_CALL = 16
PERF_SAMPLE_BRANCH_ANY_RETURN = 32
PERF_SAMPLE_BRANCH_CALL = 8192
PERF_SAMPLE_BRANCH_CALL_STACK = 2048
PERF_SAMPLE_BRANCH_COND = 1024
PERF_SAMPLE_BRANCH_HV = 4
PERF_SAMPLE_BRANCH_IND_CALL = 64
PERF_SAMPLE_BRANCH_IND_JUMP = 4096
PERF_SAMPLE_BRANCH_IN_TX = 256
PERF_SAMPLE_BRANCH_KERNEL = 2
PERF_SAMPLE_BRANCH_MAX = 65536
PERF_SAMPLE_BRANCH_NO_CYCLES = 32768
PERF_SAMPLE_BRANCH_NO_FLAGS = 16384
PERF_SAMPLE_BRANCH_NO_TX = 512
PERF_SAMPLE_BRANCH_STACK = 2048
PERF_SAMPLE_BRANCH_USER = 1
PERF_SAMPLE_CALLCHAIN = 32
PERF_SAMPLE_CPU = 128
PERF_SAMPLE_DATA_SRC = 32768
PERF_SAMPLE_ID = 64
PERF_SAMPLE_IDENTIFIER = 65536
PERF_SAMPLE_IP = 1
PERF_SAMPLE_PERIOD = 256
PERF_SAMPLE_RAW = 1024
PERF_SAMPLE_READ = 16
PERF_SAMPLE_REGS_INTR = 262144
PERF_SAMPLE_REGS_USER = 4096
PERF_SAMPLE_STACK_USER = 8192
PERF_SAMPLE_STREAM_ID = 512
PERF_SAMPLE_TID = 2
PERF_SAMPLE_TIME = 4
PERF_SAMPLE_TRANSACTION = 131072
PERF_SAMPLE_WEIGHT = 16384
PERF_TYPE_BREAKPOINT = 5
PERF_TYPE_HARDWARE = 0
PERF_TYPE_HW_CACHE = 3

View File

@ -16,6 +16,46 @@ PERF_FLAG_FD_CLOEXEC = 8
PERF_FLAG_FD_NO_GROUP = 1
PERF_FLAG_FD_OUTPUT = 2
PERF_FLAG_PID_CGROUP = 4
PERF_FORMAT_GROUP = 8
PERF_FORMAT_ID = 4
PERF_FORMAT_TOTAL_TIME_ENABLED = 1
PERF_FORMAT_TOTAL_TIME_RUNNING = 2
PERF_SAMPLE_ADDR = 8
PERF_SAMPLE_BRANCH_ABORT_TX = 128
PERF_SAMPLE_BRANCH_ANY = 8
PERF_SAMPLE_BRANCH_ANY_CALL = 16
PERF_SAMPLE_BRANCH_ANY_RETURN = 32
PERF_SAMPLE_BRANCH_CALL = 8192
PERF_SAMPLE_BRANCH_CALL_STACK = 2048
PERF_SAMPLE_BRANCH_COND = 1024
PERF_SAMPLE_BRANCH_HV = 4
PERF_SAMPLE_BRANCH_IND_CALL = 64
PERF_SAMPLE_BRANCH_IND_JUMP = 4096
PERF_SAMPLE_BRANCH_IN_TX = 256
PERF_SAMPLE_BRANCH_KERNEL = 2
PERF_SAMPLE_BRANCH_MAX = 65536
PERF_SAMPLE_BRANCH_NO_CYCLES = 32768
PERF_SAMPLE_BRANCH_NO_FLAGS = 16384
PERF_SAMPLE_BRANCH_NO_TX = 512
PERF_SAMPLE_BRANCH_STACK = 2048
PERF_SAMPLE_BRANCH_USER = 1
PERF_SAMPLE_CALLCHAIN = 32
PERF_SAMPLE_CPU = 128
PERF_SAMPLE_DATA_SRC = 32768
PERF_SAMPLE_ID = 64
PERF_SAMPLE_IDENTIFIER = 65536
PERF_SAMPLE_IP = 1
PERF_SAMPLE_PERIOD = 256
PERF_SAMPLE_RAW = 1024
PERF_SAMPLE_READ = 16
PERF_SAMPLE_REGS_INTR = 262144
PERF_SAMPLE_REGS_USER = 4096
PERF_SAMPLE_STACK_USER = 8192
PERF_SAMPLE_STREAM_ID = 512
PERF_SAMPLE_TID = 2
PERF_SAMPLE_TIME = 4
PERF_SAMPLE_TRANSACTION = 131072
PERF_SAMPLE_WEIGHT = 16384
PERF_TYPE_BREAKPOINT = 5
PERF_TYPE_HARDWARE = 0
PERF_TYPE_HW_CACHE = 3