Created
October 12, 2013 07:41
-
-
Save cztchoice/6947103 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Hardware event_id to monitor via a performance monitoring event: | |
*/ | |
struct perf_event_attr { | |
/* | |
* Major type: hardware/software/tracepoint/etc. | |
*/ | |
__u32 type; | |
/* | |
* Size of the attr structure, for fwd/bwd compat. | |
*/ | |
__u32 size; | |
/* | |
* Type specific configuration information. | |
*/ | |
__u64 config; | |
union { | |
__u64 sample_period; | |
__u64 sample_freq; | |
}; | |
__u64 sample_type; | |
__u64 read_format; | |
__u64 disabled : 1, /* off by default */ | |
inherit : 1, /* children inherit it */ | |
pinned : 1, /* must always be on PMU */ | |
exclusive : 1, /* only group on PMU */ | |
exclude_user : 1, /* don't count user */ | |
exclude_kernel : 1, /* ditto kernel */ | |
exclude_hv : 1, /* ditto hypervisor */ | |
exclude_idle : 1, /* don't count when idle */ | |
mmap : 1, /* include mmap data */ | |
comm : 1, /* include comm data */ | |
freq : 1, /* use freq, not period */ | |
inherit_stat : 1, /* per task counts */ | |
enable_on_exec : 1, /* next exec enables */ | |
task : 1, /* trace fork/exit */ | |
watermark : 1, /* wakeup_watermark */ | |
/* | |
* precise_ip: | |
* | |
* 0 - SAMPLE_IP can have arbitrary skid | |
* 1 - SAMPLE_IP must have constant skid | |
* 2 - SAMPLE_IP requested to have 0 skid | |
* 3 - SAMPLE_IP must have 0 skid | |
* | |
* See also PERF_RECORD_MISC_EXACT_IP | |
*/ | |
precise_ip : 2, /* skid constraint */ | |
mmap_data : 1, /* non-exec mmap data */ | |
sample_id_all : 1, /* sample_type all events */ | |
exclude_host : 1, /* don't count in host */ | |
exclude_guest : 1, /* don't count in guest */ | |
exclude_callchain_kernel : 1, /* exclude kernel callchains */ | |
exclude_callchain_user : 1, /* exclude user callchains */ | |
__reserved_1 : 41; | |
union { | |
__u32 wakeup_events; /* wakeup every n events */ | |
__u32 wakeup_watermark; /* bytes before wakeup */ | |
}; | |
__u32 bp_type; | |
union { | |
__u64 bp_addr; | |
__u64 config1; /* extension of config */ | |
}; | |
union { | |
__u64 bp_len; | |
__u64 config2; /* extension of config1 */ | |
}; | |
__u64 branch_sample_type; /* enum perf_branch_sample_type */ | |
/* | |
* Defines set of user regs to dump on samples. | |
* See asm/perf_regs.h for details. | |
*/ | |
__u64 sample_regs_user; | |
/* | |
* Defines size of the user stack to dump on samples. | |
*/ | |
__u32 sample_stack_user; | |
/* Align to u64. */ | |
__u32 __reserved_2; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The manual of perf_event_open
http://web.eece.maine.edu/~vweaver/projects/perf_events/perf_event_open.html