* Yannick Brosseau ([email protected]) wrote: > The PPC version of the trace_clock_read64 was using the TB register > which is not constant accross implementations. The currently > measured time base on PPC was not accurate. > So, for now, we rely on the CLOCK_MONOTONIC. > > This patch remove a bunch of #ifdef for x86 and PPC, since we now rely on > the same base clock. It also fix the build on PPC that was currently broken
Merged, thanks ! We should do a 0.12 bugfix release soon. This is a major showstopper on ppc. Mathieu > > Signed-off-by: Yannick Brosseau <[email protected]> > --- > include/ust/clock.h | 30 ++---------------------------- > 1 files changed, 2 insertions(+), 28 deletions(-) > > diff --git a/include/ust/clock.h b/include/ust/clock.h > index 04785fc..5e558f8 100644 > --- a/include/ust/clock.h > +++ b/include/ust/clock.h > @@ -39,7 +39,6 @@ > precision and monotonicity. > */ > > -#if __i386__ || __x86_64__ > /* Only available for x86 arch */ > #define CLOCK_TRACE_FREQ 14 > #define CLOCK_TRACE 15 > @@ -47,36 +46,10 @@ union lttng_timespec { > struct timespec ts; > u64 lttng_ts; > }; > -#endif /* __i386__ || __x86_64__ */ > > extern int ust_clock_source; > > /* Choosing correct trace clock */ > -#if __PPC__ > -static __inline__ u64 trace_clock_read64(void) > -{ > - unsigned long tb_l; > - unsigned long tb_h; > - unsigned long tb_h2; > - u64 tb; > - > - __asm__ ( > - "1:\n\t" > - "mftbu %[rhigh]\n\t" > - "mftb %[rlow]\n\t" > - "mftbu %[rhigh2]\n\t" > - "cmpw %[rhigh],%[rhigh2]\n\t" > - "bne 1b\n\t" > - : [rhigh] "=r" (tb_h), [rhigh2] "=r" (tb_h2), [rlow] "=r" > (tb_l)); > - > - tb = tb_h; > - tb <<= 32; > - tb |= tb_l; > - > - return tb; > -} > - > -#else /* !__PPC__ */ > > static __inline__ u64 trace_clock_read64(void) > { > @@ -101,17 +74,18 @@ static __inline__ u64 trace_clock_read64(void) > return retval; > } > > -#endif /* __PPC__ */ > > static __inline__ u64 trace_clock_frequency(void) > { > struct timespec ts; > union lttng_timespec *lts = (union lttng_timespec *) &ts; > > +#if __i386__ || __x86_64__ > if (likely(ust_clock_source == CLOCK_TRACE)) { > clock_gettime(CLOCK_TRACE_FREQ, &ts); > return lts->lttng_ts; > } > +#endif > return 1000000000LL; > } > > -- > 1.7.2.3 > > > _______________________________________________ > ltt-dev mailing list > [email protected] > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev > -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com _______________________________________________ ltt-dev mailing list [email protected] http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
