perf tools: Allow TSC conversion on any arch
It is possible to record a perf.data file on one architecture and process it on another. Consequently, TSC conversion functions need to be moved out of the arch directory. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1405332185-4050-40-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
ff527bccd4
commit
0b43786081
@@ -6,29 +6,9 @@
|
||||
#include "../../perf.h"
|
||||
#include <linux/types.h>
|
||||
#include "../../util/debug.h"
|
||||
#include "../../util/tsc.h"
|
||||
#include "tsc.h"
|
||||
|
||||
u64 perf_time_to_tsc(u64 ns, struct perf_tsc_conversion *tc)
|
||||
{
|
||||
u64 t, quot, rem;
|
||||
|
||||
t = ns - tc->time_zero;
|
||||
quot = t / tc->time_mult;
|
||||
rem = t % tc->time_mult;
|
||||
return (quot << tc->time_shift) +
|
||||
(rem << tc->time_shift) / tc->time_mult;
|
||||
}
|
||||
|
||||
u64 tsc_to_perf_time(u64 cyc, struct perf_tsc_conversion *tc)
|
||||
{
|
||||
u64 quot, rem;
|
||||
|
||||
quot = cyc >> tc->time_shift;
|
||||
rem = cyc & ((1 << tc->time_shift) - 1);
|
||||
return tc->time_zero + quot * tc->time_mult +
|
||||
((rem * tc->time_mult) >> tc->time_shift);
|
||||
}
|
||||
|
||||
int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc,
|
||||
struct perf_tsc_conversion *tc)
|
||||
{
|
||||
|
Reference in New Issue
Block a user