Philippe Gerum a écrit :

I suspect the tracer to induce massive cache misses on your setup, which
limits the interpretation we can have of this log. Could you apply the
following patch, and post back the frozen log for the very same test?
TIA,

--- 2.6.20-ipipe-1.8-08/kernel/ipipe/core.c~    2007-09-16 16:54:34.000000000 
+0200
+++ 2.6.20-ipipe-1.8-08/kernel/ipipe/core.c     2007-10-10 13:05:28.000000000 
+0200
@@ -283,7 +283,7 @@
        unsigned long flags;
        int s;
- local_irq_save_hw(flags);
+       local_irq_save_hw_notrace(flags);
        __raw_spin_lock(lock);
        ipipe_load_cpuid();
        ipd = per_cpu(ipipe_percpu_domain, cpuid);
@@ -302,7 +302,7 @@
        ipd = per_cpu(ipipe_percpu_domain, cpuid);
        if (!raw_demangle_irq_bits(&x))
                __clear_bit(IPIPE_STALL_FLAG, &ipd->cpudata[cpuid].status);
-       local_irq_restore_hw(x);
+       local_irq_restore_hw_notrace(x);
 }
/*

The freeze file enclosed is generated with this patch and the i8259.c patch.

---|------------|------------|------------|--------|-------------------------
RTS|       5.570|       9.400|      85.356|       0|    00:08:55/00:08:55

Should I try without the I-pipe debugger ?

Thank you for your help,
David

PS: I don't know if it's relevant but sometimes I get "eth0: Too much work in interrupt, status 8401." in my logs.

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: 976382813724 cycles, Trace Points: 128 (+10)
Calibrated minimum trace-point overhead: 0.248 us

 +----- Hard IRQs ('|': locked)
 |+---- <unused>
 ||+--- Xenomai
 |||+-- IShield
 ||||+- Linux ('*': domain stalled, '+': current, '#': current+stalled)
 |||||                        +---------- Delay flag ('+': > 1 us, '!': > 10 us)
 |||||                        |        +- NMI noise ('N')
 |||||                        |        |
      Type    User Val.   Time    Delay  Function (Parent)
:    +func                -132    0.274  ipipe_check_context+0xc 
(boomerang_start_xmit+0x123)
:    #func                -132    0.303  ipipe_check_context+0xc 
(boomerang_start_xmit+0x163)
:    #func                -132    0.299  issue_and_wait+0xe 
(boomerang_start_xmit+0x170)
:    #func                -132    0.348  iowrite16+0x8 (issue_and_wait+0x2a)
:    #func                -131+   3.124  ioread16+0x8 (issue_and_wait+0x45)
:    #func                -128+   7.336  ioread32+0x8 
(boomerang_start_xmit+0x188)
:    #func                -121    0.355  iowrite16+0x8 
(boomerang_start_xmit+0x1c9)
:    #func                -120    0.336  __ipipe_restore_root+0x8 
(boomerang_start_xmit+0x1d0)
:    #func                -120    0.316  __ipipe_unstall_root+0x8 
(__ipipe_restore_root+0x1b)
:|   #begin   0x80000000  -120    0.322  __ipipe_unstall_root+0x4b 
(__ipipe_restore_root+0x1b)
:|   +end     0x80000000  -119    0.330  __ipipe_unstall_root+0x3a 
(__ipipe_restore_root+0x1b)
:    +func                -119    0.310  ipipe_check_context+0xc 
(boomerang_start_xmit+0x1da)
:    +func                -119    0.267  ipipe_check_context+0xc 
(__qdisc_run+0x134)
:    +func                -119    0.314  ipipe_check_context+0xc 
(__qdisc_run+0x7a)
:    +func                -118    0.311  pfifo_fast_dequeue+0x9 
(__qdisc_run+0x99)
:    +func                -118    0.265  ipipe_check_context+0xc 
(dev_queue_xmit+0x93)
:    +func                -118    0.271  local_bh_enable+0xb 
(dev_queue_xmit+0xa1)
:    +func                -117    0.321  ipipe_check_context+0xc 
(local_bh_enable+0x49)
:    +func                -117    0.304  update_send_head+0xa 
(__tcp_push_pending_frames+0x122)
:    +func                -117    0.431  tcp_init_tso_segs+0x16 
(__tcp_push_pending_frames+0x154)
:    +func                -116    0.599  tcp_set_skb_tso_segs+0x16 
(tcp_init_tso_segs+0x46)
:    +func                -116    0.606  tcp_cwnd_validate+0x8 
(__tcp_push_pending_frames+0x2d3)
:    +func                -115    0.685  tcp_check_space+0x9 
(tcp_rcv_established+0x410)
:    +func                -114    0.310  cond_resched_softirq+0x8 
(release_sock+0x69)
:    +func                -114    0.286  tcp_v4_do_rcv+0x14 (release_sock+0x64)
:    +func                -114    0.505  tcp_rcv_established+0x14 
(tcp_v4_do_rcv+0xb3)
:    +func                -113    0.938  tcp_ack+0x11 
(tcp_rcv_established+0x3e1)
:    +func                -112    0.262  __kfree_skb+0x11 (tcp_ack+0x46a)
:    +func                -112    0.259  kfree_skbmem+0x9 (__kfree_skb+0x47)
:    +func                -112    0.737  skb_release_data+0xa 
(kfree_skbmem+0x10)
:    +func                -111    0.260  __kfree_skb+0x11 (tcp_ack+0x46a)
:    +func                -111    0.250  kfree_skbmem+0x9 (__kfree_skb+0x47)
:    +func                -111    0.442  skb_release_data+0xa 
(kfree_skbmem+0x10)
:    +func                -110    0.282  tcp_ack_saw_tstamp+0x9 (tcp_ack+0x672)
:    +func                -110    0.480  tcp_rtt_estimator+0xa 
(tcp_ack_saw_tstamp+0x1c)
:    +func                -109    0.270  sk_reset_timer+0x9 (tcp_ack+0xd92)
:    +func                -109    0.307  mod_timer+0x8 (sk_reset_timer+0x14)
:    +func                -109    0.277  __mod_timer+0xe (mod_timer+0x19)
:    +func                -109    0.260  lock_timer_base+0x16 (__mod_timer+0x27)
:    +func                -108    0.285  ipipe_check_context+0xc 
(lock_timer_base+0x2b)
:    #func                -108    0.386  ipipe_check_context+0xc 
(lock_timer_base+0x4b)
:    #func                -108    0.331  internal_add_timer+0x12 
(__mod_timer+0x88)
:    #func                -107    0.284  __ipipe_restore_root+0x8 
(__mod_timer+0xb4)
:    #func                -107    0.327  __ipipe_unstall_root+0x8 
(__ipipe_restore_root+0x1b)
:|   #begin   0x80000000  -107    0.327  __ipipe_unstall_root+0x4b 
(__ipipe_restore_root+0x1b)
:|   +end     0x80000000  -106    0.363  __ipipe_unstall_root+0x3a 
(__ipipe_restore_root+0x1b)
:    +func                -106    0.368  ipipe_check_context+0xc 
(__mod_timer+0xa2)
:    +func                -106    0.465  bictcp_acked+0x9 (tcp_ack+0x6ac)
:    +func                -105    0.296  tcp_cong_avoid+0x11 (tcp_ack+0xd48)
:    +func                -105    0.517  bictcp_cong_avoid+0xe 
(tcp_cong_avoid+0x2b)
:    +func                -104    0.300  __kfree_skb+0x11 
(tcp_rcv_established+0x3e8)
:    +func                -104    0.259  kfree_skbmem+0x9 (__kfree_skb+0x47)
:    +func                -104    0.349  skb_release_data+0xa 
(kfree_skbmem+0x10)
:    +func                -103    0.262  kfree+0xb (skb_release_data+0x5d)
:    +func                -103    0.487  ipipe_check_context+0xc (kfree+0x1b)
:    #func                -103    0.352  __ipipe_restore_root+0x8 (kfree+0x73)
:    #func                -102    0.316  __ipipe_unstall_root+0x8 
(__ipipe_restore_root+0x1b)
:|   #begin   0x80000000  -102    0.322  __ipipe_unstall_root+0x4b 
(__ipipe_restore_root+0x1b)
:|   +end     0x80000000  -102    0.400  __ipipe_unstall_root+0x3a 
(__ipipe_restore_root+0x1b)
:    +func                -101    0.273  kmem_cache_free+0xe (kfree_skbmem+0x3d)
:    +func                -101    0.275  ipipe_check_context+0xc 
(kmem_cache_free+0x40)
:    #func                -101    0.286  __ipipe_restore_root+0x8 
(kmem_cache_free+0x84)
:    #func                -100    0.306  __ipipe_unstall_root+0x8 
(__ipipe_restore_root+0x1b)
:|   #begin   0x80000000  -100    0.382  __ipipe_unstall_root+0x4b 
(__ipipe_restore_root+0x1b)
:|   +end     0x80000000  -100    0.374  __ipipe_unstall_root+0x3a 
(__ipipe_restore_root+0x1b)
:    +func                 -99    0.404  tcp_current_mss+0x14 
(tcp_rcv_established+0x3fb)
:    +func                 -99    0.307  __tcp_push_pending_frames+0xe 
(tcp_rcv_established+0x409)
:    +func                 -99    0.442  tcp_init_tso_segs+0x16 
(__tcp_push_pending_frames+0x154)
:    +func                 -98    0.285  tcp_transmit_skb+0xe 
(__tcp_push_pending_frames+0x10f)
:    +func                 -98    0.769  skb_clone+0xe (tcp_transmit_skb+0x6d)
:    +func                 -97    0.486  __tcp_select_window+0xe 
(tcp_transmit_skb+0x19b)
:    +func                 -97    0.497  tcp_v4_send_check+0x14 
(tcp_transmit_skb+0x45a)
:    +func                 -96    0.297  ip_queue_xmit+0xe 
(tcp_transmit_skb+0x3b0)
:    +func                 -96    0.586  __sk_dst_check+0x11 
(ip_queue_xmit+0x29e)
:    +func                 -95    0.490  ip_output+0xe (ip_queue_xmit+0x1ac)
:    +func                 -95    0.355  dev_queue_xmit+0xe (ip_output+0x10b)
:    +func                 -94    0.269  local_bh_disable+0x8 
(dev_queue_xmit+0x43)
:    +func                 -94    0.271  ipipe_check_context+0xc 
(dev_queue_xmit+0x5d)
:    +func                 -94    0.579  pfifo_fast_enqueue+0xa 
(dev_queue_xmit+0x71)
:|   +begin   0xffffff16   -93    0.327  ipipe_ipi3+0x2e (dev_queue_xmit+0x83)
:|   +func                 -93    0.356  __ipipe_handle_irq+0x14 
(ipipe_ipi3+0x33)
:|   +func                 -93    0.312  __ipipe_ack_apic+0x8 
(__ipipe_handle_irq+0xaf)
:|   +func                 -92    0.333  __ipipe_dispatch_wired+0x16 
(__ipipe_handle_irq+0x68)
:| #  func                 -92    0.319  xnintr_clock_handler+0x8 
(__ipipe_dispatch_wired+0x9f)
:| #  func                 -92    0.374  xnintr_irq_handler+0xe 
(xnintr_clock_handler+0x17)
:| #  func                 -91    0.314  xnpod_announce_tick+0x8 
(xnintr_irq_handler+0x3b)
:| #  func                 -91    0.484  xntimer_do_tick_aperiodic+0xe 
(xnpod_announce_tick+0xf)
:| #  func                 -91    0.301  xnthread_periodic_handler+0x8 
(xntimer_do_tick_aperiodic+0x217)
:| #  func                 -90    0.314  xnpod_resume_thread+0xe 
(xnthread_periodic_handler+0x2c)
:| #  [ 3945] samplin 99   -90+   1.008  xnpod_resume_thread+0x56 
(xnthread_periodic_handler+0x2c)
:| #  func                 -89    0.330  xnpod_schedule+0xe 
(xnintr_irq_handler+0x135)
:| #  [ 3596] konsole -1   -89+   1.073  xnpod_schedule+0x90 
(xnintr_irq_handler+0x135)
:| #  func                 -87    0.621  __switch_to+0xe (xnpod_schedule+0x493)
:| #  [ 3945] samplin 99   -87    0.743  xnpod_schedule+0x56b 
(xnpod_suspend_thread+0x18b)
:| #  func                 -86    0.346  __ipipe_restore_pipeline_head+0x12 
(xnpod_wait_thread_period+0x12b)
:| +  end     0x80000000   -86+   1.346  __ipipe_restore_pipeline_head+0x5c 
(xnpod_wait_thread_period+0x12b)
:| +  begin   0xfffffffa   -84    0.407  common_interrupt+0x29 
(__ipipe_restore_pipeline_head+0x60)
:| +  func                 -84    0.415  __ipipe_handle_irq+0x14 
(common_interrupt+0x2e)
:| +  func                 -84    0.306  __ipipe_ack_irq+0x8 
(__ipipe_handle_irq+0x151)
:| +  func                 -83    0.295  __ipipe_ack_level_irq+0x12 
(__ipipe_ack_irq+0x19)
:| +  func                 -83    0.278  mask_and_ack_8259A+0x14 
(__ipipe_ack_level_irq+0x22)
:| +  func                 -83!  31.046  __ipipe_spin_lock_irqsave+0x8 
(mask_and_ack_8259A+0x29)
:| #  func                 -52    0.400  __ipipe_spin_unlock_irqrestore+0x8 
(mask_and_ack_8259A+0x73)
:| +  func                 -51    0.355  __ipipe_walk_pipeline+0xe 
(__ipipe_handle_irq+0x81)
:| +  end     0xfffffffa   -51!  10.159  common_interrupt+0x38 
(__ipipe_restore_pipeline_head+0x60)
:| +  begin   0xfffffff0   -41    0.355  common_interrupt+0x29 
(__ipipe_restore_pipeline_head+0x60)
:| +  func                 -40    0.642  __ipipe_handle_irq+0x14 
(common_interrupt+0x2e)
:| +  func                 -40    0.394  __ipipe_ack_irq+0x8 
(__ipipe_handle_irq+0x151)
:| +  func                 -39    0.255  __ipipe_ack_level_irq+0x12 
(__ipipe_ack_irq+0x19)
:| +  func                 -39    0.247  mask_and_ack_8259A+0x14 
(__ipipe_ack_level_irq+0x22)
:| +  func                 -39!  28.454  __ipipe_spin_lock_irqsave+0x8 
(mask_and_ack_8259A+0x29)
:| #  func                 -10    0.351  __ipipe_spin_unlock_irqrestore+0x8 
(mask_and_ack_8259A+0x73)
:| +  func                 -10    0.292  __ipipe_walk_pipeline+0xe 
(__ipipe_handle_irq+0x81)
:| +  end     0xfffffff0   -10    0.743  common_interrupt+0x38 
(__ipipe_restore_pipeline_head+0x60)
:| +  begin   0x80000001    -9    0.381  __ipipe_dispatch_event+0x180 
(__ipipe_syscall_root+0x44)
:| +  end     0x80000001    -9+   3.306  __ipipe_dispatch_event+0x154 
(__ipipe_syscall_root+0x44)
:  +  func                  -5    0.325  __ipipe_syscall_root+0xa 
(system_call+0x29)
:  +  func                  -5    0.326  __ipipe_dispatch_event+0xe 
(__ipipe_syscall_root+0x44)
:| +  begin   0x80000001    -5    0.383  __ipipe_dispatch_event+0x1a0 
(__ipipe_syscall_root+0x44)
:| +  end     0x80000001    -4    0.321  __ipipe_dispatch_event+0x18f 
(__ipipe_syscall_root+0x44)
:  +  func                  -4+   1.012  hisyscall_event+0x14 
(__ipipe_dispatch_event+0xb5)
:  +  func                  -3+   1.019  xnshadow_sys_trace+0x16 
(hisyscall_event+0x189)
:  +  func                  -2    0.404  ipipe_trace_frozen_reset+0x9 
(xnshadow_sys_trace+0xd7)
:  +  func                  -2    0.259  __ipipe_global_path_lock+0x8 
(ipipe_trace_frozen_reset+0x13)
:  +  func                  -1+   1.135  __ipipe_spin_lock_irqsave+0x8 
(__ipipe_global_path_lock+0x12)
:| #  func                   0    0.289  __ipipe_spin_unlock_irqcomplete+0x9 
(__ipipe_global_path_unlock+0x63)
:| +  end     0x80000001     0    0.366  __ipipe_spin_unlock_irqcomplete+0x2e 
(__ipipe_global_path_unlock+0x63)
<  +  freeze  0x00014d6c     0    0.571  xnshadow_sys_trace+0xa0 
(hisyscall_event+0x189)
 | +  begin   0x80000001     0    0.316  __ipipe_dispatch_event+0x180 
(__ipipe_syscall_root+0x44)
 | +  end     0x80000001     0    0.826  __ipipe_dispatch_event+0x154 
(__ipipe_syscall_root+0x44)
   +  func                   1    0.286  __ipipe_syscall_root+0xa 
(system_call+0x29)
   +  func                   2    0.297  __ipipe_dispatch_event+0xe 
(__ipipe_syscall_root+0x44)
 | +  begin   0x80000001     2    0.306  __ipipe_dispatch_event+0x1a0 
(__ipipe_syscall_root+0x44)
 | +  end     0x80000001     2    0.318  __ipipe_dispatch_event+0x18f 
(__ipipe_syscall_root+0x44)
   +  func                   2    0.392  hisyscall_event+0x14 
(__ipipe_dispatch_event+0xb5)
   +  func                   3    0.296  __rt_task_wait_period+0x11 
(hisyscall_event+0x189)
   +  func                   3    0.326  rt_task_wait_period+0x8 
(__rt_task_wait_period+0x21)
   +  func                   3    0.000  xnpod_wait_thread_period+0xe 
(rt_task_wait_period+0x38)
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to