Hi at all,
I am using linux 3.10.18 and ipipe-core-3.10.18-arm-1 on a Freescale i.MX28. I
have also merged PREEMPT RT rt14 into the kernel. FCSE is disabled.
I have enabled several debug options in the kernel. When a started program
exits I get the message below:
[ 33.187104] BUG: sleeping function called from invalid context at
kernel/rtmutex.c:659
[ 33.187125] in_atomic(): 1, irqs_disabled(): 128, pid: 87, name:
[ 33.187138] 1 lock held by /87:
[ 33.187213] #0: (rcu_read_lock){......}, at: [<c002add8>]
__lock_task_sighand+0x24/0xf4
[ 33.187232] Preemption disabled at:[< (null)>] (null)
[ 33.187237]
[ 33.187262] CPU: 0 PID: 87 Comm: Not tainted
3.10.18-rt14-arvero-rev01-ipipe #2
[ 33.187337] [<c0013110>] (unwind_backtrace+0x0/0xf0) from [<c001158c>]
(show_stack+0x10/0x14)
[ 33.187398] [<c001158c>] (show_stack+0x10/0x14) from [<c04a0b70>]
(rt_spin_lock+0x20/0x64)
[ 33.187444] [<c04a0b70>] (rt_spin_lock+0x20/0x64) from [<c002ae28>]
(__lock_task_sighand+0x74/0xf4)
[ 33.187479] [<c002ae28>] (__lock_task_sighand+0x74/0xf4) from [<c002aecc>]
(do_send_sig_info+0x24/0x64)
[ 33.187522] [<c002aecc>] (do_send_sig_info+0x24/0x64) from [<c00b0878>]
(lostage_handler+0xf8/0x128)
[ 33.187568] [<c00b0878>] (lostage_handler+0xf8/0x128) from [<c0073860>]
(rthal_apc_handler+0x60/0x84)
[ 33.187615] [<c0073860>] (rthal_apc_handler+0x60/0x84) from [<c0066a58>]
(__ipipe_do_sync_stage+0x1f8/0x288)
[ 33.187655] [<c0066a58>] (__ipipe_do_sync_stage+0x1f8/0x288) from
[<c00145c0>] (__ipipe_syscall_root+0xf4/0x13c)
[ 33.187694] [<c00145c0>] (__ipipe_syscall_root+0xf4/0x13c) from [<c000ea34>]
(vector_swi+0x54/0x74)
For me it seems as I have done something wrong when merging spinlocks of
PREEMPT RT and ipipe. Isn't rt_spin_lock() allowed to be called within that
context? Does anyone has an idea why?
Regards,
Christoph
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai