[Xenomai-core] Re: [PATCH] reset tracer after timer calibration
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 #include +#ifdef CONFIG_IPIPE_TRACE +#include +#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] Re: [PATCH] reset tracer after timer calibration
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 #include +#ifdef CONFIG_IPIPE_TRACE +#include +#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
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 #include +#ifdef CONFIG_IPIPE_TRACE +#include +#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
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 #include +#ifdef CONFIG_IPIPE_TRACE +#include +#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 mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core