Re: LTTng for ST40 kernel 2.6.23.1
Mathieu Desnoyers <[email protected]> Wed, 31 Oct 2007 08:32:08 -0400
| Newsgroups | gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <20071031123208.GB24878@Krystal> |
* Giuseppe Cavallaro ([email protected]) wrote: > Mathieu, > I've seen the TSC within ltt-heartbeat.c has been removed. > So the build fails because the ltt_heartbeat_read_synthetic_tsc (used in the > asm/ltt.h:ltt_get_timestamp64) is undefined. > Is it voluntary or we need to restore missing functions? > I guess the same issue ought to be for mips as well. > If I well remember, we need to use Synthetic TSC in order to detect 32 bits > counter overflows and extend it to a 64 bits counter. > Let me know, > Thanks, > Giuseppe > This is now moved to ltt/ltt-timestamp.c, enabled by a different menuconfig option. SH isn't taken care of in the Kconfig though, but it's all good in the next release. Speaking of which: http://ltt.polymtl.ca/lttng/patch-2.6.23-mm1-lttng-0.10-pre9.tar.bz2 contains all this. (including SH instrumentation fix) Mathieu > On 30/10/2007, Mathieu Desnoyers <[email protected]> wrote: > > > > * Giuseppe Cavallaro ([email protected]) wrote: > > > Hi Mathieu, > > > I've applied LTTng (0.10.0-pre7) against the STLinux kernel > > > 2.6.23.1<http://2.6.23.1>(for SH4 architecture). > > > I've had to add the ltt_add_timestamp function (patch attached) in order > > to > > > build kernel/timer.c. > > > I'm going to start testing LTTng on my target... so I'll let you know! > > > > > > > Forget about my last email.. all this is already in the LTTng patchset, > > except ltt_add_timestamp, as you explained. > > > > Thanks, > > > > Mathieu > > > > > Regards, > > > Giuseppe > > > > > This patch adds the timestamping mechanism in the ltt.h arch header > > file. > > > The new timestamp functions use the TMU channel 1. > > > > > > This code only works if the TMU channel 1 is initialized during the > > kernel boot > > > > > > From: Giuseppe Cavallaro <[email protected]> > > > Signed-off-by: Giuseppe Cavallaro <[email protected]> > > > Signed-off-by: Mathieu Desnoyers <[email protected]> > > > > > > --- /dev/null 2007-10-24 15:55:45.303163180 +0200 > > > +++ linux-2.6.23.1/include/asm-sh/ltt.h 2007-10-29 22:54: > > 22.000000000 +0100 > > > @@ -0,0 +1,48 @@ > > > +/* > > > + * Copyright (C) 2007, Giuseppe Cavallaro <[email protected]> > > > + * Mathieu Desnoyers <[email protected]> > > > + * > > > + * SuperH definitions for tracing system > > > + */ > > > + > > > +#ifndef _ASM_SH_LTT_H > > > +#define _ASM_SH_LTT_H > > > + > > > +#include <linux/ltt-core.h> > > > +#include <asm/timer.h> > > > +#include <asm/clock.h> > > > + > > > +#define LTT_HAS_TSC > > > + > > > +u64 ltt_heartbeat_read_synthetic_tsc(void); > > > + > > > +static inline u32 ltt_get_timestamp32(void) > > > +{ > > > + return get_cycles(); > > > +} > > > + > > > +static inline u64 ltt_get_timestamp64(void) > > > +{ > > > + return ltt_heartbeat_read_synthetic_tsc(); > > > +} > > > + > > > +static inline void ltt_add_timestamp(unsigned long ticks) > > > +{ } > > > + > > > +static inline unsigned int ltt_frequency(void) > > > +{ > > > + unsigned long rate; > > > + struct clk *tmu1_clk; > > > + > > > + tmu1_clk = clk_get(NULL, "tmu1_clk"); > > > + rate = (clk_get_rate(tmu1_clk)); > > > + > > > + return (unsigned int)(rate); > > > +} > > > + > > > +static inline u32 ltt_freq_scale(void) > > > +{ > > > + return 1; > > > +} > > > + > > > +#endif /* _ASM_SH_LTT_H */ > > > --- linux-2.6.23.1/include/asm-sh/timex.h.orig 2007-10-29 22:53: > > 50.000000000 +0100 > > > +++ linux-2.6.23.1/include/asm-sh/timex.h 2007-10-29 22:54: > > 14.000000000 +0100 > > > @@ -5,13 +5,20 @@ > > > */ > > > #ifndef __ASM_SH_TIMEX_H > > > #define __ASM_SH_TIMEX_H > > > +#ifdef CONFIG_LTT > > > +#include <asm/cpu/timer.h> > > > +#include <asm/io.h> > > > +#endif > > > > > > -#define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4) /* > > Underlying HZ */ > > > +#define CLOCK_TICK_RATE (HZ * 100000UL) > > > > > > typedef unsigned long long cycles_t; > > > > > > static __inline__ cycles_t get_cycles (void) > > > { > > > +#ifdef CONFIG_LTT > > > + return (0xffffffff - ctrl_inl(TMU1_TCNT)); > > > +#endif > > > return 0; > > > } > > > > > > > > _______________________________________________ > > > Ltt-dev mailing list > > > [email protected] > > > http://listserv.shafik.org/mailman/listinfo/ltt-dev > > > > > > -- > > Mathieu Desnoyers > > Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE > > 9A68 > > -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68