* [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2)
@ 2009-02-19 3:02 Mathieu Desnoyers
2009-02-19 3:02 ` [ltt-dev] [patch 1/9] omap lttng instrumentation kernel fix Mathieu Desnoyers
` (8 more replies)
0 siblings, 9 replies; 22+ messages in thread
From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw)
Hello,
I decided to add better privitives to eventually support PM sleep in idle.
Please see
omap-trace-clock-add-write-trace-clock.patch
omap-trace-clock-basic-pm-fix.patch
At the end of the patchset. Basically, it resynchronizes the whole trace-clock,
not just the cycle counter. This will be needed for proper PM support.
Mathieu
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
^ permalink raw reply [flat|nested] 22+ messages in thread* [ltt-dev] [patch 1/9] omap lttng instrumentation kernel fix 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 2/9] LTTng - ARM instrumentation Mathieu Desnoyers ` (7 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-lttng-instrumentation-kernel-fix.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/401b282c/attachment-0001.txt> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 1/9] omap lttng instrumentation kernel fix 2009-02-19 3:02 ` [ltt-dev] [patch 1/9] omap lttng instrumentation kernel fix Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 0 siblings, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-lttng-instrumentation-kernel-fix.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/401b282c/attachment.txt> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 2/9] LTTng - ARM instrumentation 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 1/9] omap lttng instrumentation kernel fix Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 3/9] OMAP ltt statedump include irq.h Mathieu Desnoyers ` (6 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: lttng-instrumentation-arm.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/b6989259/attachment.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 2/9] LTTng - ARM instrumentation 2009-02-19 3:02 ` [ltt-dev] [patch 2/9] LTTng - ARM instrumentation Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 0 siblings, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: lttng-instrumentation-arm.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/b6989259/attachment-0001.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 3/9] OMAP ltt statedump include irq.h 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 1/9] omap lttng instrumentation kernel fix Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 2/9] LTTng - ARM instrumentation Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 4/9] omap lttng use iter div Mathieu Desnoyers ` (5 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-lttng-statedump-fix-irq-include.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/d9e0c130/attachment-0001.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 3/9] OMAP ltt statedump include irq.h 2009-02-19 3:02 ` [ltt-dev] [patch 3/9] OMAP ltt statedump include irq.h Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 0 siblings, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-lttng-statedump-fix-irq-include.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/d9e0c130/attachment.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 4/9] omap lttng use iter div 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers ` (2 preceding siblings ...) 2009-02-19 3:02 ` [ltt-dev] [patch 3/9] OMAP ltt statedump include irq.h Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 5/9] omap lttng statedump arm Mathieu Desnoyers ` (4 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-lttng-use-iter_div.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/7b4b1181/attachment.txt> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 4/9] omap lttng use iter div 2009-02-19 3:02 ` [ltt-dev] [patch 4/9] omap lttng use iter div Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 0 siblings, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-lttng-use-iter_div.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/7b4b1181/attachment-0001.txt> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 5/9] omap lttng statedump arm 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers ` (3 preceding siblings ...) 2009-02-19 3:02 ` [ltt-dev] [patch 4/9] omap lttng use iter div Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 6/9] omap trace clock specialize Mathieu Desnoyers ` (3 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-lttng-statedump-arm.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/bbb85dd4/attachment.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 5/9] omap lttng statedump arm 2009-02-19 3:02 ` [ltt-dev] [patch 5/9] omap lttng statedump arm Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 0 siblings, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-lttng-statedump-arm.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/bbb85dd4/attachment-0001.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 6/9] omap trace clock specialize 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers ` (4 preceding siblings ...) 2009-02-19 3:02 ` [ltt-dev] [patch 5/9] omap lttng statedump arm Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 7/9] omap trace clock Mathieu Desnoyers ` (2 subsequent siblings) 8 siblings, 1 reply; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-trace-clock-specialize.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/529ce7e3/attachment-0001.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 6/9] omap trace clock specialize 2009-02-19 3:02 ` [ltt-dev] [patch 6/9] omap trace clock specialize Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 0 siblings, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-trace-clock-specialize.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/529ce7e3/attachment.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 7/9] omap trace clock 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers ` (5 preceding siblings ...) 2009-02-19 3:02 ` [ltt-dev] [patch 6/9] omap trace clock specialize Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-03-06 6:33 ` Trilok Soni 2009-02-19 3:02 ` [ltt-dev] [patch 8/9] omap trace clock add write value Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 9/9] --- arch/arm/mach-omap2/trace-clock.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) Mathieu Desnoyers 8 siblings, 2 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-trace-clock.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/60efae11/attachment-0001.txt> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 7/9] omap trace clock 2009-02-19 3:02 ` [ltt-dev] [patch 7/9] omap trace clock Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-03-06 6:33 ` Trilok Soni 1 sibling, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-trace-clock.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/60efae11/attachment.txt> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 7/9] omap trace clock 2009-02-19 3:02 ` [ltt-dev] [patch 7/9] omap trace clock Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers @ 2009-03-06 6:33 ` Trilok Soni 2009-03-06 18:02 ` Mathieu Desnoyers 1 sibling, 1 reply; 22+ messages in thread From: Trilok Soni @ 2009-03-06 6:33 UTC (permalink / raw) Hi Mathieu, > + > +/* > + * Cycle counter management. > + */ > + > +static inline void write_pmnc(u32 val) > +{ > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c12, 0" : : "r" (val)); > +} > + > +static inline u32 read_pmnc(void) > +{ > + ? ? ? u32 val; > + ? ? ? __asm__ __volatile__ ("mrc p15, 0, %0, c9, c12, 0" : "=r" (val)); > + ? ? ? ?return val; > +} > + > +static inline void write_ctens(u32 val) > +{ > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c12, 1" : : "r" (val)); > +} > + > +static inline u32 read_ctens(void) > +{ > + ? ? ? u32 val; > + ? ? ? __asm__ __volatile__ ("mrc p15, 0, %0, c9, c12, 1" : "=r" (val)); > + ? ? ? return val; > +} > + > +static inline void write_intenc(u32 val) > +{ > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c14, 2" : : "r" (val)); > +} > + > +static inline u32 read_intenc(void) > +{ > + ? ? ? u32 val; > + ? ? ? ?__asm__ __volatile__ ("mrc p15, 0, %0, c9, c14, 2" : "=r" (val)); > + ? ? ? return val; > +} > + > +static inline void write_useren(u32 val) > +{ > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c14, 0" : : "r" (val)); > +} > + > +static inline u32 read_useren(void) > +{ > + ? ? ? u32 val; > + ? ? ? ?__asm__ __volatile__ ("mrc p15, 0, %0, c9, c14, 0" : "=r" (val)); > + ? ? ? return val; > +} > + > +/* > + * Must disable counter before writing to it. > + */ > +static inline void write_ccnt(u32 val) > +{ > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c13, 0" : : "r" (val)); > +} Isn't is some of this cycle counter management code remain same for any cortext-A8 based SoC. I mean this doesn't seem to be specific to OMAP3 but to cortex-a8 it seems. -- ---Trilok Soni http://triloksoni.wordpress.com http://www.linkedin.com/in/triloksoni ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 7/9] omap trace clock 2009-03-06 6:33 ` Trilok Soni @ 2009-03-06 18:02 ` Mathieu Desnoyers 0 siblings, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-03-06 18:02 UTC (permalink / raw) * Trilok Soni (soni.trilok at gmail.com) wrote: > Hi Mathieu, > > > + > > +/* > > + * Cycle counter management. > > + */ > > + > > +static inline void write_pmnc(u32 val) > > +{ > > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c12, 0" : : "r" (val)); > > +} > > + > > +static inline u32 read_pmnc(void) > > +{ > > + ? ? ? u32 val; > > + ? ? ? __asm__ __volatile__ ("mrc p15, 0, %0, c9, c12, 0" : "=r" (val)); > > + ? ? ? ?return val; > > +} > > + > > +static inline void write_ctens(u32 val) > > +{ > > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c12, 1" : : "r" (val)); > > +} > > + > > +static inline u32 read_ctens(void) > > +{ > > + ? ? ? u32 val; > > + ? ? ? __asm__ __volatile__ ("mrc p15, 0, %0, c9, c12, 1" : "=r" (val)); > > + ? ? ? return val; > > +} > > + > > +static inline void write_intenc(u32 val) > > +{ > > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c14, 2" : : "r" (val)); > > +} > > + > > +static inline u32 read_intenc(void) > > +{ > > + ? ? ? u32 val; > > + ? ? ? ?__asm__ __volatile__ ("mrc p15, 0, %0, c9, c14, 2" : "=r" (val)); > > + ? ? ? return val; > > +} > > + > > +static inline void write_useren(u32 val) > > +{ > > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c14, 0" : : "r" (val)); > > +} > > + > > +static inline u32 read_useren(void) > > +{ > > + ? ? ? u32 val; > > + ? ? ? ?__asm__ __volatile__ ("mrc p15, 0, %0, c9, c14, 0" : "=r" (val)); > > + ? ? ? return val; > > +} > > + > > +/* > > + * Must disable counter before writing to it. > > + */ > > +static inline void write_ccnt(u32 val) > > +{ > > + ? ? ? __asm__ __volatile__ ("mcr p15, 0, %0, c9, c13, 0" : : "r" (val)); > > +} > > Isn't is some of this cycle counter management code remain same for > any cortext-A8 based SoC. I mean this doesn't seem to be specific to > OMAP3 but to cortex-a8 it seems. > Yes, given the understanding I have of the overall ARM world, I stayed conservative in what headers files I touched and the configuration options that I used. If you have hints about locations for .c and .h files and about the configuration options, I would be glad to hear them. Thanks ! Mathieu > > > -- > ---Trilok Soni > http://triloksoni.wordpress.com > http://www.linkedin.com/in/triloksoni > -- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 8/9] omap trace clock add write value 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers ` (6 preceding siblings ...) 2009-02-19 3:02 ` [ltt-dev] [patch 7/9] omap trace clock Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 9/9] --- arch/arm/mach-omap2/trace-clock.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) Mathieu Desnoyers 8 siblings, 1 reply; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-trace-clock-add-write-trace-clock.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/ddf86f81/attachment-0001.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 8/9] omap trace clock add write value 2009-02-19 3:02 ` [ltt-dev] [patch 8/9] omap trace clock add write value Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 0 siblings, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-trace-clock-add-write-trace-clock.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/ddf86f81/attachment.asc> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 9/9] --- arch/arm/mach-omap2/trace-clock.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers ` (7 preceding siblings ...) 2009-02-19 3:02 ` [ltt-dev] [patch 8/9] omap trace clock add write value Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:31 ` [ltt-dev] [patch 9/9] OMAP trace clock basic PM fix Mathieu Desnoyers 8 siblings, 2 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-trace-clock-basic-pm-fix.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/fe567c9d/attachment.txt> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 9/9] --- arch/arm/mach-omap2/trace-clock.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 2009-02-19 3:02 ` [ltt-dev] [patch 9/9] --- arch/arm/mach-omap2/trace-clock.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) Mathieu Desnoyers @ 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:31 ` [ltt-dev] [patch 9/9] OMAP trace clock basic PM fix Mathieu Desnoyers 1 sibling, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:02 UTC (permalink / raw) An embedded and charset-unspecified text was scrubbed... Name: omap-trace-clock-basic-pm-fix.patch URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20090218/fe567c9d/attachment-0001.txt> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [ltt-dev] [patch 9/9] OMAP trace clock basic PM fix 2009-02-19 3:02 ` [ltt-dev] [patch 9/9] --- arch/arm/mach-omap2/trace-clock.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers @ 2009-02-19 3:31 ` Mathieu Desnoyers 1 sibling, 0 replies; 22+ messages in thread From: Mathieu Desnoyers @ 2009-02-19 3:31 UTC (permalink / raw) (With a proper header) This patch sets the whole trace clock when resynchronising with the 32k timer. Just setting the cycle counter is not enough, because we would lose bits for long sleeps. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at polymtl.ca> --- arch/arm/mach-omap2/trace-clock.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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-02-18 21:17:24.000000000 +0000 +++ linux-omap-2.6/arch/arm/mach-omap2/trace-clock.c 2009-02-18 21:18:04.000000000 +0000 @@ -16,6 +16,10 @@ /* 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; + static void clear_ccnt_ms(unsigned long data); static DEFINE_TIMER(clear_ccnt_ms_timer, clear_ccnt_ms, 0, 0); @@ -139,13 +143,21 @@ /* * Set the timer's value MSBs to the same as current 32K timer. */ + ref_time = saved_trace_clock; local_irq_save(flags); count_32k = clocksource_read(clock); - ref_time = (u64)count_32k * (cpu_hz >> TIMER_32K_SHIFT); + /* + * Delta done on 32-bits, then casted to u64. Must guarantee + * that we are called often enough so the difference does not + * overflow 32 bits anyway. + */ + ref_time += (u64)(count_32k - saved_32k_count) + * (cpu_hz >> TIMER_32K_SHIFT); write_ctens(read_ctens() & ~(1 << 31)); /* disable counter */ - write_ccnt((u32)ref_time); + write_ccnt((u32)ref_time & ~(1 << 31)); write_ctens(read_ctens() | (1 << 31)); /* enable counter */ count_trace_clock = trace_clock_read32(); + _trace_clock_write_synthetic_tsc(ref_time); local_irq_restore(flags); get_synthetic_tsc(); @@ -160,6 +172,8 @@ void _stop_trace_clock(void) { + saved_32k_count = clocksource_read(clock); + saved_trace_clock = trace_clock_read64(); del_timer_sync(&clear_ccnt_ms_timer); put_synthetic_tsc(); } -- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2009-03-06 18:02 UTC | newest] Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-02-19 3:02 [ltt-dev] [patch 0/9] LTTng for ARM OMAP3 (v2) Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 1/9] omap lttng instrumentation kernel fix Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 2/9] LTTng - ARM instrumentation Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 3/9] OMAP ltt statedump include irq.h Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 4/9] omap lttng use iter div Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 5/9] omap lttng statedump arm Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 6/9] omap trace clock specialize Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 7/9] omap trace clock Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-03-06 6:33 ` Trilok Soni 2009-03-06 18:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 8/9] omap trace clock add write value Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:02 ` [ltt-dev] [patch 9/9] --- arch/arm/mach-omap2/trace-clock.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) Mathieu Desnoyers 2009-02-19 3:02 ` Mathieu Desnoyers 2009-02-19 3:31 ` [ltt-dev] [patch 9/9] OMAP trace clock basic PM fix Mathieu Desnoyers
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox