![Adrian Hunter](/assets/img/avatar_default.png)
Intel PT uses TSC as a timestamp, so add support for using TSC instead of the monotonic clock. Use of TSC is selected by an environment variable "JITDUMP_USE_ARCH_TIMESTAMP" and flagged in the jitdump file with flag JITDUMP_FLAGS_ARCH_TIMESTAMP. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: He Kuang <hekuang@huawei.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/r/1457426330-30226-1-git-send-email-adrian.hunter@intel.com [ Added the fixup from He Kuang to make it build on other arches, ] [ such as aarch64, to avoid inserting this bisectiong breakage upstream ] Link: http://lkml.kernel.org/r/1459482572-129494-1-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
32 lines
689 B
C
32 lines
689 B
C
#ifndef __PERF_TSC_H
|
|
#define __PERF_TSC_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include "event.h"
|
|
|
|
struct perf_tsc_conversion {
|
|
u16 time_shift;
|
|
u32 time_mult;
|
|
u64 time_zero;
|
|
};
|
|
struct perf_event_mmap_page;
|
|
|
|
int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc,
|
|
struct perf_tsc_conversion *tc);
|
|
|
|
u64 perf_time_to_tsc(u64 ns, struct perf_tsc_conversion *tc);
|
|
u64 tsc_to_perf_time(u64 cyc, struct perf_tsc_conversion *tc);
|
|
u64 rdtsc(void);
|
|
|
|
struct perf_event_mmap_page;
|
|
struct perf_tool;
|
|
struct machine;
|
|
|
|
int perf_event__synth_time_conv(const struct perf_event_mmap_page *pc,
|
|
struct perf_tool *tool,
|
|
perf_event__handler_t process,
|
|
struct machine *machine);
|
|
|
|
#endif
|