History

perf/core: Prepare perf_event.h for new types: 'perf_kprobe' and 'perf_uprobe'

Two new perf types, perf_kprobe and perf_uprobe, will be added to allow creating [k,u]probe with perf_event_open. These [k,u]probe are associated with the file decriptor created by perf_event_open(), thus are easy to clean when the file descriptor is destroyed. kprobe_func and uprobe_path are added to union config1 for pointers to function name for kprobe or binary path for uprobe. kprobe_addr and probe_offset are added to union config2 for kernel address (when kprobe_func is NULL), or [k,u]probe offset.

Song Liu committed 8 years ago

Commit 65074d41 parent 59410f51 file · +4 −0Browse files

Showing the changes to include/uapi/linux (1 of 1 file). Show all

Unified · Split

include/uapi/linux/perf_event.h+4−0
@@ -380,10 +380,14 @@ struct perf_event_attr { · 379 unmodified lines
380 __u32 bp_type;380 __u32 bp_type;
381 union {381 union {
382 __u64 bp_addr;382 __u64 bp_addr;
383 __u64 kprobe_func; /* for perf_kprobe */
384 __u64 uprobe_path; /* for perf_uprobe */
383 __u64 config1; /* extension of config */385 __u64 config1; /* extension of config */
384 };386 };
385 union {387 union {
386 __u64 bp_len;388 __u64 bp_len;
389 __u64 kprobe_addr; /* when kprobe_func == NULL */
390 __u64 probe_offset; /* for perf_[k,u]probe */
387 __u64 config2; /* extension of config1 */391 __u64 config2; /* extension of config1 */
388 };392 };
389 __u64 branch_sample_type; /* enum perf_branch_sample_type */393 __u64 branch_sample_type; /* enum perf_branch_sample_type */