[Xenomai-core] Re: [PATCH] reset tracer after timer calibration

2006-01-07 Thread Philippe Gerum

Jan Kiszka wrote:

Jan Kiszka wrote:


Hi Philippe,

this patch is to reset the maximum IRQs-off path after timer calibration
(will get flooded otherwise). If you have no concerns, please apply.



Applied, thanks.


Actually, there is another noise source: rthal_timer_request() for the
APIC case. But I think we should let this one alone as the user may
trigger millisecond latencies by accidentally restarting the timer while
some external-IRQ-driven device still depends on low latencies. In that
case, the tracer can provide helpful hints.

Therefore, in order to get useful information after starting the timer,
one always have to run echo  /proc/ipipe/trace/max first. Well, if we
move the timer start to some module init or whatever phase also for the
native skin, we should reconsider this exclusion.



We will do that right after -rc2, which is close now.


Jan



and *with* the attachement...




Index: ChangeLog
===
--- ChangeLog   (Revision 388)
+++ ChangeLog   (Arbeitskopie)
@@ -7,6 +7,8 @@
src/testsuite/latency/latency.c: Add re-freeze support and make use
of it to back-trace always the max latency during benchmarks.
 
+	* ksrc/arch/i386/hal.c: reset tracer after timer calibration.

+
 2006-01-07  Heikki Lindholm [EMAIL PROTECTED]
 
 	* include/asm-powerpc/system.h: Fix FPU preemption bug.

Index: ksrc/arch/i386/hal.c
===
--- ksrc/arch/i386/hal.c(Revision 386)
+++ ksrc/arch/i386/hal.c(Arbeitskopie)
@@ -61,6 +61,9 @@
 #endif /* CONFIG_X86_LOCAL_APIC */
 #include asm/xenomai/hal.h
 #include stdarg.h
+#ifdef CONFIG_IPIPE_TRACE
+#include linux/ipipe_trace.h
+#endif /* CONFIG_IPIPE_TRACE */
 
 extern struct desc_struct idt_table[];
 
@@ -177,6 +180,11 @@
 
 rthal_critical_exit(flags);
 
+#ifdef CONFIG_IPIPE_TRACE_IRQSOFF

+/* reset the max trace, it contains the excessive calibration now */
+ipipe_trace_max_reset();
+#endif /* CONFIG_IPIPE_TRACE_IRQSOFF */
+
 return rthal_imuldiv(dt,10,RTHAL_CPU_FREQ);
 }
 
@@ -345,6 +353,11 @@
 
 rthal_critical_exit(flags);
 
+#ifdef CONFIG_IPIPE_TRACE_IRQSOFF

+/* reset the max trace, it contains the excessive calibration now */
+ipipe_trace_max_reset();
+#endif /* CONFIG_IPIPE_TRACE_IRQSOFF */
+
 return rthal_imuldiv(dt,10,RTHAL_CPU_FREQ);
 }
 



--

Philippe.

___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


[Xenomai-core] Re: [PATCH] reset tracer after timer calibration

2006-01-07 Thread Jan Kiszka
Jan Kiszka wrote:
 Hi Philippe,
 
 this patch is to reset the maximum IRQs-off path after timer calibration
 (will get flooded otherwise). If you have no concerns, please apply.
 
 Actually, there is another noise source: rthal_timer_request() for the
 APIC case. But I think we should let this one alone as the user may
 trigger millisecond latencies by accidentally restarting the timer while
 some external-IRQ-driven device still depends on low latencies. In that
 case, the tracer can provide helpful hints.
 
 Therefore, in order to get useful information after starting the timer,
 one always have to run echo  /proc/ipipe/trace/max first. Well, if we
 move the timer start to some module init or whatever phase also for the
 native skin, we should reconsider this exclusion.
 
 Jan

and *with* the attachement...
Index: ChangeLog
===
--- ChangeLog	(Revision 388)
+++ ChangeLog	(Arbeitskopie)
@@ -7,6 +7,8 @@
 	src/testsuite/latency/latency.c: Add re-freeze support and make use
 	of it to back-trace always the max latency during benchmarks.
 
+	* ksrc/arch/i386/hal.c: reset tracer after timer calibration.
+
 2006-01-07  Heikki Lindholm [EMAIL PROTECTED]
 
 	* include/asm-powerpc/system.h: Fix FPU preemption bug.
Index: ksrc/arch/i386/hal.c
===
--- ksrc/arch/i386/hal.c	(Revision 386)
+++ ksrc/arch/i386/hal.c	(Arbeitskopie)
@@ -61,6 +61,9 @@
 #endif /* CONFIG_X86_LOCAL_APIC */
 #include asm/xenomai/hal.h
 #include stdarg.h
+#ifdef CONFIG_IPIPE_TRACE
+#include linux/ipipe_trace.h
+#endif /* CONFIG_IPIPE_TRACE */
 
 extern struct desc_struct idt_table[];
 
@@ -177,6 +180,11 @@
 
 rthal_critical_exit(flags);
 
+#ifdef CONFIG_IPIPE_TRACE_IRQSOFF
+/* reset the max trace, it contains the excessive calibration now */
+ipipe_trace_max_reset();
+#endif /* CONFIG_IPIPE_TRACE_IRQSOFF */
+
 return rthal_imuldiv(dt,10,RTHAL_CPU_FREQ);
 }
 
@@ -345,6 +353,11 @@
 
 rthal_critical_exit(flags);
 
+#ifdef CONFIG_IPIPE_TRACE_IRQSOFF
+/* reset the max trace, it contains the excessive calibration now */
+ipipe_trace_max_reset();
+#endif /* CONFIG_IPIPE_TRACE_IRQSOFF */
+
 return rthal_imuldiv(dt,10,RTHAL_CPU_FREQ);
 }
 


signature.asc
Description: OpenPGP digital signature


[Xenomai-core] Re: [PATCH] reset tracer after timer calibration

2006-01-07 Thread Philippe Gerum

Jan Kiszka wrote:

Jan Kiszka wrote:


Hi Philippe,

this patch is to reset the maximum IRQs-off path after timer calibration
(will get flooded otherwise). If you have no concerns, please apply.



Applied, thanks.


Actually, there is another noise source: rthal_timer_request() for the
APIC case. But I think we should let this one alone as the user may
trigger millisecond latencies by accidentally restarting the timer while
some external-IRQ-driven device still depends on low latencies. In that
case, the tracer can provide helpful hints.

Therefore, in order to get useful information after starting the timer,
one always have to run echo  /proc/ipipe/trace/max first. Well, if we
move the timer start to some module init or whatever phase also for the
native skin, we should reconsider this exclusion.



We will do that right after -rc2, which is close now.


Jan



and *with* the attachement...




Index: ChangeLog
===
--- ChangeLog   (Revision 388)
+++ ChangeLog   (Arbeitskopie)
@@ -7,6 +7,8 @@
src/testsuite/latency/latency.c: Add re-freeze support and make use
of it to back-trace always the max latency during benchmarks.
 
+	* ksrc/arch/i386/hal.c: reset tracer after timer calibration.

+
 2006-01-07  Heikki Lindholm [EMAIL PROTECTED]
 
 	* include/asm-powerpc/system.h: Fix FPU preemption bug.

Index: ksrc/arch/i386/hal.c
===
--- ksrc/arch/i386/hal.c(Revision 386)
+++ ksrc/arch/i386/hal.c(Arbeitskopie)
@@ -61,6 +61,9 @@
 #endif /* CONFIG_X86_LOCAL_APIC */
 #include asm/xenomai/hal.h
 #include stdarg.h
+#ifdef CONFIG_IPIPE_TRACE
+#include linux/ipipe_trace.h
+#endif /* CONFIG_IPIPE_TRACE */
 
 extern struct desc_struct idt_table[];
 
@@ -177,6 +180,11 @@
 
 rthal_critical_exit(flags);
 
+#ifdef CONFIG_IPIPE_TRACE_IRQSOFF

+/* reset the max trace, it contains the excessive calibration now */
+ipipe_trace_max_reset();
+#endif /* CONFIG_IPIPE_TRACE_IRQSOFF */
+
 return rthal_imuldiv(dt,10,RTHAL_CPU_FREQ);
 }
 
@@ -345,6 +353,11 @@
 
 rthal_critical_exit(flags);
 
+#ifdef CONFIG_IPIPE_TRACE_IRQSOFF

+/* reset the max trace, it contains the excessive calibration now */
+ipipe_trace_max_reset();
+#endif /* CONFIG_IPIPE_TRACE_IRQSOFF */
+
 return rthal_imuldiv(dt,10,RTHAL_CPU_FREQ);
 }
 



--

Philippe.