[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230213190754.1836051-7-kan.liang@linux.intel.com>
Date: Mon, 13 Feb 2023 11:07:51 -0800
From: kan.liang@...ux.intel.com
To: tglx@...utronix.de, jstultz@...gle.com, peterz@...radead.org,
mingo@...hat.com, linux-kernel@...r.kernel.org
Cc: sboyd@...nel.org, eranian@...gle.com, namhyung@...nel.org,
ak@...ux.intel.com, adrian.hunter@...el.com,
Kan Liang <kan.liang@...ux.intel.com>
Subject: [RFC PATCH V2 6/9] tools headers UAPI: Sync linux/perf_event.h with the kernel sources
From: Kan Liang <kan.liang@...ux.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'
diff -u tools/include/uapi/linux/perf_event.h include/uapi/linux/perf_event.h
Signed-off-by: Kan Liang <kan.liang@...ux.intel.com>
---
tools/include/uapi/linux/perf_event.h | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
index ccb7f5dad59b..9d56fe027f6c 100644
--- a/tools/include/uapi/linux/perf_event.h
+++ b/tools/include/uapi/linux/perf_event.h
@@ -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.
--
2.35.1
Powered by blists - more mailing lists