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,100000,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,100000,RTHAL_CPU_FREQ);
 }
 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to