[ltt-dev] LTT for ARM

Ali Günhan Akyürek aliakyurek at gmail.com
Wed Mar 2 04:52:09 EST 2011


Hi all,

Two years ago, I've integrated LTTng to a device with ARM platform and with
kernel 2.6.22. LTTng version was 0.9.10.
I used a sub-arch specific clock source for timestamps, based on the
discussion below:

http://lttng.org/pipermail/ltt-dev/2009-January/000771.html

My sub-arch specific code in asm-arm/ltt.h was the following:

+#ifndef _ASM_ARM_LTT_H
+#define _ASM_ARM_LTT_H
+
+#include <linux/jiffies.h>
+#include <linux/seqlock.h>
+
+#define LTT_ARCH_TYPE LTT_ARCH_TYPE_ARM
+#define LTT_ARCH_VARIANT LTT_ARCH_VARIANT_NONE
+
+#define DEV_MEM_READ_LE(addr)  ((*((volatile unsigned int*)(addr))))
+
+#define SOCTIMER1_VAL_REG 0xF102031C
+#define TIMER1_VAL ((0xffffffff - DEV_MEM_READ_LE(SOCTIMER1_VAL_REG)))
+
+#define TCLK_200MHZ    200000000
+
+u64 ltt_heartbeat_read_synthetic_tsc(void);
+#undef LTT_HAS_TSC
+
+
+static inline u32 ltt_get_timestamp32(void)
+{
+    return TIMER1_VAL;
+}
+
+/* The shift overflow doesn't matter */
+static inline u64 ltt_get_timestamp64(void)
+{
+    return ltt_heartbeat_read_synthetic_tsc();
+}
+
+/* this has to be called with the write seqlock held */
+static inline void ltt_reset_timestamp(void)
+{
+    //atomic_set(&lttng_logical_clock, 0);
+}
+
+
+static inline unsigned int ltt_frequency(void)
+{
+    return TCLK_200MHZ;    //number of timer ticks in a second.
+}
+
+
+static inline u32 ltt_freq_scale(void)
+{
+  return 1;
+}

This worked great for me at that time. However as today, I have to use
kernel 2.6.31 and LTTng 0.178 on same device.
Now, nor asm-arm/ltt.h, neither ltt_get_timestamp32 function exists. How
must I proceed?
Thanks in advance.

Best regards,
Ali
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20110302/cf68b4fc/attachment-0003.htm>


More information about the lttng-dev mailing list