All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Smolorz <smolorz@domain.hid>
To: philippe.gerum@domain.hid
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] High latencies on Core2Duo
Date: Mon, 16 Jun 2008 10:44:01 +0200	[thread overview]
Message-ID: <485627D1.7060702@domain.hid> (raw)
In-Reply-To: <4854CF37.20001@domain.hid>

[-- Attachment #1: Type: text/plain, Size: 489 bytes --]

Philippe Gerum wrote:
> Could you try booting with idle=poll just to make sure that we don't get trapped
> into long wakeup latency from some idling instruction? We explicitly avoid mwait
> unless forced to use it by a bootparam, but maybe something goes wrong with the
> default idle code as well.

Attached is a new trace, I've booted with idle=poll. The latency spots 
are still there. Maybe Gilles is right and the SMI disabling code needs 
an adaption to new chipsets.

-- 
Sebastian

[-- Attachment #2: ipipe_trace_5 --]
[-- Type: text/plain, Size: 10776 bytes --]

I-pipe frozen back-tracing service on 2.6.25/ipipe-2.0-08
------------------------------------------------------------
CPU: 0, Freeze: 1047976024131 cycles, Trace Points: 100 (+10)
Calibrated minimum trace-point overhead: 0.125 us

 +----- Hard IRQs ('|': locked)
 |+---- <unused>
 ||+--- <unused>
 |||+-- Xenomai
 ||||+- Linux ('*': domain stalled, '+': current, '#': current+stalled)
 |||||                        +---------- Delay flag ('+': > 1 us, '!': > 10 us)
 |||||                        |        +- NMI noise ('N')
 |||||                        |        |
      Type    User Val.   Time    Delay  Function (Parent)
:|   +func                -308    0.180  __ipipe_walk_pipeline+0xe (__ipipe_handle_irq+0x12b)
:|   #end     0xffffff16  -308    0.175  ipipe_ipi3+0x3d (<4009134f>)
:    #func                -308    0.160  __ipipe_unstall_iret_root+0x9 (restore_nocheck_notrace+0x0)
:|   #begin   0x80000000  -308    0.155  __ipipe_unstall_iret_root+0x1e (restore_nocheck_notrace+0x0)
:|   +end     0x8000000d  -308!  42.394  __ipipe_unstall_iret_root+0x6f (restore_nocheck_notrace+0x0)
:|   +func                -265    0.335  __ipipe_handle_exception+0xe (error_code+0x77)
:|   #func                -265    0.165  do_page_fault+0xe (__ipipe_handle_exception+0x16b)
:|   #end     0x80000000  -265    0.160  do_page_fault+0x3d (__ipipe_handle_exception+0x16b)
:    #func                -265    0.140  __ipipe_unstall_root+0x8 (do_page_fault+0x14f)
:|   #begin   0x80000000  -265    0.210  __ipipe_unstall_root+0x1a (do_page_fault+0x14f)
:|   +end     0x80000000  -264    0.185  __ipipe_unstall_root+0x54 (do_page_fault+0x14f)
:    +func                -264    0.190  down_read_trylock+0x9 (do_page_fault+0x175)
:    +func                -264    0.215  find_vma+0xa (do_page_fault+0x1a4)
:    +func                -264    0.125  handle_mm_fault+0xe (do_page_fault+0x220)
:    +func                -264    0.155  ipipe_check_context+0x9 (handle_mm_fault+0x2d)
:    +func                -264    0.175  ipipe_check_context+0x9 (handle_mm_fault+0x56)
:    +func                -263    0.185  page_address+0xe (handle_mm_fault+0xd4)
:    +func                -263    0.120  anon_vma_prepare+0xe (handle_mm_fault+0x16f)
:    +func                -263    0.175  ipipe_check_context+0x9 (anon_vma_prepare+0x1d)
:    +func                -263    0.110  __alloc_pages+0xe (handle_mm_fault+0x188)
:    +func                -263    0.165  ipipe_check_context+0x9 (__alloc_pages+0x32)
:    +func                -263    0.150  get_page_from_freelist+0xe (__alloc_pages+0x70)
:    +func                -262    0.170  zone_watermark_ok+0xe (get_page_from_freelist+0x6e)
:    +func                -262    0.115  ipipe_check_context+0x9 (get_page_from_freelist+0xdb)
:    +func                -262    0.230  ipipe_check_context+0x9 (get_page_from_freelist+0x10c)
:    #func                -262    0.150  __ipipe_restore_root+0x8 (get_page_from_freelist+0x26a)
:    #func                -262    0.145  __ipipe_unstall_root+0x8 (__ipipe_restore_root+0x27)
:|   #begin   0x80000000  -262    0.160  __ipipe_unstall_root+0x1a (__ipipe_restore_root+0x27)
:|   +end     0x80000000  -261    0.135  __ipipe_unstall_root+0x54 (__ipipe_restore_root+0x27)
:    +func                -261    0.190  ipipe_check_context+0x9 (get_page_from_freelist+0x274)
:    +func                -261    0.115  kmap_atomic+0x8 (get_page_from_freelist+0x30d)
:    +func                -261    0.105  kmap_atomic_prot+0xb (kmap_atomic+0x13)
:    +func                -261+   1.698  ipipe_check_context+0x9 (kmap_atomic_prot+0x1b)
:    +func                -259    0.270  kunmap_atomic+0x9 (get_page_from_freelist+0x32c)
:    +func                -259    0.190  ipipe_check_context+0x9 (kunmap_atomic+0x4f)
:    +func                -259    0.150  page_address+0xe (handle_mm_fault+0x1e0)
:    +func                -259    0.110  _spin_lock+0x9 (handle_mm_fault+0x1ed)
:    +func                -259    0.170  ipipe_check_context+0x9 (_spin_lock+0x15)
:    +func                -258    0.135  lru_cache_add_active+0x9 (handle_mm_fault+0x1ff)
:    +func                -258    0.165  ipipe_check_context+0x9 (lru_cache_add_active+0x15)
:    +func                -258    0.150  ipipe_check_context+0x9 (lru_cache_add_active+0x64)
:    +func                -258    0.125  page_add_new_anon_rmap+0x9 (handle_mm_fault+0x20c)
:    +func                -258    0.120  __page_set_anon_rmap+0x9 (page_add_new_anon_rmap+0x2e)
:    +func                -258    0.120  __inc_zone_page_state+0x8 (__page_set_anon_rmap+0x32)
:    +func                -258    0.140  __inc_zone_state+0xe (__inc_zone_page_state+0x1d)
:    +func                -257    0.120  _spin_unlock+0x8 (handle_mm_fault+0x504)
:    +func                -257    0.155  ipipe_check_context+0x9 (_spin_unlock+0x14)
:    +func                -257    0.165  up_read+0x8 (do_page_fault+0x277)
:|   +begin   0x80000000  -257    0.160  __ipipe_handle_exception+0x17d (error_code+0x77)
:|   +func                -257    0.130  __ipipe_restore_root+0x8 (__ipipe_handle_exception+0x194)
:|   +func                -257    0.140  __ipipe_unstall_root+0x8 (__ipipe_restore_root+0x27)
:|   +end     0x80000000  -257    0.235  __ipipe_unstall_root+0x54 (__ipipe_restore_root+0x27)
:    #func                -256    0.150  __ipipe_unstall_iret_root+0x9 (restore_nocheck_notrace+0x0)
:|   #begin   0x80000000  -256    0.175  __ipipe_unstall_iret_root+0x1e (restore_nocheck_notrace+0x0)
:|   +end     0x8000000d  -256! 239.702  __ipipe_unstall_iret_root+0x6f (restore_nocheck_notrace+0x0)
:|   +begin   0xffffff16   -16    0.210  ipipe_ipi3+0x2e (<0808dfe0>)
:|   +func                 -16    0.155  __ipipe_handle_irq+0xe (ipipe_ipi3+0x33)
:|   +func                 -16    0.160  __ipipe_ack_apic+0x8 (__ipipe_handle_irq+0x76)
:|   +func                 -16    0.165  __ipipe_dispatch_wired+0xe (__ipipe_handle_irq+0x7f)
:|  # func                 -16    0.205  xnintr_clock_handler+0xe (__ipipe_dispatch_wired+0xe0)
:|  # func                 -15    0.185  xntimer_tick_aperiodic+0xe (xnintr_clock_handler+0x65)
:|  # func                 -15    0.150  xnthread_periodic_handler+0x8 (xntimer_tick_aperiodic+0x96)
:|  # func                 -15    0.165  xnpod_resume_thread+0xe (xnthread_periodic_handler+0x28)
:|  # [ 5552] samplin 99   -15    0.370  xnpod_resume_thread+0x99 (xnthread_periodic_handler+0x28)
:|  # func                 -14    0.280  xntimer_next_local_shot+0xe (xntimer_tick_aperiodic+0x1af)
:|  # func                 -14    0.551  xnpod_schedule+0xe (xnintr_clock_handler+0x108)
:|  # [ 7750] -<?>-   -1   -14    0.410  xnpod_schedule+0xe2 (xnintr_clock_handler+0x108)
:|  # func                 -13    0.466  xnarch_switch_to+0xe (xnpod_schedule+0x492)
:|  # func                 -13    0.586  __switch_to+0xe (xnarch_switch_to+0x270)
:|  # [ 5552] samplin 99   -12    0.425  xnpod_schedule+0x4cd (xnpod_suspend_thread+0x18a)
:|  # func                 -12    0.195  xntimer_get_overruns+0xe (xnpod_wait_thread_period+0xe5)
:|  # func                 -12    0.145  __ipipe_restore_pipeline_head+0x9 (xnpod_wait_thread_period+0x145)
:|  + end     0x80000000   -11    0.601  __ipipe_restore_pipeline_head+0x94 (xnpod_wait_thread_period+0x145)
:|  + begin   0xfffffff6   -11    0.160  common_interrupt+0x29 (__ipipe_restore_pipeline_head+0x96)
:|  + func                 -11    0.466  __ipipe_handle_irq+0xe (common_interrupt+0x2e)
:|  + func                 -10    0.290  __ipipe_set_irq_pending+0xe (__ipipe_handle_irq+0xc4)
:|  + func                 -10    0.616  __ipipe_ack_irq+0x8 (__ipipe_handle_irq+0xd9)
:|  + func                  -9    0.350  __ipipe_ack_fasteoi_irq+0x8 (__ipipe_ack_irq+0x19)
:|  + func                  -9    0.611  ack_ioapic_quirk_irq+0x9 (__ipipe_ack_fasteoi_irq+0xe)
:|  + func                  -8    0.210  __mask_IO_APIC_irq+0x8 (ack_ioapic_quirk_irq+0x80)
:|  + func                  -8    0.275  __modify_IO_APIC_irq+0xe (__mask_IO_APIC_irq+0x14)
:|  + func                  -8+   2.129  io_apic_base+0x8 (__modify_IO_APIC_irq+0x30)
:|  + func                  -6    0.330  io_apic_base+0x8 (__modify_IO_APIC_irq+0x3c)
:|  + func                  -5    0.180  __ipipe_walk_pipeline+0xe (__ipipe_handle_irq+0x12b)
:|  + end     0xfffffff6    -5    0.586  common_interrupt+0x38 (__ipipe_restore_pipeline_head+0x96)
:|  + begin   0x80000001    -5    0.150  __ipipe_dispatch_event+0x109 (__ipipe_syscall_root+0x8d)
:|  + end     0x80000001    -4+   1.192  __ipipe_dispatch_event+0x1db (__ipipe_syscall_root+0x8d)
:   + func                  -3    0.165  __ipipe_syscall_root+0xa (system_call+0x29)
:   + func                  -3    0.135  __ipipe_dispatch_event+0xe (__ipipe_syscall_root+0x8d)
:|  + begin   0x80000001    -3    0.160  __ipipe_dispatch_event+0x2c (__ipipe_syscall_root+0x8d)
:|  + end     0x80000001    -3    0.160  __ipipe_dispatch_event+0xd6 (__ipipe_syscall_root+0x8d)
:   + func                  -3    0.541  hisyscall_event+0xe (__ipipe_dispatch_event+0xe6)
:   + func                  -2    0.526  xnshadow_sys_trace+0xb (hisyscall_event+0x13b)
:   + func                  -2    0.225  ipipe_trace_frozen_reset+0xa (xnshadow_sys_trace+0x62)
:   + func                  -1    0.265  __ipipe_global_path_lock+0xb (ipipe_trace_frozen_reset+0xf)
:   + func                  -1    0.135  __ipipe_spin_lock_irqsave+0xa (__ipipe_global_path_lock+0x15)
:|  + begin   0x80000001    -1+   1.122  __ipipe_spin_lock_irqsave+0x21 (__ipipe_global_path_lock+0x15)
:|  # func                   0    0.175  __ipipe_spin_unlock_irqcomplete+0xa (__ipipe_global_path_unlock+0x61)
:|  + end     0x80000001     0    0.155  __ipipe_spin_unlock_irqcomplete+0x49 (__ipipe_global_path_unlock+0x61)
<   + freeze  0x00033fa7     0    0.175  xnshadow_sys_trace+0x6b (hisyscall_event+0x13b)
 |  + begin   0x80000001     0    0.170  __ipipe_dispatch_event+0x109 (__ipipe_syscall_root+0x8d)
 |  + end     0x80000001     0    0.511  __ipipe_dispatch_event+0x1db (__ipipe_syscall_root+0x8d)
    + func                   0    0.130  __ipipe_syscall_root+0xa (system_call+0x29)
    + func                   0    0.120  __ipipe_dispatch_event+0xe (__ipipe_syscall_root+0x8d)
 |  + begin   0x80000001     1    0.130  __ipipe_dispatch_event+0x2c (__ipipe_syscall_root+0x8d)
 |  + end     0x80000001     1    0.150  __ipipe_dispatch_event+0xd6 (__ipipe_syscall_root+0x8d)
    + func                   1    0.180  hisyscall_event+0xe (__ipipe_dispatch_event+0xe6)
    + func                   1    0.135  __rt_task_wait_period+0xd (hisyscall_event+0x13b)
    + func                   1    0.135  rt_task_wait_period+0x8 (__rt_task_wait_period+0x34)
    + func                   1    0.000N xnpod_wait_thread_period+0xe (rt_task_wait_period+0x42)

  parent reply	other threads:[~2008-06-16  8:44 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-12  8:21 [Xenomai-help] High latencies on Core2Duo Sebastian Smolorz
2008-06-12  9:08 ` Gilles Chanteperdrix
2008-06-12 11:27   ` Sebastian Smolorz
2008-06-12 19:10     ` Philippe Gerum
2008-06-13  7:55       ` Sebastian Smolorz
2008-06-13  9:20         ` Philippe Gerum
2008-06-13  9:29           ` Sebastian Smolorz
2008-06-14  1:20             ` Naihong Tang
2008-06-15  8:13             ` Philippe Gerum
2008-06-15 12:24               ` Gilles Chanteperdrix
2008-06-16  8:44               ` Sebastian Smolorz [this message]
2008-06-16  9:13                 ` Philippe Gerum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=485627D1.7060702@domain.hid \
    --to=smolorz@domain.hid \
    --cc=philippe.gerum@domain.hid \
    --cc=xenomai@xenomai.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.