[RFC,V2,6/9] tools headers UAPI: Sync linux/perf_event.h with the kernel sources
Commit Message
From: Kan Liang <kan.liang@linux.intel.com>
The kernel ABI has been extended to support tool based monotonic raw
conversion.
This thus partially addresses this perf build warning:
Warning: Kernel ABI header at 'tools/include/uapi/linux/perf_event.h'
differs from latest version at 'include/uapi/linux/perf_event.h'
Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
---
tools/include/uapi/linux/perf_event.h | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
@@ -455,7 +455,8 @@ struct perf_event_attr {
inherit_thread : 1, /* children only inherit if cloned with CLONE_THREAD */
remove_on_exec : 1, /* event is removed from task on exec */
sigtrap : 1, /* send synchronous SIGTRAP on event */
- __reserved_1 : 26;
+ hw_time : 1, /* generate raw HW time for samples */
+ __reserved_1 : 25;
union {
__u32 wakeup_events; /* wakeup every n events */
@@ -615,7 +616,8 @@ struct perf_event_mmap_page {
cap_user_time : 1, /* The time_{shift,mult,offset} fields are used */
cap_user_time_zero : 1, /* The time_zero field is used */
cap_user_time_short : 1, /* the time_{cycle,mask} fields are used */
- cap_____res : 58;
+ cap_user_time_mono_raw : 1, /* The time_mono_* fields are used */
+ cap_____res : 57;
};
};
@@ -692,11 +694,24 @@ struct perf_event_mmap_page {
__u64 time_cycles;
__u64 time_mask;
+ /*
+ * If cap_user_time_mono_raw, the monotonic raw clock can be calculated
+ * from the hardware clock (e.g. TSC) 'cyc'.
+ *
+ * mono_raw = base + ((cyc - last) * mult + nsec) >> shift
+ *
+ */
+ __u64 time_mono_last;
+ __u32 time_mono_mult;
+ __u32 time_mono_shift;
+ __u64 time_mono_nsec;
+ __u64 time_mono_base;
+
/*
* Hole for extension of the self monitor capabilities
*/
- __u8 __reserved[116*8]; /* align to 1k. */
+ __u8 __reserved[112*8]; /* align to 1k. */
/*
* Control data for the mmap() data buffer.