From: edward.robbins@domain.hid
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] Very high latencies under stress testing
Date: Fri, 3 Sep 2010 17:30:33 +0100 (BST) [thread overview]
Message-ID: <1283531433.789315367@domain.hid> (raw)
In-Reply-To: <4C692FC3.5040802@domain.hid>
[-- Attachment #1: Type: text/plain, Size: 4039 bytes --]
I have now installed the i-pipe tracer and run some tests. Yesterday I thought I had gotten a high latency without X running, while compiling the kernel to stress the system, but now I think I might have been mistaken. Either way I was using a kernel whose configuration I couldn't remember, and didn't have the I-Pipe tracer installed at that time, so the observation wasn't particularly useful.
Today I have tried using the intel video driver with the option "NoAccel", and that seems to stop the high latencies; with this option I can kill X, restart it, and run glxgears without issues, all while compiling the linux kernel and having xeno-test or latency running. The highest latency I have gotten so far is 18uS.
However, if anyone is interested I have made a trace without the NoAccel option, when the latency jumped to 1113uS upon starting X, attached.
A couple of other things:
Yesterday when running xeno-test, I got a few of these messages:
"INFO: task sync:20539 blocked for more than 120 seconds...."
I have not seen this again today, and I don't know if it could be related, but I was also getting lots of strange USB disconnect sort of messages yesterday... I haven't seen any more today, and as I said before that kernel may have been useless anyway.
I am also getting this message from xeno-test:
"FATAL: module xeno-nucleus not found"
And:
"Warning Linux is compiled to use FPU in kernel space
For this reason, switch test can not test using FPU in Linux Kernel-space"
I presume these last two are because I did something wrong at kernel compile time?
Also, I tried to compile Xenomai 2.5.4 with a 2.6.34 kernel because it has a network driver that I really need, but the build failed. I think this has been resolved previously (as I have seen some information in the mailing list about a problem in the debian kernel patch script), but am not sure how to use the corrected script with my system. Can anyone help?
I will keep testing.
Thanks,
Edward
On Monday, 16 August, 2010 1:32pm, "Gilles Chanteperdrix" <gilles.chanteperdrix@xenomai.org> said:
> edward.robbins@domain.hid wrote:
>>
>> On Friday, 13 August, 2010 3:35pm, "Gilles Chanteperdrix"
>> <gilles.chanteperdrix@xenomai.org> said:
>>
>>> edward.robbins@domain.hid wrote:
>>>> I wonder if this is to do with graphics? I have set "NoAccel" in the
>>>> driver section of Xorg.conf (I am using fbdev). I also notice that
>>>> latencies go massive (e.g. 4200uS) the first time I run glxgears.
>>>> "glxinfo" reports "Direct rendering: no".
>>> This is bad news. It could come either from the fact that the Xorg
>>> driver shuts hardware interrupts off (there is nothing xenomai can do
>>> about that), or it could be an SMI issue. What about using the driver
>>> for the real graphic card you have ? Probably intel card? Do you observe
>>> any big latencies if you stress the system with anything else than X?
>>>
>>>> Power management options (ACPUI, APM): Disable ACPI (Advanced
>>>> Configuration and Power Interface) Support --> Processor Disable CPU
>>>> Frequency Scaling Disable CPU idle PM support Disable Power Managment
>>>> Support
>>> Disabling ACPI is a bad idea. As repeated many times, only
>>> ACPI_PROCESSOR should be disabled, not ACPI.
>>>
>>
>> Thanks for your helpful responses.
>>
>> I'm not working on this project again until next week, but on Friday I was able
>> to
>>
>> o Recompile the kernel with ACPI enabled
>> o Boot with the 'SMI handler' BIOS option set to disabled....
>> according to the help text this option should be disabled if 'an RTOS
>> is installed' - I presume this means that SMIs are completely disabled
>> and therefore SMIs cannot be the source of the problem
>> (very convenient BIOS option... now I begin to appreciate the expense of this
>> board!)
>> o Changed xorg to use the intel video driver
>
> Now you can try NoAccel with the intel video driver too....
>
>
> --
> Gilles.
>
[-- Attachment #2: ipipe_trace --]
[-- Type: application/octet-stream, Size: 11226 bytes --]
I-pipe frozen back-tracing service on 2.6.32.15-xenomai-2.5.4/ipipe-2.7-01
------------------------------------------------------------
CPU: 0, Freeze: 5423344453447 cycles, Trace Points: 100 (+10)
Calibrated minimum trace-point overhead: 0.131 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 -1215 0.378 xnsched_pick_next+0x4 (__xnpod_schedule+0x1e3)
:| #*func -1214 0.491 __phys_addr+0x4 (__xnpod_schedule+0x562)
:| #*[14670] samplin 99 -1214 0.378 __xnpod_schedule+0x834 (xnpod_suspend_thread+0x281)
:| #*func -1214 0.221 xntimer_get_overruns+0x8 (xnpod_wait_thread_period+0x14c)
:| #*func -1213 0.213 __ipipe_restore_pipeline_head+0x7 (xnpod_wait_thread_period+0x1cb)
:| +*end 0x80000000 -1213 0.319 __ipipe_restore_pipeline_head+0x137 (xnpod_wait_thread_period+0x1cb)
:| +*begin 0x80000001 -1213 0.281 __ipipe_dispatch_event+0x1d9 (__ipipe_syscall_root+0xcd)
:| +*end 0x80000001 -1213 0.229 __ipipe_dispatch_event+0x3f0 (__ipipe_syscall_root+0xcd)
:| +*begin 0x80000001 -1212 0.573 __ipipe_syscall_root+0xec (__ipipe_syscall_root_thunk+0x35)
: +*func -1212 0.214 __ipipe_syscall_root+0x11 (__ipipe_syscall_root_thunk+0x35)
: +*func -1212 0.210 __ipipe_dispatch_event+0x11 (__ipipe_syscall_root+0xcd)
:| +*begin 0x80000001 -1211 0.281 __ipipe_dispatch_event+0x34 (__ipipe_syscall_root+0xcd)
:| +*end 0x80000001 -1211 0.214 __ipipe_dispatch_event+0x1a6 (__ipipe_syscall_root+0xcd)
: +*func -1211 0.217 hisyscall_event+0x11 (__ipipe_dispatch_event+0x1b7)
: +*func -1211 0.187 __rt_task_wait_period+0xb (hisyscall_event+0x151)
: +*func -1210 0.195 rt_task_wait_period+0x4 (__rt_task_wait_period+0x1c)
: +*func -1210 0.198 xnpod_wait_thread_period+0xb (rt_task_wait_period+0x3b)
:| +*begin 0x80000000 -1210 0.270 xnpod_wait_thread_period+0x3d (rt_task_wait_period+0x3b)
:| #*func -1210 0.262 xnpod_suspend_thread+0x11 (xnpod_wait_thread_period+0x126)
:| #*func -1210 0.240 __xnpod_schedule+0x11 (xnpod_suspend_thread+0x281)
:| #*[14670] samplin 99 -1209 0.217 __xnpod_schedule+0x189 (xnpod_suspend_thread+0x281)
:| #*func -1209 0.367 xnsched_pick_next+0x4 (__xnpod_schedule+0x1e3)
:| #*func -1209 0.424 __phys_addr+0x4 (__xnpod_schedule+0x562)
:| #*[13273] dd -1 -1208 0.420 __xnpod_schedule+0x834 (xnintr_clock_handler+0x130)
:| #func -1208 0.408 __ipipe_walk_pipeline+0x11 (__ipipe_dispatch_wired_nocheck+0x1da)
:| #end 0x000000f6 -1207 0.345 common_interrupt+0x39 (__ipipe_sync_stage+0x195)
: #func -1207 0.221 __ipipe_get_ioapic_irq_vector+0x4 (__ipipe_sync_stage+0x1ce)
: #func -1207 0.202 smp_call_function_single_interrupt+0x4 (__ipipe_sync_stage+0x21b)
: #func -1207 0.195 irq_enter+0x9 (smp_call_function_single_interrupt+0xe)
:| #begin 0x80000001 -1206 0.243 debug_smp_processor_id+0x44 (irq_enter+0x13)
:| #end 0x80000001 -1206 0.251 debug_smp_processor_id+0x94 (irq_enter+0x13)
: #func -1206 0.195 rcu_irq_enter+0x9 (irq_enter+0x1a)
:| #begin 0x80000001 -1206 0.240 debug_smp_processor_id+0x44 (rcu_irq_enter+0x1a)
:| #end 0x80000001 -1206 0.255 debug_smp_processor_id+0x94 (rcu_irq_enter+0x1a)
: #func -1205 0.202 idle_cpu+0x4 (irq_enter+0x21)
: #func -1205 0.206 add_preempt_count+0x9 (irq_enter+0x59)
: #func -1205 0.195 ipipe_check_context+0x11 (add_preempt_count+0x1c)
:| #begin 0x80000001 -1205 0.262 ipipe_check_context+0x33 (add_preempt_count+0x1c)
:| #end 0x80000001 -1204 0.229 ipipe_check_context+0xda (add_preempt_count+0x1c)
: #func -1204 0.195 generic_smp_call_function_single_interrupt+0xd (smp_call_function_single_interrupt+0x13)
:| #begin 0x80000001 -1204 0.240 debug_smp_processor_id+0x44 (generic_smp_call_function_single_interrupt+0x1e)
:| #end 0x80000001 -1204 0.225 debug_smp_processor_id+0x94 (generic_smp_call_function_single_interrupt+0x1e)
:| #begin 0x80000001 -1204 0.232 debug_smp_processor_id+0x44 (generic_smp_call_function_single_interrupt+0x39)
:| #end 0x80000001 -1203 0.221 debug_smp_processor_id+0x94 (generic_smp_call_function_single_interrupt+0x39)
: #func -1203 0.199 _spin_lock+0x9 (generic_smp_call_function_single_interrupt+0x7d)
: #func -1203 0.191 add_preempt_count+0x9 (_spin_lock+0x1b)
: #func -1203 0.187 ipipe_check_context+0x11 (add_preempt_count+0x1c)
:| #begin 0x80000001 -1203 0.251 ipipe_check_context+0x33 (add_preempt_count+0x1c)
:| #end 0x80000001 -1202 0.277 ipipe_check_context+0xda (add_preempt_count+0x1c)
: #func -1202 0.191 _spin_unlock+0x4 (generic_smp_call_function_single_interrupt+0xa7)
: #func -1202 0.195 sub_preempt_count+0x9 (_spin_unlock+0x15)
: #func -1202 0.187 ipipe_check_context+0x11 (sub_preempt_count+0x1c)
:| #begin 0x80000001 -1201 0.251 ipipe_check_context+0x33 (sub_preempt_count+0x1c)
:| #end 0x80000001 -1201 0.258 ipipe_check_context+0xda (sub_preempt_count+0x1c)
: #func -1201 0.195 __cpa_flush_all+0x9 (generic_smp_call_function_single_interrupt+0xe6)
: #func -1201 0.191 ipipe_check_context+0x11 (__cpa_flush_all+0x26)
:| #begin 0x80000001 -1201 0.255 ipipe_check_context+0x33 (__cpa_flush_all+0x26)
:| #end 0x80000001 -1200 0.547 ipipe_check_context+0xda (__cpa_flush_all+0x26)
: #func -1200 0.195 __ipipe_restore_root+0xb (__cpa_flush_all+0x67)
:| #begin 0x80000001 -1200 0.240 __ipipe_restore_root+0x2d (__cpa_flush_all+0x67)
:| #end 0x80000001 -1199! 1173.258 __ipipe_restore_root+0x7d (__cpa_flush_all+0x67)
:| #begin 0x000000f6 -26+ 1.549 common_interrupt+0x20 (__cpa_flush_all+0x7f)
:| #func -24 0.472 __ipipe_handle_irq+0x11 (common_interrupt+0x27)
:| #func -24 0.292 irq_to_desc+0x4 (__ipipe_handle_irq+0x134)
:| #func -24 0.390 __ipipe_ack_apic+0x4 (__ipipe_handle_irq+0x13c)
:| #func -23 0.630 native_apic_mem_write+0x4 (__ipipe_ack_apic+0x1d)
:| #func -23 0.318 __ipipe_dispatch_wired+0xd (__ipipe_handle_irq+0x147)
:| #func -22 0.442 __ipipe_dispatch_wired_nocheck+0x11 (__ipipe_dispatch_wired+0xba)
:| #*func -22 0.592 xnintr_clock_handler+0xb (__ipipe_dispatch_wired_nocheck+0x12b)
:| #*func -21 0.862 xntimer_tick_aperiodic+0xb (xnintr_clock_handler+0x81)
:| #*func -20 0.274 xnthread_periodic_handler+0x4 (xntimer_tick_aperiodic+0x8d)
:| #*func -20+ 1.050 xnpod_resume_thread+0x11 (xnthread_periodic_handler+0x2d)
:| #*[14670] samplin 99 -19 0.686 xnpod_resume_thread+0xfa (xnthread_periodic_handler+0x2d)
:| #*func -18 0.292 xntimer_next_local_shot+0x9 (xntimer_tick_aperiodic+0x191)
:| #*event tick@79 -18 0.307 xntimer_next_local_shot+0xb0 (xntimer_tick_aperiodic+0x191)
:| #*func -18 0.499 native_apic_mem_write+0x4 (xntimer_next_local_shot+0xe5)
:| #*func -17 0.660 __xnpod_schedule+0x11 (xnintr_clock_handler+0x130)
:| #*[13273] dd -1 -17 0.273 __xnpod_schedule+0x189 (xnintr_clock_handler+0x130)
:| #*func -16+ 1.691 xnsched_pick_next+0x4 (__xnpod_schedule+0x1e3)
:| #*func -15+ 1.282 __phys_addr+0x4 (__xnpod_schedule+0x562)
:| #*[14670] samplin 99 -13 0.896 __xnpod_schedule+0x834 (xnpod_suspend_thread+0x281)
:| #*func -13 0.247 xntimer_get_overruns+0x8 (xnpod_wait_thread_period+0x14c)
:| #*func -12 0.311 __ipipe_restore_pipeline_head+0x7 (xnpod_wait_thread_period+0x1cb)
:| +*end 0x80000000 -12+ 1.710 __ipipe_restore_pipeline_head+0x137 (xnpod_wait_thread_period+0x1cb)
:| +*begin 0x80000001 -10 0.363 __ipipe_dispatch_event+0x1d9 (__ipipe_syscall_root+0xcd)
:| +*end 0x80000001 -10 0.330 __ipipe_dispatch_event+0x3f0 (__ipipe_syscall_root+0xcd)
:| +*begin 0x80000001 -10+ 5.135 __ipipe_syscall_root+0xec (__ipipe_syscall_root_thunk+0x35)
: +*func -4 0.330 __ipipe_syscall_root+0x11 (__ipipe_syscall_root_thunk+0x35)
: +*func -4 0.213 __ipipe_dispatch_event+0x11 (__ipipe_syscall_root+0xcd)
:| +*begin 0x80000001 -4 0.480 __ipipe_dispatch_event+0x34 (__ipipe_syscall_root+0xcd)
:| +*end 0x80000001 -3 0.259 __ipipe_dispatch_event+0x1a6 (__ipipe_syscall_root+0xcd)
: +*func -3 0.615 hisyscall_event+0x11 (__ipipe_dispatch_event+0x1b7)
: +*func -3 0.547 xnshadow_sys_trace+0x7 (hisyscall_event+0x151)
: +*func -2 0.292 ipipe_trace_frozen_reset+0xb (xnshadow_sys_trace+0x69)
: +*func -2 0.198 __ipipe_global_path_lock+0x4 (ipipe_trace_frozen_reset+0x1c)
: +*func -2 0.191 __ipipe_spin_lock_irqsave+0xb (__ipipe_global_path_lock+0x15)
:| +*begin 0x80000001 -1+ 1.316 __ipipe_spin_lock_irqsave+0x2a (__ipipe_global_path_lock+0x15)
:| #*func 0 0.266 __ipipe_spin_unlock_irqcomplete+0xb (__ipipe_global_path_unlock+0x7d)
:| +*end 0x80000001 0 0.236 __ipipe_spin_unlock_irqcomplete+0xcf (__ipipe_global_path_unlock+0x7d)
< +*freeze 0x0010fc66 0 0.214 xnshadow_sys_trace+0x73 (hisyscall_event+0x151)
| +*begin 0x80000001 0 0.251 __ipipe_dispatch_event+0x1d9 (__ipipe_syscall_root+0xcd)
| +*end 0x80000001 0 0.214 __ipipe_dispatch_event+0x3f0 (__ipipe_syscall_root+0xcd)
| +*begin 0x80000001 0 0.648 __ipipe_syscall_root+0xec (__ipipe_syscall_root_thunk+0x35)
+*func 1 0.210 __ipipe_syscall_root+0x11 (__ipipe_syscall_root_thunk+0x35)
+*func 1 0.187 __ipipe_dispatch_event+0x11 (__ipipe_syscall_root+0xcd)
| +*begin 0x80000001 1 0.262 __ipipe_dispatch_event+0x34 (__ipipe_syscall_root+0xcd)
| +*end 0x80000001 1 0.199 __ipipe_dispatch_event+0x1a6 (__ipipe_syscall_root+0xcd)
+*func 2 0.348 hisyscall_event+0x11 (__ipipe_dispatch_event+0x1b7)
+*func 2 0.281 __rt_task_wait_period+0xb (hisyscall_event+0x151)
+*func 2 0.000 rt_task_wait_period+0x4 (__rt_task_wait_period+0x1c)
next prev parent reply other threads:[~2010-09-03 16:30 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-13 14:17 [Xenomai-help] Very high latencies under stress testing edward.robbins
2010-08-13 14:35 ` Gilles Chanteperdrix
2010-08-16 12:13 ` edward.robbins
2010-08-16 12:32 ` Gilles Chanteperdrix
2010-09-03 16:30 ` edward.robbins [this message]
2010-09-04 8:51 ` Philippe Gerum
2010-10-15 9:21 ` edward.robbins
2010-10-15 11:54 ` edward.robbins
2010-10-15 13:51 ` Gilles Chanteperdrix
2010-10-15 14:13 ` edward.robbins
2010-10-15 14:25 ` Gilles Chanteperdrix
2010-10-15 14:33 ` Philippe Gerum
2010-10-19 13:52 ` edward.robbins
2010-10-19 20:01 ` Gilles Chanteperdrix
2010-10-23 11:08 ` edward.robbins
2010-10-23 11:13 ` Gilles Chanteperdrix
2010-10-23 11:22 ` edward.robbins
2010-10-23 11:36 ` Gilles Chanteperdrix
2010-10-23 13:45 ` edward.robbins
2010-10-23 13:51 ` Gilles Chanteperdrix
2010-10-23 13:56 ` edward.robbins
2010-10-23 13:58 ` Gilles Chanteperdrix
2010-10-23 14:32 ` edward.robbins
2010-10-23 14:37 ` Gilles Chanteperdrix
2010-10-23 14:48 ` edward.robbins
2010-10-23 15:16 ` edward.robbins
2010-10-23 14:10 ` Gilles Chanteperdrix
2010-08-13 14:40 ` Philippe Gerum
2010-08-13 16:15 ` Philippe Gerum
-- strict thread matches above, loose matches on Subject: below --
2010-10-23 14:54 edward.robbins
2010-10-23 15:37 ` Gilles Chanteperdrix
2010-10-23 16:21 ` edward.robbins
2010-10-23 16:26 ` edward.robbins
2010-10-23 18:46 ` edward.robbins
2010-10-23 21:52 ` Gilles Chanteperdrix
2010-10-24 15:55 ` edward.robbins
2010-10-23 16:13 ` Gilles Chanteperdrix
2010-10-23 16:22 ` Gilles Chanteperdrix
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=1283531433.789315367@domain.hid \
--to=edward.robbins@domain.hid \
--cc=gilles.chanteperdrix@xenomai.org \
--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.