Steven Scholz wrote:
> Hi Gilles,
> 
> I am running xenomai (svn 22.02.2007) with adeos-ipipe-2.6.19-arm-1.6-02.patch
> on our AT91RM9200 board. (# CONFIG_PREEMPT is not set)
> 
> When starting latency with 100µs period I get
> 
> ~ # latency
> == Sampling period: 100 us
> == Test mode: periodic user-mode task
> == All results in microseconds
> warming up...
> BUG: soft lockup detected on CPU#0!
> [<c001dce8>] (dump_stack+0x0/0x14) from [<c004ce50>] 
> (softlockup_tick+0x98/0xb8)
> [<c004cdb8>] (softlockup_tick+0x0/0xb8) from [<c0037cf8>] 
> (run_local_timers+0x18/0x1c) r7 = 00000011  r6 = 00000000  r5 = 00000000  r4 
> = C02F8940
> [<c0037ce0>] (run_local_timers+0x0/0x1c) from [<c0037d40>] 
> (update_process_times+0x44/0x6c)[<c0037cfc>] (update_process_times+0x0/0x6c) 
> from [<c001db4c>] (timer_tick+0xf8/0x120) r5 = C01F9DE0  r4 = C01F0660
> [<c001da54>] (timer_tick+0x0/0x120) from [<c0023a8c>] 
> (at91rm9200_timer_interrupt+0x34/0xf8) r5 = C01F9DE0  r4 = C01F0660
> [<c0023a58>] (at91rm9200_timer_interrupt+0x0/0xf8) from [<c004d320>] 
> (handle_IRQ_event+0x38/0x6c) r5 = 00000000  r4 = C01AD8F0
> [<c004d2e8>] (handle_IRQ_event+0x0/0x6c) from [<c004e5e8>] 
> (handle_level_irq+0x74/0xcc) r7 = 00000011  r6 = C01AF2C0  r5 = 00000011  r4 
> = C01A8440
> [<c004e574>] (handle_level_irq+0x0/0xcc) from [<c001a6c0>] 
> (asm_do_IRQ+0x48/0x60) r5 = 00000000  r4 = C0213930
> [<c001a678>] (asm_do_IRQ+0x0/0x60) from [<c004f2c0>] 
> (__ipipe_sync_stage+0x208/0x290) r5 = 00000000  r4 = C01AF2C8
> [<c004f0b8>] (__ipipe_sync_stage+0x0/0x290) from [<c004f86c>] 
> (__ipipe_walk_pipeline+0xa4/0xc8)
> [<c004f7c8>] (__ipipe_walk_pipeline+0x0/0xc8) from [<c001f004>] 
> (__ipipe_handle_irq+0x18c/0x19c) r7 = 00000011  r6 = C01FC2C0  r5 = 00000011  
> r4 = FFFFFFFF
> [<c001ee78>] (__ipipe_handle_irq+0x0/0x19c) from [<c001f140>] 
> (__ipipe_grab_irq+0xbc/0x120)
> [<c001f084>] (__ipipe_grab_irq+0x0/0x120) from [<c00199a4>] 
> (__irq_svc+0x24/0x4c)
> [<c004f578>] (__ipipe_unstall_root+0x0/0x4c) from [<c004f5e4>] 
> (__ipipe_restore_root+0x20/0x24)
> [<c004f5c4>] (__ipipe_restore_root+0x0/0x24) from [<c0045a20>] 
> (hrtimer_try_to_cancel+0x6c/0x74)
> [<c00459b4>] (hrtimer_try_to_cancel+0x0/0x74) from [<c0045a40>] 
> (hrtimer_cancel+0x18/0x24) r7 = 00000000  r6 = 00000001  r5 = C1D82000  r4 = 
> C1D83F3C
> [<c0045a28>] (hrtimer_cancel+0x0/0x24) from [<c0179b08>] 
> (do_nanosleep+0x50/0x80) r4 = C1D83F3C
> [<c0179ab8>] (do_nanosleep+0x0/0x80) from [<c0045d6c>] 
> (hrtimer_nanosleep+0x4c/0x16c) r6 = 00000001  r5 = C1D83F3C  r4 = 00000000
> [<c0045d20>] (hrtimer_nanosleep+0x0/0x16c) from [<c0045f28>] 
> (sys_nanosleep+0x9c/0xb0)[<c0045e8c>] (sys_nanosleep+0x0/0xb0) from 
> [<c0019d84>] (ret_fast_syscall+0x0/0x10) r6 = 00000000  r5 = BEAB9D5E  r4 = 
> 00000000
> 
> 
> This text is printed very slowly onto teh serial console. Also the timer leds 
> blinks very slowly.
> I'd say 10 times slower.
> 
> Ideas? How can I help with debugging this?
> 

ARM platforms have hardware-related worst-case latencies in the range of
200 us under Linux (or is the AT91 mmu-less?). So if you set up a task
with a 100 us period and load your system, you will more sooner than
later see a total overload of both RT and non-RT part - not to speak of
countless deadline misses.

What happens if you move your task period more in the range of, say, 500
down to 300 us?

Jan

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to