ca96317f创建于 2022年4月4日历史提交
#ifndef _PERF_UTILS_H
#define _PERF_UTILS_H

static int sys_perf_event_open(struct perf_event_attr *attr, pid_t pid, int cpu,
                               int group_fd, unsigned long flags) {
  return syscall(SYS_perf_event_open, attr, pid, cpu, group_fd, flags);
}

static uint64_t
perf_time_of_tsc(volatile struct perf_event_mmap_page *perf_mmap,
                 uint64_t tsc) {
  uint64_t quot = tsc >> perf_mmap->time_shift;
  uint64_t rem = tsc & (((uint64_t)1 << perf_mmap->time_shift) - 1);
  return perf_mmap->time_zero + quot * perf_mmap->time_mult +
         ((rem * perf_mmap->time_mult) >> perf_mmap->time_shift);
}

#endif