Re: LTTng for ST40 kernel 2.6.23.1
"Giuseppe Cavallaro" <[email protected]> Wed, 31 Oct 2007 08:30:52 +0100
| Newsgroups | gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <[email protected]> |
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 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 > _______________________________________________ Ltt-dev mailing list [email protected] http://listserv.shafik.org/mailman/listinfo/ltt-dev