mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-06 09:07:16 -04:00
unix: add wrapper around perf_event_open on Linux
This adds a wrapper around perf_event_open, exported constants and two structs: - perf_event_attr, used to configure the syscall - perf_event_mmap_page to coordinate the kernel's mmap ring buffer Change-Id: Ife7ded8344de9e3eb74441bd51ab9a04c81b4965 Reviewed-on: https://go-review.googlesource.com/105756 Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
committed by
Tobias Klauser
parent
2281fa97ef
commit
2f57af4873
@@ -231,6 +231,61 @@ struct my_epoll_event {
|
|||||||
int32_t pad;
|
int32_t pad;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Copied from <linux/perf_event.h> with the following modifications:
|
||||||
|
// 1) bit field after read_format redeclared as '__u64 bits' to make it
|
||||||
|
// accessible from Go
|
||||||
|
// 2) collapsed the unions, to avoid confusing godoc for the generated output
|
||||||
|
// (e.g. having to use BpAddr as an extension of Config)
|
||||||
|
struct perf_event_attr_go {
|
||||||
|
__u32 type;
|
||||||
|
|
||||||
|
__u32 size;
|
||||||
|
__u64 config;
|
||||||
|
|
||||||
|
// union {
|
||||||
|
// __u64 sample_period;
|
||||||
|
// __u64 sample_freq;
|
||||||
|
// };
|
||||||
|
__u64 sample;
|
||||||
|
|
||||||
|
__u64 sample_type;
|
||||||
|
__u64 read_format;
|
||||||
|
|
||||||
|
// Replaces the bit field. Flags are defined as constants.
|
||||||
|
__u64 bits;
|
||||||
|
|
||||||
|
// union {
|
||||||
|
// __u32 wakeup_events;
|
||||||
|
// __u32 wakeup_watermark;
|
||||||
|
// };
|
||||||
|
__u32 wakeup;
|
||||||
|
|
||||||
|
__u32 bp_type;
|
||||||
|
|
||||||
|
// union {
|
||||||
|
// __u64 bp_addr;
|
||||||
|
// __u64 config1;
|
||||||
|
// };
|
||||||
|
__u64 ext1;
|
||||||
|
|
||||||
|
// union {
|
||||||
|
// __u64 bp_len;
|
||||||
|
// __u64 config2;
|
||||||
|
// };
|
||||||
|
__u64 ext2;
|
||||||
|
|
||||||
|
__u64 branch_sample_type;
|
||||||
|
|
||||||
|
__u64 sample_regs_user;
|
||||||
|
|
||||||
|
__u32 sample_stack_user;
|
||||||
|
|
||||||
|
__s32 clockid;
|
||||||
|
__u64 sample_regs_intr;
|
||||||
|
__u32 aux_watermark;
|
||||||
|
__u32 __reserved_2;
|
||||||
|
};
|
||||||
|
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
@@ -698,6 +753,138 @@ const (
|
|||||||
BDADDR_LE_RANDOM = C.BDADDR_LE_RANDOM
|
BDADDR_LE_RANDOM = C.BDADDR_LE_RANDOM
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Perf subsystem
|
||||||
|
|
||||||
|
type PerfEventAttr C.struct_perf_event_attr_go
|
||||||
|
|
||||||
|
type PerfEventMmapPage C.struct_perf_event_mmap_page
|
||||||
|
|
||||||
|
// Bit field in struct perf_event_attr expanded as flags.
|
||||||
|
// Set these on PerfEventAttr.Bits by ORing them together.
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = C.PERF_TYPE_HARDWARE
|
||||||
|
PERF_TYPE_SOFTWARE = C.PERF_TYPE_SOFTWARE
|
||||||
|
PERF_TYPE_TRACEPOINT = C.PERF_TYPE_TRACEPOINT
|
||||||
|
PERF_TYPE_HW_CACHE = C.PERF_TYPE_HW_CACHE
|
||||||
|
PERF_TYPE_RAW = C.PERF_TYPE_RAW
|
||||||
|
PERF_TYPE_BREAKPOINT = C.PERF_TYPE_BREAKPOINT
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = C.PERF_COUNT_HW_CPU_CYCLES
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = C.PERF_COUNT_HW_INSTRUCTIONS
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = C.PERF_COUNT_HW_CACHE_REFERENCES
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = C.PERF_COUNT_HW_CACHE_MISSES
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = C.PERF_COUNT_HW_BRANCH_INSTRUCTIONS
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = C.PERF_COUNT_HW_BRANCH_MISSES
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = C.PERF_COUNT_HW_BUS_CYCLES
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = C.PERF_COUNT_HW_STALLED_CYCLES_FRONTEND
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = C.PERF_COUNT_HW_STALLED_CYCLES_BACKEND
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = C.PERF_COUNT_HW_REF_CPU_CYCLES
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = C.PERF_COUNT_HW_CACHE_L1D
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = C.PERF_COUNT_HW_CACHE_L1I
|
||||||
|
PERF_COUNT_HW_CACHE_LL = C.PERF_COUNT_HW_CACHE_LL
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = C.PERF_COUNT_HW_CACHE_DTLB
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = C.PERF_COUNT_HW_CACHE_ITLB
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = C.PERF_COUNT_HW_CACHE_BPU
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = C.PERF_COUNT_HW_CACHE_NODE
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = C.PERF_COUNT_HW_CACHE_OP_READ
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = C.PERF_COUNT_HW_CACHE_OP_WRITE
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = C.PERF_COUNT_HW_CACHE_OP_PREFETCH
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = C.PERF_COUNT_HW_CACHE_RESULT_ACCESS
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = C.PERF_COUNT_HW_CACHE_RESULT_MISS
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = C.PERF_COUNT_SW_CPU_CLOCK
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = C.PERF_COUNT_SW_TASK_CLOCK
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = C.PERF_COUNT_SW_PAGE_FAULTS
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = C.PERF_COUNT_SW_CONTEXT_SWITCHES
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = C.PERF_COUNT_SW_CPU_MIGRATIONS
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = C.PERF_COUNT_SW_PAGE_FAULTS_MIN
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = C.PERF_COUNT_SW_PAGE_FAULTS_MAJ
|
||||||
|
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_SAMPLE_IP = C.PERF_SAMPLE_IP
|
||||||
|
PERF_SAMPLE_TID = C.PERF_SAMPLE_TID
|
||||||
|
PERF_SAMPLE_TIME = C.PERF_SAMPLE_TIME
|
||||||
|
PERF_SAMPLE_ADDR = C.PERF_SAMPLE_ADDR
|
||||||
|
PERF_SAMPLE_READ = C.PERF_SAMPLE_READ
|
||||||
|
PERF_SAMPLE_CALLCHAIN = C.PERF_SAMPLE_CALLCHAIN
|
||||||
|
PERF_SAMPLE_ID = C.PERF_SAMPLE_ID
|
||||||
|
PERF_SAMPLE_CPU = C.PERF_SAMPLE_CPU
|
||||||
|
PERF_SAMPLE_PERIOD = C.PERF_SAMPLE_PERIOD
|
||||||
|
PERF_SAMPLE_STREAM_ID = C.PERF_SAMPLE_STREAM_ID
|
||||||
|
PERF_SAMPLE_RAW = C.PERF_SAMPLE_RAW
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = C.PERF_SAMPLE_BRANCH_STACK
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = C.PERF_SAMPLE_BRANCH_USER
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = C.PERF_SAMPLE_BRANCH_KERNEL
|
||||||
|
PERF_SAMPLE_BRANCH_HV = C.PERF_SAMPLE_BRANCH_HV
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = C.PERF_SAMPLE_BRANCH_ANY
|
||||||
|
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_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_CONTEXT_HV = C.PERF_CONTEXT_HV
|
||||||
|
PERF_CONTEXT_KERNEL = C.PERF_CONTEXT_KERNEL
|
||||||
|
PERF_CONTEXT_USER = C.PERF_CONTEXT_USER
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = C.PERF_CONTEXT_GUEST
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = C.PERF_CONTEXT_GUEST_KERNEL
|
||||||
|
PERF_CONTEXT_GUEST_USER = C.PERF_CONTEXT_GUEST_USER
|
||||||
|
|
||||||
|
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
|
||||||
|
)
|
||||||
|
|
||||||
// Platform ABI and calling convention
|
// Platform ABI and calling convention
|
||||||
|
|
||||||
// Bit field masks for interoperability with C code that uses bit fields.
|
// Bit field masks for interoperability with C code that uses bit fields.
|
||||||
|
|||||||
@@ -1260,6 +1260,7 @@ func Getpgrp() (pid int) {
|
|||||||
//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
|
//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
|
||||||
//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
|
//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
|
||||||
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
|
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
|
||||||
|
//sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)
|
||||||
//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
|
//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
|
||||||
//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
|
//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
|
||||||
//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)
|
//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -995,6 +995,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func PivotRoot(newroot string, putold string) (err error) {
|
func PivotRoot(newroot string, putold string) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(newroot)
|
_p0, err = BytePtrFromString(newroot)
|
||||||
|
|||||||
@@ -896,6 +896,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x1
|
CBitFieldMaskBit0 = 0x1
|
||||||
CBitFieldMaskBit1 = 0x2
|
CBitFieldMaskBit1 = 0x2
|
||||||
|
|||||||
@@ -914,6 +914,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x1
|
CBitFieldMaskBit0 = 0x1
|
||||||
CBitFieldMaskBit1 = 0x2
|
CBitFieldMaskBit1 = 0x2
|
||||||
|
|||||||
@@ -885,6 +885,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x1
|
CBitFieldMaskBit0 = 0x1
|
||||||
CBitFieldMaskBit1 = 0x2
|
CBitFieldMaskBit1 = 0x2
|
||||||
|
|||||||
@@ -893,6 +893,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x1
|
CBitFieldMaskBit0 = 0x1
|
||||||
CBitFieldMaskBit1 = 0x2
|
CBitFieldMaskBit1 = 0x2
|
||||||
|
|||||||
@@ -890,6 +890,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x8000000000000000
|
CBitFieldMaskBit0 = 0x8000000000000000
|
||||||
CBitFieldMaskBit1 = 0x4000000000000000
|
CBitFieldMaskBit1 = 0x4000000000000000
|
||||||
|
|||||||
@@ -895,6 +895,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x8000000000000000
|
CBitFieldMaskBit0 = 0x8000000000000000
|
||||||
CBitFieldMaskBit1 = 0x4000000000000000
|
CBitFieldMaskBit1 = 0x4000000000000000
|
||||||
|
|||||||
@@ -895,6 +895,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x1
|
CBitFieldMaskBit0 = 0x1
|
||||||
CBitFieldMaskBit1 = 0x2
|
CBitFieldMaskBit1 = 0x2
|
||||||
|
|||||||
@@ -890,6 +890,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x1
|
CBitFieldMaskBit0 = 0x1
|
||||||
CBitFieldMaskBit1 = 0x2
|
CBitFieldMaskBit1 = 0x2
|
||||||
|
|||||||
@@ -903,6 +903,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x8000000000000000
|
CBitFieldMaskBit0 = 0x8000000000000000
|
||||||
CBitFieldMaskBit1 = 0x4000000000000000
|
CBitFieldMaskBit1 = 0x4000000000000000
|
||||||
|
|||||||
@@ -903,6 +903,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x1
|
CBitFieldMaskBit0 = 0x1
|
||||||
CBitFieldMaskBit1 = 0x2
|
CBitFieldMaskBit1 = 0x2
|
||||||
|
|||||||
@@ -920,6 +920,177 @@ const (
|
|||||||
BDADDR_LE_RANDOM = 0x2
|
BDADDR_LE_RANDOM = 0x2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PerfEventAttr struct {
|
||||||
|
Type uint32
|
||||||
|
Size uint32
|
||||||
|
Config uint64
|
||||||
|
Sample uint64
|
||||||
|
Sample_type uint64
|
||||||
|
Read_format uint64
|
||||||
|
Bits uint64
|
||||||
|
Wakeup uint32
|
||||||
|
Bp_type uint32
|
||||||
|
Ext1 uint64
|
||||||
|
Ext2 uint64
|
||||||
|
Branch_sample_type uint64
|
||||||
|
Sample_regs_user uint64
|
||||||
|
Sample_stack_user uint32
|
||||||
|
Clockid int32
|
||||||
|
Sample_regs_intr uint64
|
||||||
|
Aux_watermark uint32
|
||||||
|
_ uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type PerfEventMmapPage struct {
|
||||||
|
Version uint32
|
||||||
|
Compat_version uint32
|
||||||
|
Lock uint32
|
||||||
|
Index uint32
|
||||||
|
Offset int64
|
||||||
|
Time_enabled uint64
|
||||||
|
Time_running uint64
|
||||||
|
Capabilities uint64
|
||||||
|
Pmc_width uint16
|
||||||
|
Time_shift uint16
|
||||||
|
Time_mult uint32
|
||||||
|
Time_offset uint64
|
||||||
|
Time_zero uint64
|
||||||
|
Size uint32
|
||||||
|
_ [948]uint8
|
||||||
|
Data_head uint64
|
||||||
|
Data_tail uint64
|
||||||
|
Data_offset uint64
|
||||||
|
Data_size uint64
|
||||||
|
Aux_head uint64
|
||||||
|
Aux_tail uint64
|
||||||
|
Aux_offset uint64
|
||||||
|
Aux_size uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
PerfBitDisabled uint64 = CBitFieldMaskBit0
|
||||||
|
PerfBitInherit = CBitFieldMaskBit1
|
||||||
|
PerfBitPinned = CBitFieldMaskBit2
|
||||||
|
PerfBitExclusive = CBitFieldMaskBit3
|
||||||
|
PerfBitExcludeUser = CBitFieldMaskBit4
|
||||||
|
PerfBitExcludeKernel = CBitFieldMaskBit5
|
||||||
|
PerfBitExcludeHv = CBitFieldMaskBit6
|
||||||
|
PerfBitExcludeIdle = CBitFieldMaskBit7
|
||||||
|
PerfBitMmap = CBitFieldMaskBit8
|
||||||
|
PerfBitComm = CBitFieldMaskBit9
|
||||||
|
PerfBitFreq = CBitFieldMaskBit10
|
||||||
|
PerfBitInheritStat = CBitFieldMaskBit11
|
||||||
|
PerfBitEnableOnExec = CBitFieldMaskBit12
|
||||||
|
PerfBitTask = CBitFieldMaskBit13
|
||||||
|
PerfBitWatermark = CBitFieldMaskBit14
|
||||||
|
PerfBitPreciseIPBit1 = CBitFieldMaskBit15
|
||||||
|
PerfBitPreciseIPBit2 = CBitFieldMaskBit16
|
||||||
|
PerfBitMmapData = CBitFieldMaskBit17
|
||||||
|
PerfBitSampleIDAll = CBitFieldMaskBit18
|
||||||
|
PerfBitExcludeHost = CBitFieldMaskBit19
|
||||||
|
PerfBitExcludeGuest = CBitFieldMaskBit20
|
||||||
|
PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
|
||||||
|
PerfBitExcludeCallchainUser = CBitFieldMaskBit22
|
||||||
|
PerfBitMmap2 = CBitFieldMaskBit23
|
||||||
|
PerfBitCommExec = CBitFieldMaskBit24
|
||||||
|
PerfBitUseClockID = CBitFieldMaskBit25
|
||||||
|
PerfBitContextSwitch = CBitFieldMaskBit26
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PERF_TYPE_HARDWARE = 0x0
|
||||||
|
PERF_TYPE_SOFTWARE = 0x1
|
||||||
|
PERF_TYPE_TRACEPOINT = 0x2
|
||||||
|
PERF_TYPE_HW_CACHE = 0x3
|
||||||
|
PERF_TYPE_RAW = 0x4
|
||||||
|
PERF_TYPE_BREAKPOINT = 0x5
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CPU_CYCLES = 0x0
|
||||||
|
PERF_COUNT_HW_INSTRUCTIONS = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_REFERENCES = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_MISSES = 0x3
|
||||||
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
|
||||||
|
PERF_COUNT_HW_BRANCH_MISSES = 0x5
|
||||||
|
PERF_COUNT_HW_BUS_CYCLES = 0x6
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
|
||||||
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
|
||||||
|
PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_L1D = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_L1I = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_LL = 0x2
|
||||||
|
PERF_COUNT_HW_CACHE_DTLB = 0x3
|
||||||
|
PERF_COUNT_HW_CACHE_ITLB = 0x4
|
||||||
|
PERF_COUNT_HW_CACHE_BPU = 0x5
|
||||||
|
PERF_COUNT_HW_CACHE_NODE = 0x6
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_OP_READ = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
|
||||||
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
|
||||||
|
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
|
||||||
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
|
||||||
|
|
||||||
|
PERF_COUNT_SW_CPU_CLOCK = 0x0
|
||||||
|
PERF_COUNT_SW_TASK_CLOCK = 0x1
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS = 0x2
|
||||||
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
|
||||||
|
PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
|
||||||
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
|
||||||
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
|
||||||
|
PERF_SAMPLE_IP = 0x1
|
||||||
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
PERF_SAMPLE_TIME = 0x4
|
||||||
|
PERF_SAMPLE_ADDR = 0x8
|
||||||
|
PERF_SAMPLE_READ = 0x10
|
||||||
|
PERF_SAMPLE_CALLCHAIN = 0x20
|
||||||
|
PERF_SAMPLE_ID = 0x40
|
||||||
|
PERF_SAMPLE_CPU = 0x80
|
||||||
|
PERF_SAMPLE_PERIOD = 0x100
|
||||||
|
PERF_SAMPLE_STREAM_ID = 0x200
|
||||||
|
PERF_SAMPLE_RAW = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_STACK = 0x800
|
||||||
|
|
||||||
|
PERF_SAMPLE_BRANCH_USER = 0x1
|
||||||
|
PERF_SAMPLE_BRANCH_KERNEL = 0x2
|
||||||
|
PERF_SAMPLE_BRANCH_HV = 0x4
|
||||||
|
PERF_SAMPLE_BRANCH_ANY = 0x8
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
|
||||||
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
PERF_FORMAT_ID = 0x4
|
||||||
|
PERF_FORMAT_GROUP = 0x8
|
||||||
|
|
||||||
|
PERF_RECORD_MMAP = 0x1
|
||||||
|
PERF_RECORD_LOST = 0x2
|
||||||
|
PERF_RECORD_COMM = 0x3
|
||||||
|
PERF_RECORD_EXIT = 0x4
|
||||||
|
PERF_RECORD_THROTTLE = 0x5
|
||||||
|
PERF_RECORD_UNTHROTTLE = 0x6
|
||||||
|
PERF_RECORD_FORK = 0x7
|
||||||
|
PERF_RECORD_READ = 0x8
|
||||||
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
|
||||||
|
PERF_CONTEXT_HV = -0x20
|
||||||
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
PERF_CONTEXT_USER = -0x200
|
||||||
|
|
||||||
|
PERF_CONTEXT_GUEST = -0x800
|
||||||
|
PERF_CONTEXT_GUEST_KERNEL = -0x880
|
||||||
|
PERF_CONTEXT_GUEST_USER = -0xa00
|
||||||
|
|
||||||
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CBitFieldMaskBit0 = 0x8000000000000000
|
CBitFieldMaskBit0 = 0x8000000000000000
|
||||||
CBitFieldMaskBit1 = 0x4000000000000000
|
CBitFieldMaskBit1 = 0x4000000000000000
|
||||||
|
|||||||
Reference in New Issue
Block a user