Philippe Gerum a écrit :
On Fri, 2007-10-05 at 11:04 +0200, CHABAL David wrote:
Gilles Chanteperdrix a écrit :
On 10/5/07, CHABAL David <[EMAIL PROTECTED]> wrote:
Hello all,
My box is a Pentium III 733 Mhz/256Mo with Linux 2.6.20 and Xenomai
2.3.3.
When I run the latency test included in the testsuite, I get some
horrible results like:
You first need to upgrade your Adeos patch in order to avoid a deadly
tracer issue in earlier versions:
http://download.gna.org/adeos/patches/v2.6/i386/older/adeos-ipipe-2.6.20-i386-1.8-08.patch
Then, please switch on CONFIG_IPIPE_TRACE, CONFIG_IPIPE_TRACE_MCOUNT,
CONFIG_IPIPE_TRACE_IRQSOFF, and eventually run the following on the
target kernel:
# echo 1 > /proc/ipipe/trace/enable
# /usr/xenomai/bin/latency -f
... wait for a high latency ...
# echo 128 > /proc/ipipe/trace/back_trace_points
# cat /proc/ipipe/trace/frozen
Sending us back the output of the last command would help.
Gilles and Philippe, thank you for your help.
The results below come from a patched kernel with adeos 1.8.08:
RTT| 00:07:22 (periodic user-mode task, 100 us period, priority 99)
RTH|-----lat min|-----lat avg|-----lat max|-overrun|----lat best|---lat
worst
RTD| 4.722| 12.411| 93.529| 0| 3.129|
122.269
RTD| 4.347| 13.690| 93.802| 0| 3.129|
122.269
---|------------|------------|------------|--------|-------------------------
RTS| 3.129| 10.194| 122.269| 0| 00:07:24/00:07:24
David
I-pipe frozen back-tracing service on 2.6.20/ipipe-1.8-08
------------------------------------------------------------
******** WARNING ********
The following debugging options will increase the observed latencies:
o CONFIG_XENO_OPT_DEBUG
Freeze: 620918235066 cycles, Trace Points: 128 (+10)
Calibrated minimum trace-point overhead: 0.248 us
+--------------- Hard IRQs ('|': locked)
| +- Delay flag ('+': > 1 us, '!': > 10 us)
| |
Type Time Function (Parent)
: func -145 iowrite16 (issue_and_wait)
: func -144+ ioread16 (issue_and_wait)
: func -137+ ioread32 (boomerang_start_xmit)
: func -136 iowrite16 (boomerang_start_xmit)
: func -136 __ipipe_restore_root (boomerang_start_xmit)
: func -135 __ipipe_unstall_root (__ipipe_restore_root)
:|begin -135 __ipipe_unstall_root (__ipipe_restore_root)
:|end -135 __ipipe_unstall_root (__ipipe_restore_root)
: func -134 ipipe_check_context (boomerang_start_xmit)
: func -134 ipipe_check_context (__qdisc_run)
: func -133 ipipe_check_context (__qdisc_run)
: func -133 pfifo_fast_dequeue (__qdisc_run)
: func -133 ipipe_check_context (dev_queue_xmit)
: func -132 local_bh_enable (dev_queue_xmit)
: func -132 ipipe_check_context (local_bh_enable)
: func -132 update_send_head (__tcp_push_pending_frames)
: func -131 tcp_init_tso_segs (__tcp_push_pending_frames)
: func -131 tcp_set_skb_tso_segs (tcp_init_tso_segs)
: func -131 tcp_transmit_skb (__tcp_push_pending_frames)
: func -130 skb_clone (tcp_transmit_skb)
: func -129 __tcp_select_window (tcp_transmit_skb)
: func -129 tcp_v4_send_check (tcp_transmit_skb)
: func -128 ip_queue_xmit (tcp_transmit_skb)
: func -128 __sk_dst_check (ip_queue_xmit)
: func -127 ip_output (ip_queue_xmit)
: func -127 dev_queue_xmit (ip_output)
: func -127 local_bh_disable (dev_queue_xmit)
: func -126 ipipe_check_context (dev_queue_xmit)
: func -126 pfifo_fast_enqueue (dev_queue_xmit)
: func -126 __qdisc_run (dev_queue_xmit)
: func -125 pfifo_fast_dequeue (__qdisc_run)
: func -125 ipipe_check_context (__qdisc_run)
: func -125 ipipe_check_context (__qdisc_run)
: func -124 dev_hard_start_xmit (__qdisc_run)
: func -124 ipipe_check_context (dev_hard_start_xmit)
: func -124 skb_clone (dev_hard_start_xmit)
: func -123 kmem_cache_alloc (skb_clone)
: func -123 ipipe_check_context (kmem_cache_alloc)
: func -123 __ipipe_restore_root (kmem_cache_alloc)
: func -123 __ipipe_unstall_root (__ipipe_restore_root)
:|begin -122 __ipipe_unstall_root (__ipipe_restore_root)
:|end -122 __ipipe_unstall_root (__ipipe_restore_root)
: func -121 packet_rcv_spkt (dev_hard_start_xmit)
: func -121 strlcpy (packet_rcv_spkt)
: func -121 sock_queue_rcv_skb (packet_rcv_spkt)
: func -120 local_bh_disable (sock_queue_rcv_skb)
: func -120 sk_run_filter (sock_queue_rcv_skb)
: func -119 local_bh_enable (sock_queue_rcv_skb)
: func -119 ipipe_check_context (local_bh_enable)
: func -119 kfree_skb (packet_rcv_spkt)
: func -119 __kfree_skb (kfree_skb)
: func -118 kfree_skbmem (__kfree_skb)
: func -118 skb_release_data (kfree_skbmem)
: func -117 kmem_cache_free (kfree_skbmem)
: func -117 ipipe_check_context (kmem_cache_free)
: func -117 __ipipe_restore_root (kmem_cache_free)
: func -117 __ipipe_unstall_root (__ipipe_restore_root)
:|begin -116 __ipipe_unstall_root (__ipipe_restore_root)
:|end -116 __ipipe_unstall_root (__ipipe_restore_root)
: func -115 ipipe_check_context (dev_hard_start_xmit)
: func -115 boomerang_start_xmit (dev_hard_start_xmit)
: func -115 ipipe_check_context (boomerang_start_xmit)
: func -114 ipipe_check_context (boomerang_start_xmit)
: func -114 issue_and_wait (boomerang_start_xmit)
: func -114 iowrite16 (issue_and_wait)
: func -113! ioread16 (issue_and_wait)
:|begin -84 common_interrupt (ioread16)
:|func -83 __ipipe_handle_irq (common_interrupt)
:|func -83 __ipipe_ack_irq (__ipipe_handle_irq)
:|func -82 __ipipe_ack_level_irq (__ipipe_ack_irq)
:|func -82 mask_and_ack_8259A (__ipipe_ack_level_irq)
:|func -82+ __ipipe_spin_lock_irqsave (mask_and_ack_8259A)
:|func -78 __ipipe_spin_unlock_irqrestore (mask_and_ack_8259A)
:|func -78 __ipipe_dispatch_wired (__ipipe_handle_irq)
:|func -77 xnintr_clock_handler (__ipipe_dispatch_wired)
:|func -77 xnintr_irq_handler (xnintr_clock_handler)
:|func -77 xnpod_announce_tick (xnintr_irq_handler)
:|func -76 xntimer_do_tick_aperiodic (xnpod_announce_tick)
:|func -76 xnthread_periodic_handler (xntimer_do_tick_aperiodic)
:|func -76 xnpod_resume_thread (xnthread_periodic_handler)
:|[ 3937] -75+ xnpod_resume_thread (xnthread_periodic_handler)
:|func -72 xnpod_schedule (xnintr_irq_handler)
:|[ 3497] -72+ xnpod_schedule (xnintr_irq_handler)
:|func -71 __switch_to (xnpod_schedule)
:|[ 3937] -70 xnpod_schedule (xnpod_suspend_thread)
:|func -70 __ipipe_restore_pipeline_head (xnpod_wait_thread_period)
:|end -69+ __ipipe_restore_pipeline_head (xnpod_wait_thread_period)
:|begin -63 common_interrupt (__ipipe_restore_pipeline_head)
:|func -62 __ipipe_handle_irq (common_interrupt)
:|func -62 __ipipe_ack_irq (__ipipe_handle_irq)
:|func -62 __ipipe_ack_level_irq (__ipipe_ack_irq)
:|func -61 mask_and_ack_8259A (__ipipe_ack_level_irq)
:|func -61! __ipipe_spin_lock_irqsave (mask_and_ack_8259A)
:|func -40 __ipipe_spin_unlock_irqrestore (mask_and_ack_8259A)
:|func -40 __ipipe_walk_pipeline (__ipipe_handle_irq)
:|end -39+ common_interrupt (__ipipe_restore_pipeline_head)
:|begin -32 common_interrupt (__ipipe_restore_pipeline_head)
:|func -32 __ipipe_handle_irq (common_interrupt)
:|func -31 __ipipe_ack_irq (__ipipe_handle_irq)
:|func -31 __ipipe_ack_level_irq (__ipipe_ack_irq)
:|func -31 mask_and_ack_8259A (__ipipe_ack_level_irq)
:|func -30+ __ipipe_spin_lock_irqsave (mask_and_ack_8259A)
:|func -25 __ipipe_spin_unlock_irqrestore (mask_and_ack_8259A)
:|func -24 __ipipe_dispatch_wired (__ipipe_handle_irq)
:|func -24 xnintr_clock_handler (__ipipe_dispatch_wired)
:|func -23 xnintr_irq_handler (xnintr_clock_handler)
:|func -23 xnpod_announce_tick (xnintr_irq_handler)
:|func -23 xntimer_do_tick_aperiodic (xnpod_announce_tick)
:|func -22+ xnthread_periodic_handler (xntimer_do_tick_aperiodic)
:|func -13 rthal_irq_host_pend (xnintr_irq_handler)
:|func -13 __ipipe_schedule_irq (rthal_irq_host_pend)
:|func -12 __ipipe_walk_pipeline (__ipipe_handle_irq)
:|end -12 common_interrupt (__ipipe_restore_pipeline_head)
:|begin -11 __ipipe_dispatch_event (__ipipe_syscall_root)
:|end -11+ __ipipe_dispatch_event (__ipipe_syscall_root)
: func -8 __ipipe_syscall_root (system_call)
: func -7 __ipipe_dispatch_event (__ipipe_syscall_root)
:|begin -7 __ipipe_dispatch_event (__ipipe_syscall_root)
:|end -6 __ipipe_dispatch_event (__ipipe_syscall_root)
: func -6+ hisyscall_event (__ipipe_dispatch_event)
: func -5+ xnshadow_sys_trace (hisyscall_event)
: func -4 ipipe_trace_frozen_reset (xnshadow_sys_trace)
: func -3 __ipipe_global_path_lock (ipipe_trace_frozen_reset)
: func -3 __ipipe_spin_lock_irqsave (__ipipe_global_path_lock)
:|begin -2+ __ipipe_spin_lock_irqsave (__ipipe_global_path_lock)
:|func 0 __ipipe_spin_unlock_irqcomplete (__ipipe_global_path_unlock)
:|end 0 __ipipe_spin_unlock_irqcomplete (__ipipe_global_path_unlock)
< freeze 0 xnshadow_sys_trace (hisyscall_event)
|begin 0 __ipipe_dispatch_event (__ipipe_syscall_root)
|end 0 __ipipe_dispatch_event (__ipipe_syscall_root)
func 1 __ipipe_syscall_root (system_call)
func 2 __ipipe_dispatch_event (__ipipe_syscall_root)
|begin 2 __ipipe_dispatch_event (__ipipe_syscall_root)
|end 2 __ipipe_dispatch_event (__ipipe_syscall_root)
func 3 hisyscall_event (__ipipe_dispatch_event)
func 3 __rt_task_wait_period (hisyscall_event)
func 3 rt_task_wait_period (__rt_task_wait_period)
func 4 xnpod_wait_thread_period (rt_task_wait_period)
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help