diff options
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-ust-0.11/remove_ppc_specific_time_reading_function.patch | 85 | ||||
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-ust_0.11.bb | 6 |
2 files changed, 89 insertions, 2 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-ust-0.11/remove_ppc_specific_time_reading_function.patch b/meta/recipes-kernel/lttng/lttng-ust-0.11/remove_ppc_specific_time_reading_function.patch new file mode 100644 index 0000000000..c5487fd916 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-ust-0.11/remove_ppc_specific_time_reading_function.patch | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | Dexuan Cui <dexuan.cui@intel.com>: I got the following patch from lttng dev | ||
| 2 | mailing list: | ||
| 3 | http://lists.casi.polymtl.ca/pipermail/ltt-dev/2011-February/003903.html | ||
| 4 | The patch looks good and I think it would be in next release. At present, | ||
| 5 | let's add it into SRC_URI. | ||
| 6 | |||
| 7 | ----------------------------------------------------------------- | ||
| 8 | The PPC version of the trace_clock_read64 was using the TB register | ||
| 9 | which is not constant accross implementations. The currently | ||
| 10 | measured time base on PPC was not accurate. | ||
| 11 | So, for now, we rely on the CLOCK_MONOTONIC. | ||
| 12 | |||
| 13 | This patch remove a bunch of #ifdef for x86 and PPC, since we now rely on | ||
| 14 | the same base clock. It also fix the build on PPC that was currently broken | ||
| 15 | |||
| 16 | Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com> | ||
| 17 | ----------------------------------------------------------------- | ||
| 18 | |||
| 19 | --- a/include/ust/clock.h | ||
| 20 | +++ b/include/ust/clock.h | ||
| 21 | @@ -39,7 +39,6 @@ | ||
| 22 | precision and monotonicity. | ||
| 23 | */ | ||
| 24 | |||
| 25 | -#if __i386__ || __x86_64__ | ||
| 26 | /* Only available for x86 arch */ | ||
| 27 | #define CLOCK_TRACE_FREQ 14 | ||
| 28 | #define CLOCK_TRACE 15 | ||
| 29 | @@ -47,36 +46,10 @@ | ||
| 30 | struct timespec ts; | ||
| 31 | u64 lttng_ts; | ||
| 32 | }; | ||
| 33 | -#endif /* __i386__ || __x86_64__ */ | ||
| 34 | |||
| 35 | extern int ust_clock_source; | ||
| 36 | |||
| 37 | /* Choosing correct trace clock */ | ||
| 38 | -#if __PPC__ | ||
| 39 | -static __inline__ u64 trace_clock_read64(void) | ||
| 40 | -{ | ||
| 41 | - unsigned long tb_l; | ||
| 42 | - unsigned long tb_h; | ||
| 43 | - unsigned long tb_h2; | ||
| 44 | - u64 tb; | ||
| 45 | - | ||
| 46 | - __asm__ ( | ||
| 47 | - "1:\n\t" | ||
| 48 | - "mftbu %[rhigh]\n\t" | ||
| 49 | - "mftb %[rlow]\n\t" | ||
| 50 | - "mftbu %[rhigh2]\n\t" | ||
| 51 | - "cmpw %[rhigh],%[rhigh2]\n\t" | ||
| 52 | - "bne 1b\n\t" | ||
| 53 | - : [rhigh] "=r" (tb_h), [rhigh2] "=r" (tb_h2), [rlow] "=r" (tb_l)); | ||
| 54 | - | ||
| 55 | - tb = tb_h; | ||
| 56 | - tb <<= 32; | ||
| 57 | - tb |= tb_l; | ||
| 58 | - | ||
| 59 | - return tb; | ||
| 60 | -} | ||
| 61 | - | ||
| 62 | -#else /* !__PPC__ */ | ||
| 63 | |||
| 64 | static __inline__ u64 trace_clock_read64(void) | ||
| 65 | { | ||
| 66 | @@ -101,17 +74,17 @@ | ||
| 67 | return retval; | ||
| 68 | } | ||
| 69 | |||
| 70 | -#endif /* __PPC__ */ | ||
| 71 | - | ||
| 72 | static __inline__ u64 trace_clock_frequency(void) | ||
| 73 | { | ||
| 74 | struct timespec ts; | ||
| 75 | union lttng_timespec *lts = (union lttng_timespec *) &ts; | ||
| 76 | |||
| 77 | +#if __i386__ || __x86_64__ | ||
| 78 | if (likely(ust_clock_source == CLOCK_TRACE)) { | ||
| 79 | clock_gettime(CLOCK_TRACE_FREQ, &ts); | ||
| 80 | return lts->lttng_ts; | ||
| 81 | } | ||
| 82 | +#endif | ||
| 83 | return 1000000000LL; | ||
| 84 | } | ||
| 85 | |||
diff --git a/meta/recipes-kernel/lttng/lttng-ust_0.11.bb b/meta/recipes-kernel/lttng/lttng-ust_0.11.bb index 575e35ac9c..9d2063a170 100644 --- a/meta/recipes-kernel/lttng/lttng-ust_0.11.bb +++ b/meta/recipes-kernel/lttng/lttng-ust_0.11.bb | |||
| @@ -10,9 +10,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e647752e045a8c45b6f583771bd561ef \ | |||
| 10 | 10 | ||
| 11 | DEPENDS = "liburcu" | 11 | DEPENDS = "liburcu" |
| 12 | 12 | ||
| 13 | PR = "r0" | 13 | PR = "r1" |
| 14 | 14 | ||
| 15 | SRC_URI = "http://lttng.org/files/ust/releases/ust-${PV}.tar.gz" | 15 | SRC_URI = "http://lttng.org/files/ust/releases/ust-${PV}.tar.gz \ |
| 16 | file://remove_ppc_specific_time_reading_function.patch \ | ||
| 17 | " | ||
| 16 | 18 | ||
| 17 | SRC_URI[md5sum] = "0a23fa60df4da3fb5188e314001eb49c" | 19 | SRC_URI[md5sum] = "0a23fa60df4da3fb5188e314001eb49c" |
| 18 | SRC_URI[sha256sum] = "af8f699019ae260103bb401b6738d5e417e79732a509859b42a52e9a0f5edb35" | 20 | SRC_URI[sha256sum] = "af8f699019ae260103bb401b6738d5e417e79732a509859b42a52e9a0f5edb35" |
