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)
next prev 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.