Re: LTTng for ST40 kernel 2.6.23.1
Mathieu Desnoyers <[email protected]> Tue, 30 Oct 2007 11:28:11 -0400
| Newsgroups | gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <20071030152811.GA29837@Krystal> |
* 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