aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/perf_event.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/perf_event.h')
-rw-r--r--include/uapi/linux/perf_event.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index 0041aedf2297..efef1d37a371 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -378,7 +378,8 @@ struct perf_event_mmap_page {
378 struct { 378 struct {
379 __u64 cap_usr_time : 1, 379 __u64 cap_usr_time : 1,
380 cap_usr_rdpmc : 1, 380 cap_usr_rdpmc : 1,
381 cap_____res : 62; 381 cap_usr_time_zero : 1,
382 cap_____res : 61;
382 }; 383 };
383 }; 384 };
384 385
@@ -420,12 +421,29 @@ struct perf_event_mmap_page {
420 __u16 time_shift; 421 __u16 time_shift;
421 __u32 time_mult; 422 __u32 time_mult;
422 __u64 time_offset; 423 __u64 time_offset;
424 /*
425 * If cap_usr_time_zero, the hardware clock (e.g. TSC) can be calculated
426 * from sample timestamps.
427 *
428 * time = timestamp - time_zero;
429 * quot = time / time_mult;
430 * rem = time % time_mult;
431 * cyc = (quot << time_shift) + (rem << time_shift) / time_mult;
432 *
433 * And vice versa:
434 *
435 * quot = cyc >> time_shift;
436 * rem = cyc & ((1 << time_shift) - 1);
437 * timestamp = time_zero + quot * time_mult +
438 * ((rem * time_mult) >> time_shift);
439 */
440 __u64 time_zero;
423 441
424 /* 442 /*
425 * Hole for extension of the self monitor capabilities 443 * Hole for extension of the self monitor capabilities
426 */ 444 */
427 445
428 __u64 __reserved[120]; /* align to 1k */ 446 __u64 __reserved[119]; /* align to 1k */
429 447
430 /* 448 /*
431 * Control data for the mmap() data buffer. 449 * Control data for the mmap() data buffer.