public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RELEASE] LTTng 0.181 for Linux kernel 2.6.32
@ 2009-12-04 16:06 Mathieu Desnoyers
  2009-12-13 18:48 ` Josh Boyer
  2009-12-13 19:42 ` Felipe Balbi
  0 siblings, 2 replies; 9+ messages in thread
From: Mathieu Desnoyers @ 2009-12-04 16:06 UTC (permalink / raw)
  To: ltt-dev; +Cc: linux-kernel

Hi,

I just released LTTng 0.181 for Linux kernel 2.6.32. All packages and
links to the git tree can be found at:

http://www.lttng.org

Comment and feedback are always welcome.

Thanks,

Mathieu

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RELEASE] LTTng 0.181 for Linux kernel 2.6.32
  2009-12-04 16:06 [RELEASE] LTTng 0.181 for Linux kernel 2.6.32 Mathieu Desnoyers
@ 2009-12-13 18:48 ` Josh Boyer
  2009-12-16 16:24   ` [ltt-dev] " Mathieu Desnoyers
  2009-12-13 19:42 ` Felipe Balbi
  1 sibling, 1 reply; 9+ messages in thread
From: Josh Boyer @ 2009-12-13 18:48 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: ltt-dev, linux-kernel

On Fri, Dec 04, 2009 at 11:06:33AM -0500, Mathieu Desnoyers wrote:
>Hi,
>
>I just released LTTng 0.181 for Linux kernel 2.6.32. All packages and
>links to the git tree can be found at:
>
>http://www.lttng.org
>
>Comment and feedback are always welcome.

This fails to build for PowerPC 44x.  The following trivial patch fixes it.

josh

From: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Subject: Fix LTTng 0.181 compilation on PowerPC

LTTng fails to build on powerpc due to a missing #include in the instrumented
arch/powerpc/kernel/timer.c file.  Fix it.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

---

diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 5465ab2..3e7f6e4 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -54,6 +54,7 @@
 #include <linux/irq.h>
 #include <linux/delay.h>
 #include <linux/perf_event.h>
+#include <trace/trap.h>
 
 #include <asm/io.h>
 #include <asm/processor.h>


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [RELEASE] LTTng 0.181 for Linux kernel 2.6.32
  2009-12-04 16:06 [RELEASE] LTTng 0.181 for Linux kernel 2.6.32 Mathieu Desnoyers
  2009-12-13 18:48 ` Josh Boyer
@ 2009-12-13 19:42 ` Felipe Balbi
  2009-12-16 16:35   ` [ltt-dev] " Mathieu Desnoyers
  2009-12-16 21:35   ` [RELEASE] LTTng 0.182 " Mathieu Desnoyers
  1 sibling, 2 replies; 9+ messages in thread
From: Felipe Balbi @ 2009-12-13 19:42 UTC (permalink / raw)
  To: ext Mathieu Desnoyers
  Cc: ltt-dev@lists.casi.polymtl.ca, linux-kernel@vger.kernel.org

[-- Attachment #1: Type: text/plain, Size: 418 bytes --]

Hi,

On Fri, Dec 04, 2009 at 05:06:33PM +0100, ext Mathieu Desnoyers wrote:
>I just released LTTng 0.181 for Linux kernel 2.6.32. All packages and
>links to the git tree can be found at:
>
>http://www.lttng.org
>
>Comment and feedback are always welcome.

with the two attached patches, omap tree should be fine.

I changed the extern clocksource pointer to clocksource_default_clock()
hope that's correct.

-- 
balbi

[-- Attachment #2: arm-omap-lttng-fix-build-breakage.patch --]
[-- Type: text/x-diff, Size: 2164 bytes --]

arm: omap: lttng: fix build breakage

Fix compilation with lttng patches applied on omap.

Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
Index: linux-omap-2.6/arch/arm/mach-omap2/trace-clock.c
===================================================================
--- linux-omap-2.6.orig/arch/arm/mach-omap2/trace-clock.c	2009-12-13 21:22:09.554137130 +0200
+++ linux-omap-2.6/arch/arm/mach-omap2/trace-clock.c	2009-12-13 21:31:59.482441303 +0200
@@ -12,12 +12,9 @@
 #include <linux/timer.h>
 #include <linux/spinlock.h>
 #include <linux/init.h>
-#include <mach/dmtimer.h>
+#include <plat/dmtimer.h>
 #include <mach/trace-clock.h>
 
-/* Need direct access to the clock from kernel/time/timekeeping.c */
-extern struct clocksource *clock;
-
 /* 32KHz counter count save upon PM sleep */
 static u32 saved_32k_count;
 static u64 saved_trace_clock;
@@ -124,6 +121,7 @@
 
 void _start_trace_clock(void)
 {
+	struct clocksource *clock = clocksource_default_clock();
 	unsigned long flags;
 	unsigned int count_32k, count_trace_clock;
 	u32 regval;
@@ -149,7 +147,7 @@
 	 */
 	ref_time = saved_trace_clock;
 	local_irq_save(flags);
-	count_32k = clocksource_read(clock);
+	count_32k = clock->read(clock);
 	prev_time = trace_clock_read64();
 	/*
 	 * Delta done on 32-bits, then casted to u64. Must guarantee
@@ -190,7 +188,9 @@
 
 void _stop_trace_clock(void)
 {
-	saved_32k_count = clocksource_read(clock);
+	struct clocksource *clock = clocksource_default_clock();
+
+	saved_32k_count = clock->read(clock);
 	saved_trace_clock = trace_clock_read64();
 	del_timer_sync(&clear_ccnt_ms_timer);
 	put_synthetic_tsc();
Index: linux-omap-2.6/arch/arm/plat-omap/include/mach/trace-clock.h
===================================================================
--- linux-omap-2.6.orig/arch/arm/plat-omap/include/mach/trace-clock.h	2009-12-13 21:22:16.818137314 +0200
+++ linux-omap-2.6/arch/arm/plat-omap/include/mach/trace-clock.h	2009-12-13 21:36:09.926137740 +0200
@@ -9,7 +9,7 @@
 
 #include <linux/clk.h>
 #include <asm/system.h>
-#include <mach/dmtimer.h>
+#include <plat/dmtimer.h>
 
 /*
  * Number of hardware clock bits. The higher order bits are expected to be 0.

[-- Attachment #3: arm-omap-lttng-move-mach-omap2-include-mach.patch --]
[-- Type: text/x-diff, Size: 6281 bytes --]

arm: omap: lttng: move to mach-omap2/include/mach

Move the file to expected location

Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
Index: linux-omap-2.6/arch/arm/plat-omap/include/mach/trace-clock.h
===================================================================
--- linux-omap-2.6.orig/arch/arm/plat-omap/include/mach/trace-clock.h	2009-12-13 21:38:57.794137510 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2009 Mathieu Desnoyers
- *
- * Trace clock ARM OMAP3 definitions.
- */
-
-#ifndef _ASM_ARM_TRACE_CLOCK_OMAP3_H
-#define _ASM_ARM_TRACE_CLOCK_OMAP3_H
-
-#include <linux/clk.h>
-#include <asm/system.h>
-#include <plat/dmtimer.h>
-
-/*
- * Number of hardware clock bits. The higher order bits are expected to be 0.
- * If the hardware clock source has more than 32 bits, the bits higher than the
- * 32nd will be truncated by a cast to a 32 bits unsigned. Range : 1 - 32.
- * (too few bits would be unrealistic though, since we depend on the timer to
- * detect the overflows).
- * OMAP3-specific : we clear bit 31 periodically so it never overflows. There is
- * a hardware bug with CP14 and CP15 being executed at the same time a ccnt overflow
- * occurs.
- *
- * Siarhei Siamashka <siarhei.siamashka@nokia.com> :
- * Performance monitoring unit breaks if somebody is accessing CP14/CP15
- * coprocessor register exactly at the same time as CCNT overflows (regardless
- * of the fact if generation of interrupts is enabled or not). A workaround
- * suggested by ARM was to never allow it to overflow and reset it
- * periodically.
- */
-#define TC_HW_BITS			31
-
-/* Expected maximum interrupt latency in ms : 15ms, *2 for security */
-#define TC_EXPECTED_INTERRUPT_LATENCY	30
-
-extern u64 trace_clock_read_synthetic_tsc(void);
-extern void _trace_clock_write_synthetic_tsc(u64 value);
-extern struct omap_dm_timer *trace_clock_timer;
-extern unsigned long long cpu_hz;
-
-/*
- * ARM OMAP3 timers only return 32-bits values. We ened to extend it to a
- * 64-bit value, which is provided by trace-clock-32-to-64.
- */
-extern u64 trace_clock_async_tsc_read(void);
-/*
- * Update done by the architecture upon wakeup.
- */
-extern void _trace_clock_write_synthetic_tsc(u64 value);
-
-static inline u32 read_ccnt(void)
-{
-	u32 val;
-        __asm__ __volatile__ ("mrc p15, 0, %0, c9, c13, 0" : "=r" (val));
-	return val & ~(1 << TC_HW_BITS);
-}
-
-static inline u32 trace_clock_read32(void)
-{
-	u32 val;
-
-	isb();
-	val = read_ccnt();
-	isb();
-	return val;
-}
-
-static inline u64 trace_clock_read64(void)
-{
-	return trace_clock_read_synthetic_tsc();
-}
-
-static inline u64 trace_clock_frequency(void)
-{
-	return cpu_hz;
-}
-
-static inline u32 trace_clock_freq_scale(void)
-{
-	return 1;
-}
-
-extern void get_trace_clock(void);
-extern void put_trace_clock(void);
-extern void get_synthetic_tsc(void);
-extern void put_synthetic_tsc(void);
-
-/* Used by the architecture upon wakeup from PM idle */
-extern void start_trace_clock(void);
-/* Used by the architecture when going to PM idle */
-extern void stop_trace_clock(void);
-
-static inline void set_trace_clock_is_sync(int state)
-{
-}
-#endif /* _ASM_MIPS_TRACE_CLOCK_OMAP3_H */
Index: linux-omap-2.6/arch/arm/mach-omap2/include/mach/trace-clock.h
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ linux-omap-2.6/arch/arm/mach-omap2/include/mach/trace-clock.h	2009-12-13 21:22:23.394136616 +0200
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2009 Mathieu Desnoyers
+ *
+ * Trace clock ARM OMAP3 definitions.
+ */
+
+#ifndef _ASM_ARM_TRACE_CLOCK_OMAP3_H
+#define _ASM_ARM_TRACE_CLOCK_OMAP3_H
+
+#include <linux/clk.h>
+#include <asm/system.h>
+#include <plat/dmtimer.h>
+
+/*
+ * Number of hardware clock bits. The higher order bits are expected to be 0.
+ * If the hardware clock source has more than 32 bits, the bits higher than the
+ * 32nd will be truncated by a cast to a 32 bits unsigned. Range : 1 - 32.
+ * (too few bits would be unrealistic though, since we depend on the timer to
+ * detect the overflows).
+ * OMAP3-specific : we clear bit 31 periodically so it never overflows. There is
+ * a hardware bug with CP14 and CP15 being executed at the same time a ccnt overflow
+ * occurs.
+ *
+ * Siarhei Siamashka <siarhei.siamashka@nokia.com> :
+ * Performance monitoring unit breaks if somebody is accessing CP14/CP15
+ * coprocessor register exactly at the same time as CCNT overflows (regardless
+ * of the fact if generation of interrupts is enabled or not). A workaround
+ * suggested by ARM was to never allow it to overflow and reset it
+ * periodically.
+ */
+#define TC_HW_BITS			31
+
+/* Expected maximum interrupt latency in ms : 15ms, *2 for security */
+#define TC_EXPECTED_INTERRUPT_LATENCY	30
+
+extern u64 trace_clock_read_synthetic_tsc(void);
+extern void _trace_clock_write_synthetic_tsc(u64 value);
+extern struct omap_dm_timer *trace_clock_timer;
+extern unsigned long long cpu_hz;
+
+/*
+ * ARM OMAP3 timers only return 32-bits values. We ened to extend it to a
+ * 64-bit value, which is provided by trace-clock-32-to-64.
+ */
+extern u64 trace_clock_async_tsc_read(void);
+/*
+ * Update done by the architecture upon wakeup.
+ */
+extern void _trace_clock_write_synthetic_tsc(u64 value);
+
+static inline u32 read_ccnt(void)
+{
+	u32 val;
+        __asm__ __volatile__ ("mrc p15, 0, %0, c9, c13, 0" : "=r" (val));
+	return val & ~(1 << TC_HW_BITS);
+}
+
+static inline u32 trace_clock_read32(void)
+{
+	u32 val;
+
+	isb();
+	val = read_ccnt();
+	isb();
+	return val;
+}
+
+static inline u64 trace_clock_read64(void)
+{
+	return trace_clock_read_synthetic_tsc();
+}
+
+static inline u64 trace_clock_frequency(void)
+{
+	return cpu_hz;
+}
+
+static inline u32 trace_clock_freq_scale(void)
+{
+	return 1;
+}
+
+extern void get_trace_clock(void);
+extern void put_trace_clock(void);
+extern void get_synthetic_tsc(void);
+extern void put_synthetic_tsc(void);
+
+/* Used by the architecture upon wakeup from PM idle */
+extern void start_trace_clock(void);
+/* Used by the architecture when going to PM idle */
+extern void stop_trace_clock(void);
+
+static inline void set_trace_clock_is_sync(int state)
+{
+}
+#endif /* _ASM_MIPS_TRACE_CLOCK_OMAP3_H */

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ltt-dev] [RELEASE] LTTng 0.181 for Linux kernel 2.6.32
  2009-12-13 18:48 ` Josh Boyer
@ 2009-12-16 16:24   ` Mathieu Desnoyers
  0 siblings, 0 replies; 9+ messages in thread
From: Mathieu Desnoyers @ 2009-12-16 16:24 UTC (permalink / raw)
  To: Josh Boyer; +Cc: ltt-dev, linux-kernel

* Josh Boyer (jwboyer@linux.vnet.ibm.com) wrote:
> On Fri, Dec 04, 2009 at 11:06:33AM -0500, Mathieu Desnoyers wrote:
> >Hi,
> >
> >I just released LTTng 0.181 for Linux kernel 2.6.32. All packages and
> >links to the git tree can be found at:
> >
> >http://www.lttng.org
> >
> >Comment and feedback are always welcome.
> 
> This fails to build for PowerPC 44x.  The following trivial patch fixes it.

Merged, will be in LTTng 0.182.

Thanks !

Mathieu

> 
> josh
> 
> From: Josh Boyer <jwboyer@linux.vnet.ibm.com>
> Subject: Fix LTTng 0.181 compilation on PowerPC
> 
> LTTng fails to build on powerpc due to a missing #include in the instrumented
> arch/powerpc/kernel/timer.c file.  Fix it.
> 
> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
> 
> ---
> 
> diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
> index 5465ab2..3e7f6e4 100644
> --- a/arch/powerpc/kernel/time.c
> +++ b/arch/powerpc/kernel/time.c
> @@ -54,6 +54,7 @@
>  #include <linux/irq.h>
>  #include <linux/delay.h>
>  #include <linux/perf_event.h>
> +#include <trace/trap.h>
>  
>  #include <asm/io.h>
>  #include <asm/processor.h>
> 
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev@lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ltt-dev] [RELEASE] LTTng 0.181 for Linux kernel 2.6.32
  2009-12-13 19:42 ` Felipe Balbi
@ 2009-12-16 16:35   ` Mathieu Desnoyers
  2009-12-16 21:35   ` [RELEASE] LTTng 0.182 " Mathieu Desnoyers
  1 sibling, 0 replies; 9+ messages in thread
From: Mathieu Desnoyers @ 2009-12-16 16:35 UTC (permalink / raw)
  To: Felipe Balbi; +Cc: ltt-dev@lists.casi.polymtl.ca, linux-kernel@vger.kernel.org

* Felipe Balbi (felipe.balbi@nokia.com) wrote:
> Hi,
>
> On Fri, Dec 04, 2009 at 05:06:33PM +0100, ext Mathieu Desnoyers wrote:
>> I just released LTTng 0.181 for Linux kernel 2.6.32. All packages and
>> links to the git tree can be found at:
>>
>> http://www.lttng.org
>>
>> Comment and feedback are always welcome.
>
> with the two attached patches, omap tree should be fine.
>

Hi Felipe,

I am currently working in the linux-2.6-omap pm tree to support power
management and DVFS for the omap3. Given the changes I made in the omap
tree, I think it's best if I merge the parts that fit back into the
lttng tree based on mainline rather than merging your patches.

I agree with your suggestion to move the header to
arch/arm/mach-omap2/include/mach/trace-clock.h

> I changed the extern clocksource pointer to clocksource_default_clock()
> hope that's correct.

Hrm, I really need this one to be the 32k clock. I am making sure LTTng
depends on this clock being available on the omap3. I use the low-level
value and expect it to run at 32768 HZ. I also need it to stay active
when the system is in standby mode.

Thanks,

Mathieu

>
> -- 
> balbi

> arm: omap: lttng: fix build breakage
> 
> Fix compilation with lttng patches applied on omap.
> 
> Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
> Index: linux-omap-2.6/arch/arm/mach-omap2/trace-clock.c
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/mach-omap2/trace-clock.c	2009-12-13 21:22:09.554137130 +0200
> +++ linux-omap-2.6/arch/arm/mach-omap2/trace-clock.c	2009-12-13 21:31:59.482441303 +0200
> @@ -12,12 +12,9 @@
>  #include <linux/timer.h>
>  #include <linux/spinlock.h>
>  #include <linux/init.h>
> -#include <mach/dmtimer.h>
> +#include <plat/dmtimer.h>
>  #include <mach/trace-clock.h>
>  
> -/* Need direct access to the clock from kernel/time/timekeeping.c */
> -extern struct clocksource *clock;
> -
>  /* 32KHz counter count save upon PM sleep */
>  static u32 saved_32k_count;
>  static u64 saved_trace_clock;
> @@ -124,6 +121,7 @@
>  
>  void _start_trace_clock(void)
>  {
> +	struct clocksource *clock = clocksource_default_clock();
>  	unsigned long flags;
>  	unsigned int count_32k, count_trace_clock;
>  	u32 regval;
> @@ -149,7 +147,7 @@
>  	 */
>  	ref_time = saved_trace_clock;
>  	local_irq_save(flags);
> -	count_32k = clocksource_read(clock);
> +	count_32k = clock->read(clock);
>  	prev_time = trace_clock_read64();
>  	/*
>  	 * Delta done on 32-bits, then casted to u64. Must guarantee
> @@ -190,7 +188,9 @@
>  
>  void _stop_trace_clock(void)
>  {
> -	saved_32k_count = clocksource_read(clock);
> +	struct clocksource *clock = clocksource_default_clock();
> +
> +	saved_32k_count = clock->read(clock);
>  	saved_trace_clock = trace_clock_read64();
>  	del_timer_sync(&clear_ccnt_ms_timer);
>  	put_synthetic_tsc();
> Index: linux-omap-2.6/arch/arm/plat-omap/include/mach/trace-clock.h
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/plat-omap/include/mach/trace-clock.h	2009-12-13 21:22:16.818137314 +0200
> +++ linux-omap-2.6/arch/arm/plat-omap/include/mach/trace-clock.h	2009-12-13 21:36:09.926137740 +0200
> @@ -9,7 +9,7 @@
>  
>  #include <linux/clk.h>
>  #include <asm/system.h>
> -#include <mach/dmtimer.h>
> +#include <plat/dmtimer.h>
>  
>  /*
>   * Number of hardware clock bits. The higher order bits are expected to be 0.

> arm: omap: lttng: move to mach-omap2/include/mach
> 
> Move the file to expected location
> 
> Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
> Index: linux-omap-2.6/arch/arm/plat-omap/include/mach/trace-clock.h
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/plat-omap/include/mach/trace-clock.h	2009-12-13 21:38:57.794137510 +0200
> +++ /dev/null	1970-01-01 00:00:00.000000000 +0000
> @@ -1,96 +0,0 @@
> -/*
> - * Copyright (C) 2009 Mathieu Desnoyers
> - *
> - * Trace clock ARM OMAP3 definitions.
> - */
> -
> -#ifndef _ASM_ARM_TRACE_CLOCK_OMAP3_H
> -#define _ASM_ARM_TRACE_CLOCK_OMAP3_H
> -
> -#include <linux/clk.h>
> -#include <asm/system.h>
> -#include <plat/dmtimer.h>
> -
> -/*
> - * Number of hardware clock bits. The higher order bits are expected to be 0.
> - * If the hardware clock source has more than 32 bits, the bits higher than the
> - * 32nd will be truncated by a cast to a 32 bits unsigned. Range : 1 - 32.
> - * (too few bits would be unrealistic though, since we depend on the timer to
> - * detect the overflows).
> - * OMAP3-specific : we clear bit 31 periodically so it never overflows. There is
> - * a hardware bug with CP14 and CP15 being executed at the same time a ccnt overflow
> - * occurs.
> - *
> - * Siarhei Siamashka <siarhei.siamashka@nokia.com> :
> - * Performance monitoring unit breaks if somebody is accessing CP14/CP15
> - * coprocessor register exactly at the same time as CCNT overflows (regardless
> - * of the fact if generation of interrupts is enabled or not). A workaround
> - * suggested by ARM was to never allow it to overflow and reset it
> - * periodically.
> - */
> -#define TC_HW_BITS			31
> -
> -/* Expected maximum interrupt latency in ms : 15ms, *2 for security */
> -#define TC_EXPECTED_INTERRUPT_LATENCY	30
> -
> -extern u64 trace_clock_read_synthetic_tsc(void);
> -extern void _trace_clock_write_synthetic_tsc(u64 value);
> -extern struct omap_dm_timer *trace_clock_timer;
> -extern unsigned long long cpu_hz;
> -
> -/*
> - * ARM OMAP3 timers only return 32-bits values. We ened to extend it to a
> - * 64-bit value, which is provided by trace-clock-32-to-64.
> - */
> -extern u64 trace_clock_async_tsc_read(void);
> -/*
> - * Update done by the architecture upon wakeup.
> - */
> -extern void _trace_clock_write_synthetic_tsc(u64 value);
> -
> -static inline u32 read_ccnt(void)
> -{
> -	u32 val;
> -        __asm__ __volatile__ ("mrc p15, 0, %0, c9, c13, 0" : "=r" (val));
> -	return val & ~(1 << TC_HW_BITS);
> -}
> -
> -static inline u32 trace_clock_read32(void)
> -{
> -	u32 val;
> -
> -	isb();
> -	val = read_ccnt();
> -	isb();
> -	return val;
> -}
> -
> -static inline u64 trace_clock_read64(void)
> -{
> -	return trace_clock_read_synthetic_tsc();
> -}
> -
> -static inline u64 trace_clock_frequency(void)
> -{
> -	return cpu_hz;
> -}
> -
> -static inline u32 trace_clock_freq_scale(void)
> -{
> -	return 1;
> -}
> -
> -extern void get_trace_clock(void);
> -extern void put_trace_clock(void);
> -extern void get_synthetic_tsc(void);
> -extern void put_synthetic_tsc(void);
> -
> -/* Used by the architecture upon wakeup from PM idle */
> -extern void start_trace_clock(void);
> -/* Used by the architecture when going to PM idle */
> -extern void stop_trace_clock(void);
> -
> -static inline void set_trace_clock_is_sync(int state)
> -{
> -}
> -#endif /* _ASM_MIPS_TRACE_CLOCK_OMAP3_H */
> Index: linux-omap-2.6/arch/arm/mach-omap2/include/mach/trace-clock.h
> ===================================================================
> --- /dev/null	1970-01-01 00:00:00.000000000 +0000
> +++ linux-omap-2.6/arch/arm/mach-omap2/include/mach/trace-clock.h	2009-12-13 21:22:23.394136616 +0200
> @@ -0,0 +1,96 @@
> +/*
> + * Copyright (C) 2009 Mathieu Desnoyers
> + *
> + * Trace clock ARM OMAP3 definitions.
> + */
> +
> +#ifndef _ASM_ARM_TRACE_CLOCK_OMAP3_H
> +#define _ASM_ARM_TRACE_CLOCK_OMAP3_H
> +
> +#include <linux/clk.h>
> +#include <asm/system.h>
> +#include <plat/dmtimer.h>
> +
> +/*
> + * Number of hardware clock bits. The higher order bits are expected to be 0.
> + * If the hardware clock source has more than 32 bits, the bits higher than the
> + * 32nd will be truncated by a cast to a 32 bits unsigned. Range : 1 - 32.
> + * (too few bits would be unrealistic though, since we depend on the timer to
> + * detect the overflows).
> + * OMAP3-specific : we clear bit 31 periodically so it never overflows. There is
> + * a hardware bug with CP14 and CP15 being executed at the same time a ccnt overflow
> + * occurs.
> + *
> + * Siarhei Siamashka <siarhei.siamashka@nokia.com> :
> + * Performance monitoring unit breaks if somebody is accessing CP14/CP15
> + * coprocessor register exactly at the same time as CCNT overflows (regardless
> + * of the fact if generation of interrupts is enabled or not). A workaround
> + * suggested by ARM was to never allow it to overflow and reset it
> + * periodically.
> + */
> +#define TC_HW_BITS			31
> +
> +/* Expected maximum interrupt latency in ms : 15ms, *2 for security */
> +#define TC_EXPECTED_INTERRUPT_LATENCY	30
> +
> +extern u64 trace_clock_read_synthetic_tsc(void);
> +extern void _trace_clock_write_synthetic_tsc(u64 value);
> +extern struct omap_dm_timer *trace_clock_timer;
> +extern unsigned long long cpu_hz;
> +
> +/*
> + * ARM OMAP3 timers only return 32-bits values. We ened to extend it to a
> + * 64-bit value, which is provided by trace-clock-32-to-64.
> + */
> +extern u64 trace_clock_async_tsc_read(void);
> +/*
> + * Update done by the architecture upon wakeup.
> + */
> +extern void _trace_clock_write_synthetic_tsc(u64 value);
> +
> +static inline u32 read_ccnt(void)
> +{
> +	u32 val;
> +        __asm__ __volatile__ ("mrc p15, 0, %0, c9, c13, 0" : "=r" (val));
> +	return val & ~(1 << TC_HW_BITS);
> +}
> +
> +static inline u32 trace_clock_read32(void)
> +{
> +	u32 val;
> +
> +	isb();
> +	val = read_ccnt();
> +	isb();
> +	return val;
> +}
> +
> +static inline u64 trace_clock_read64(void)
> +{
> +	return trace_clock_read_synthetic_tsc();
> +}
> +
> +static inline u64 trace_clock_frequency(void)
> +{
> +	return cpu_hz;
> +}
> +
> +static inline u32 trace_clock_freq_scale(void)
> +{
> +	return 1;
> +}
> +
> +extern void get_trace_clock(void);
> +extern void put_trace_clock(void);
> +extern void get_synthetic_tsc(void);
> +extern void put_synthetic_tsc(void);
> +
> +/* Used by the architecture upon wakeup from PM idle */
> +extern void start_trace_clock(void);
> +/* Used by the architecture when going to PM idle */
> +extern void stop_trace_clock(void);
> +
> +static inline void set_trace_clock_is_sync(int state)
> +{
> +}
> +#endif /* _ASM_MIPS_TRACE_CLOCK_OMAP3_H */

> _______________________________________________
> ltt-dev mailing list
> ltt-dev@lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev


-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [RELEASE] LTTng 0.182 for Linux kernel 2.6.32
  2009-12-13 19:42 ` Felipe Balbi
  2009-12-16 16:35   ` [ltt-dev] " Mathieu Desnoyers
@ 2009-12-16 21:35   ` Mathieu Desnoyers
  2009-12-16 22:29     ` [RELEASE] LTTng 0.182o for 2.6.32-rc8 omap/pm tree Mathieu Desnoyers
  1 sibling, 1 reply; 9+ messages in thread
From: Mathieu Desnoyers @ 2009-12-16 21:35 UTC (permalink / raw)
  To: leonid.moiseichuk, Viktor.Rosendahl, tony, eero.tamminen
  Cc: ltt-dev@lists.casi.polymtl.ca, linux-kernel@vger.kernel.org,
	Felipe Balbi

Hi !

I just released LTTng 0.182 for mainline kernel 2.6.32. It fixes ppc440
build and, more importantly, adds full support for ARM omap3 to the
trace clock:

- Power management support (suspend/resume, idle)
- DVFS support

Basically, the infrastructure is based on the 32k timer as external
time source, but uses the ccnt register to read the time base quickly at
each event. The trace clock is responsible for extending the 32-bit
counter to 64-bit, and for resynchronizing it on the 32k clock when
necessary.

I did all development and testing of the omap3 features on top of a
linux-omap-2.6 2.6.32-rc8 kernel and then reintegrated the patches in
the main LTTng tree. I only build-tested the port to main LTTng tree.

I should put the linux-omap-2.6-lttng tree online shortly, along with
the corresponding patchset.

Feedback is welcome !

Thanks,

Mathieu

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [RELEASE] LTTng 0.182o for 2.6.32-rc8 omap/pm tree
  2009-12-16 21:35   ` [RELEASE] LTTng 0.182 " Mathieu Desnoyers
@ 2009-12-16 22:29     ` Mathieu Desnoyers
  2009-12-16 22:41       ` [RELEASE] LTTV 0.12.25 Mathieu Desnoyers
  2009-12-20 12:52       ` [RELEASE] LTTng 0.183/0.183o Mathieu Desnoyers
  0 siblings, 2 replies; 9+ messages in thread
From: Mathieu Desnoyers @ 2009-12-16 22:29 UTC (permalink / raw)
  To: leonid.moiseichuk, Viktor.Rosendahl, tony, eero.tamminen
  Cc: Felipe Balbi, ltt-dev@lists.casi.polymtl.ca,
	linux-kernel@vger.kernel.org

* Mathieu Desnoyers (mathieu.desnoyers@polymtl.ca) wrote:
> Hi !
> 
> I just released LTTng 0.182 for mainline kernel 2.6.32. It fixes ppc440
> build and, more importantly, adds full support for ARM omap3 to the
> trace clock:
> 
> - Power management support (suspend/resume, idle)
> - DVFS support
> 
> Basically, the infrastructure is based on the 32k timer as external
> time source, but uses the ccnt register to read the time base quickly at
> each event. The trace clock is responsible for extending the 32-bit
> counter to 64-bit, and for resynchronizing it on the 32k clock when
> necessary.
> 
> I did all development and testing of the omap3 features on top of a
> linux-omap-2.6 2.6.32-rc8 kernel and then reintegrated the patches in
> the main LTTng tree. I only build-tested the port to main LTTng tree.
> 
> I should put the linux-omap-2.6-lttng tree online shortly, along with
> the corresponding patchset.

.. and the corresponding patchset and git tree for the omap/pm tree,
based on kernel 2.6.32-rc8:

git://lttng.org/linux-omap-pm-2.6-lttng.git

http://lttng.org/files/lttng/patch-omap-pm-2.6.32-rc8-lttng-0.182o.tar.bz2

(it is actually a mix of lttng 0.180 to 0.182).

Have fun !

Mathieu

> 
> Feedback is welcome !
> 
> Thanks,
> 
> Mathieu
> 
> -- 
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev@lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [RELEASE] LTTV 0.12.25
  2009-12-16 22:29     ` [RELEASE] LTTng 0.182o for 2.6.32-rc8 omap/pm tree Mathieu Desnoyers
@ 2009-12-16 22:41       ` Mathieu Desnoyers
  2009-12-20 12:52       ` [RELEASE] LTTng 0.183/0.183o Mathieu Desnoyers
  1 sibling, 0 replies; 9+ messages in thread
From: Mathieu Desnoyers @ 2009-12-16 22:41 UTC (permalink / raw)
  To: leonid.moiseichuk, Viktor.Rosendahl, tony, eero.tamminen
  Cc: Felipe Balbi, ltt-dev@lists.casi.polymtl.ca,
	linux-kernel@vger.kernel.org

LTTV 0.12.25 can be useful to view traces taken from an ARM omap3 board.
This release works around a problem with irq tables experienced with IRQ
IDs > 256, which I have seen on the ARM omap3.

Available at http://lttng.org

Thanks,

Mathieu

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [RELEASE] LTTng 0.183/0.183o
  2009-12-16 22:29     ` [RELEASE] LTTng 0.182o for 2.6.32-rc8 omap/pm tree Mathieu Desnoyers
  2009-12-16 22:41       ` [RELEASE] LTTV 0.12.25 Mathieu Desnoyers
@ 2009-12-20 12:52       ` Mathieu Desnoyers
  1 sibling, 0 replies; 9+ messages in thread
From: Mathieu Desnoyers @ 2009-12-20 12:52 UTC (permalink / raw)
  To: leonid.moiseichuk, Viktor.Rosendahl, tony, eero.tamminen
  Cc: Felipe Balbi, ltt-dev@lists.casi.polymtl.ca,
	linux-kernel@vger.kernel.org

* Mathieu Desnoyers (mathieu.desnoyers@polymtl.ca) wrote:
> * Mathieu Desnoyers (mathieu.desnoyers@polymtl.ca) wrote:
> > Hi !
> > 
> > I just released LTTng 0.182 for mainline kernel 2.6.32. It fixes ppc440
> > build and, more importantly, adds full support for ARM omap3 to the
> > trace clock:
> > 
> > - Power management support (suspend/resume, idle)
> > - DVFS support
> > 
> > Basically, the infrastructure is based on the 32k timer as external
> > time source, but uses the ccnt register to read the time base quickly at
> > each event. The trace clock is responsible for extending the 32-bit
> > counter to 64-bit, and for resynchronizing it on the 32k clock when
> > necessary.
> > 
> > I did all development and testing of the omap3 features on top of a
> > linux-omap-2.6 2.6.32-rc8 kernel and then reintegrated the patches in
> > the main LTTng tree. I only build-tested the port to main LTTng tree.
> > 
> > I should put the linux-omap-2.6-lttng tree online shortly, along with
> > the corresponding patchset.
> 
> .. and the corresponding patchset and git tree for the omap/pm tree,
> based on kernel 2.6.32-rc8:
> 
> git://lttng.org/linux-omap-pm-2.6-lttng.git
> 
> http://lttng.org/files/lttng/patch-omap-pm-2.6.32-rc8-lttng-0.182o.tar.bz2
> 
> (it is actually a mix of lttng 0.180 to 0.182).

Version 0.183/0.183o turns the periodic resync timer into a timer only
launched when actual DVFS frequency change occurs (it is used to ensure
very frequent DVFS freq. change do not generate a high rate of 32k clock
reads).

Also, I don't want to take any chance, and therefore don't assume the
ccnt register is stopped in idle. This version now additionally makes
sure to stop the ccnt register when going to idle/sleep.

Mathieu


> 
> Have fun !
> 
> Mathieu
> 
> > 
> > Feedback is welcome !
> > 
> > Thanks,
> > 
> > Mathieu
> > 
> > -- 
> > Mathieu Desnoyers
> > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> > 
> > _______________________________________________
> > ltt-dev mailing list
> > ltt-dev@lists.casi.polymtl.ca
> > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> > 
> 
> -- 
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev@lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-12-20 12:52 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-04 16:06 [RELEASE] LTTng 0.181 for Linux kernel 2.6.32 Mathieu Desnoyers
2009-12-13 18:48 ` Josh Boyer
2009-12-16 16:24   ` [ltt-dev] " Mathieu Desnoyers
2009-12-13 19:42 ` Felipe Balbi
2009-12-16 16:35   ` [ltt-dev] " Mathieu Desnoyers
2009-12-16 21:35   ` [RELEASE] LTTng 0.182 " Mathieu Desnoyers
2009-12-16 22:29     ` [RELEASE] LTTng 0.182o for 2.6.32-rc8 omap/pm tree Mathieu Desnoyers
2009-12-16 22:41       ` [RELEASE] LTTV 0.12.25 Mathieu Desnoyers
2009-12-20 12:52       ` [RELEASE] LTTng 0.183/0.183o Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox