Hi,

I'm trying to update our systems to use a new kernel and Xenomai 2.6.0, with
ipipe 2.6.38.8-x86-2.11-02.  (Previously, I've tested 2.5.6 with ipipe
2.6.37-x86-2.9.00;
there was no ipipe log with that version.)

Everything seems to be running fine, but I get an error message and a
call trace in
the kernel logs. The message is "I-pipe: Detected illicit call from
domain 'Xenomai'".
This happens pretty much as soon as our first Xenomai tasks start running, and
it doesn't appear to be hurting anything.

The tasks mentioned in the tracer log are both low-priority
native-skin tasks that use
Xenomai services to communicate with our realtime tasks, but also use Linux
services.  The configClient task uses rt_mutex and condition variables
to receive
requests from another Xenomai task in the same process. Its job is to
talk on a tcp
socket with a java server. It expects to go into secondary mode when doing that,
and is careful not to hold the rt_mutex when blocking. (But I mention
that, because
I'm not sure if the ipipe message could be caused by a mistake of that sort in
userspace.)

configClient sometimes also sends rt_queue messages to the loggingTask,
which is also mentioned in the tracer log. (It looks like the
loggingTask had recently
received a message from somewhere, but I don't understand the trace well enough
to say for certain whether that message came from the configClient.)
When loggingTask
receives a message, it will write() it to disk; again, it expects to
go to secondary
mode for that.

We're building Xenomai for 32-bit x86, with --enable-x86-sep and
CFLAGS="-fno-omit-frame-pointer".

The trace follows.

Thank you,

-Josh

--

[   30.582794] I-pipe: Domain Xenomai registered.
[   30.582814] Xenomai: hal/i386 started.
[   30.582873] Xenomai: scheduling class idle registered.
[   30.582876] Xenomai: scheduling class rt registered.
[   30.617841] Xenomai: real-time nucleus v2.6.0 (Movin' On) loaded.
[   30.617846] Xenomai: debug mode enabled.
[   30.693068] Xenomai: starting native API services.
[   45.619810] I-pipe: Detected illicit call from domain 'Xenomai'
[   45.619815] <3>        into a service reserved for domain 'Linux' and below.
[   45.619827] Pid: 885, comm: configClient.88 Not tainted 2.6.38.8+1.1.0ubu6 #1
[   45.619833] Call Trace:
[   45.619853]  [<c01a3cfd>] ? ipipe_check_context+0x1ad/0x1f0
[   45.619863]  [<c0199d97>] ? kgdb_cpu_enter+0xa7/0x560
[   45.619870]  [<c019a44f>] ? kgdb_handle_exception+0xef/0x150
[   45.619877]  [<c01a7fda>] ? ipipe_trace_function+0x2a/0x30
[   45.619886]  [<c011a59d>] ? __ipipe_handle_exception+0x7d/0x670
[   45.619897]  [<c05a7cef>] ? error_code+0x5f/0x70
[   45.619902] I-pipe tracer log (100 points):
[   45.619906]  |  + func                    0
ipipe_trace_panic_freeze+0x4 (ipipe_check_context+0x155)
[   45.619930]  |  + func                    0 ipipe_check_context+0xf
(kgdb_cpu_enter+0xa7)
[   45.619950]  |  + func                   -1
kgdb_disable_hw_debug+0x9 (kgdb_cpu_enter+0x5f)
[   45.619973]  |  + func                   -2 kgdb_cpu_enter+0x9
(kgdb_handle_exception+0xef)
[   45.619993]  |  + func                   -3
kgdb_handle_exception+0x8 (__ipipe_handle_exception+0x7d)
[   45.620021]  |  + func                   -4
__ipipe_handle_exception+0x9 (error_code+0x5f)
[   45.620041]  |  + begin   0x80000001    -39
__ipipe_syscall_root+0xd3 (sysenter_past_esp+0x55)
[   45.620045]  |  + end     0x80000001    -39
__ipipe_dispatch_event+0x2a3 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001    -39
__ipipe_dispatch_event+0x213 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + end     0x80000000    -39
__ipipe_restore_pipeline_head+0x83
(xnlock_put_irqrestore.constprop.12+0xf5 [xeno_native])
[   45.620045]  |  # func                  -39
__ipipe_restore_pipeline_head+0xf
(xnlock_put_irqrestore.constprop.12+0xf5 [xeno_native])
[   45.620045]  |  # func                  -40
xnlock_put_irqrestore.constprop.12+0xf [xeno_native]
(__rt_queue_send+0x142 [xeno_native])
[   45.620045]  |  # [  885] configCl 4    -40 __xnpod_schedule+0x5aa
[xeno_nucleus] (rt_queue_send+0x2bc [xeno_native])
[   45.620045]  |  # func                  -41 xnsched_pick_next+0xf
[xeno_nucleus] (__xnpod_schedule+0x273 [xeno_nucleus])
[   45.620045]  |  # [  877] loggingT 8    -41 __xnpod_schedule+0x12e
[xeno_nucleus] (xnpod_suspend_thread+0x53b [xeno_nucleus])
[   45.620045]  |  # func                  -41 __xnpod_schedule+0x9
[xeno_nucleus] (xnpod_suspend_thread+0x53b [xeno_nucleus])
[   45.620045]  |  # func                  -42 xnarch_ns_to_tsc+0xf
[xeno_nucleus] (xntimer_start_aperiodic+0x8f [xeno_nucleus])
[   45.620045]  |  # func                  -43
xntimer_start_aperiodic+0x9 [xeno_nucleus] (xnpod_suspend_thread+0x300
[xeno_nucleus])
[   45.620045]  |  # func                  -44 xntimer_migrate+0x9
[xeno_nucleus] (xnpod_suspend_thread+0x2dc [xeno_nucleus])
[   45.620045]  |  # func                  -45
xnpod_suspend_thread+0x9 [xeno_nucleus] (xnsynch_sleep_on+0x13b
[xeno_nucleus])
[   45.620045]  |  # func                  -46 xnsynch_sleep_on+0x9
[xeno_nucleus] (rt_queue_receive_inner+0x3ef [xeno_native])
[   45.620045]  |  # func                  -46
rt_queue_receive_inner+0x9 [xeno_native] (__rt_queue_receive+0x141
[xeno_native])
[   45.620045]  |  # func                  -47 xnregistry_fetch+0x3
[xeno_nucleus] (__rt_queue_receive+0x11d [xeno_native])
[   45.620045]  |  + begin   0x80000000    -47
__rt_queue_receive+0x1a3 [xeno_native] (hisyscall_event+0x1f0
[xeno_nucleus])
[   45.620045]     + func                  -47
__copy_from_user_ll_nozero+0xf (__xn_safe_copy_from_user+0x31
[xeno_native])
[   45.620045]     + func                  -47
__xn_safe_copy_from_user+0xf [xeno_native] (__rt_queue_receive+0x58
[xeno_native])
[   45.620045]     + func                  -47
__copy_from_user_ll_nozero+0xf (__rt_queue_receive+0x40 [xeno_native])
[   45.620045]     + func                  -48 __rt_queue_receive+0x9
[xeno_native] (hisyscall_event+0x1f0 [xeno_nucleus])
[   45.620045]     + func                  -48 hisyscall_event+0xf
[xeno_nucleus] (__ipipe_dispatch_event+0xef)
[   45.620045]  |  + end     0x80000001    -48
__ipipe_dispatch_event+0x222 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001    -48
__ipipe_dispatch_event+0x2cb (__ipipe_syscall_root+0x53)
[   45.620045]     + func                  -48
__ipipe_dispatch_event+0x9 (__ipipe_syscall_root+0x53)
[   45.620045]     + func                  -49
__ipipe_syscall_root+0xf (sysenter_past_esp+0x55)
[   45.620045]  |  + begin   0x80000001    -50
__ipipe_syscall_root+0xd3 (sysenter_past_esp+0x55)
[   45.620045]  |  + end     0x80000001    -50
__ipipe_dispatch_event+0x2a3 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001    -50
__ipipe_dispatch_event+0x213 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + end     0x80000000    -50
__ipipe_restore_pipeline_head+0x83
(xnlock_put_irqrestore.constprop.12+0xf5 [xeno_native])
[   45.620045]  |  # func                  -51
__ipipe_restore_pipeline_head+0xf
(xnlock_put_irqrestore.constprop.12+0xf5 [xeno_native])
[   45.620045]  |  # func                  -51
xnlock_put_irqrestore.constprop.12+0xf [xeno_native]
(__rt_queue_free+0x12a [xeno_native])
[   45.620045]  |  # func                  -52 __queue_check_msg+0x3
[xeno_native] (xnheap_test_and_free+0x335 [xeno_nucleus])
[   45.620045]  |  # func                  -54
xnheap_test_and_free+0x9 [xeno_nucleus] (rt_queue_free+0x1f8
[xeno_native])
[   45.620045]  |  # func                  -55 rt_queue_free+0x9
[xeno_native] (__rt_queue_free+0x11e [xeno_native])
[   45.620045]  |  # func                  -55 xnregistry_fetch+0x3
[xeno_nucleus] (__rt_queue_free+0xff [xeno_native])
[   45.620045]  |  + begin   0x80000000    -55 __rt_queue_free+0x143
[xeno_native] (hisyscall_event+0x1f0 [xeno_nucleus])
[   45.620045]     + func                  -56
__copy_from_user_ll_nozero+0xf (__rt_queue_free+0x3b [xeno_native])
[   45.620045]     + func                  -56 __rt_queue_free+0x9
[xeno_native] (hisyscall_event+0x1f0 [xeno_nucleus])
[   45.620045]     + func                  -56 hisyscall_event+0xf
[xeno_nucleus] (__ipipe_dispatch_event+0xef)
[   45.620045]  |  + end     0x80000001    -57
__ipipe_dispatch_event+0x222 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001    -57
__ipipe_dispatch_event+0x2cb (__ipipe_syscall_root+0x53)
[   45.620045]     + func                  -57
__ipipe_dispatch_event+0x9 (__ipipe_syscall_root+0x53)
[   45.620045]     + func                  -57
__ipipe_syscall_root+0xf (sysenter_past_esp+0x55)
[   45.620045]  |  + begin   0x80000001    -94
__ipipe_syscall_root+0xd3 (sysenter_past_esp+0x55)
[   45.620045]  |  + end     0x80000001    -94
__ipipe_dispatch_event+0x2a3 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001    -95
__ipipe_dispatch_event+0x213 (__ipipe_syscall_root+0x53)
[   45.620045]     + func                  -95 __copy_to_user_ll+0xf
(__rt_timer_read+0x4d [xeno_native])
[   45.620045]     + func                  -95 xnarch_tsc_to_ns+0xc
[xeno_nucleus] (xnarch_get_cpu_time+0xf [xeno_nucleus])
[   45.620045]     + func                  -95 xnarch_get_cpu_time+0x3
[xeno_nucleus] (__rt_timer_read+0x1a [xeno_native])
[   45.620045]     + func                  -95 __rt_timer_read+0x8
[xeno_native] (hisyscall_event+0x1f0 [xeno_nucleus])
[   45.620045]     + func                  -96 hisyscall_event+0xf
[xeno_nucleus] (__ipipe_dispatch_event+0xef)
[   45.620045]  |  + end     0x80000001    -96
__ipipe_dispatch_event+0x222 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001    -96
__ipipe_dispatch_event+0x2cb (__ipipe_syscall_root+0x53)
[   45.620045]     + func                  -96
__ipipe_dispatch_event+0x9 (__ipipe_syscall_root+0x53)
[   45.620045]     + func                  -96
__ipipe_syscall_root+0xf (sysenter_past_esp+0x55)
[   45.620045]  |  + begin   0x80000001   -102
__ipipe_syscall_root+0xd3 (sysenter_past_esp+0x55)
[   45.620045]  |  + end     0x80000001   -102
__ipipe_dispatch_event+0x2a3 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001   -102
__ipipe_dispatch_event+0x213 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + end     0x80000000   -104
__ipipe_restore_pipeline_head+0x83
(xnlock_put_irqrestore.constprop.12+0xf5 [xeno_native])
[   45.620045]  |  # func                 -104
__ipipe_restore_pipeline_head+0xf
(xnlock_put_irqrestore.constprop.12+0xf5 [xeno_native])
[   45.620045]  |  # func                 -104
xnlock_put_irqrestore.constprop.12+0xf [xeno_native]
(__rt_queue_receive+0x162 [xeno_native])
[   45.620045]  |  # [  877] loggingT 8   -107 __xnpod_schedule+0x5aa
[xeno_nucleus] (xnpod_suspend_thread+0x53b [xeno_nucleus])
[   45.620045]  |  # func                 -109 xnsched_pick_next+0xf
[xeno_nucleus] (__xnpod_schedule+0x273 [xeno_nucleus])
[   45.620045]  |  # [  885] configCl 4   -109 __xnpod_schedule+0x12e
[xeno_nucleus] (rt_queue_send+0x2bc [xeno_native])
[   45.620045]  |  # func                 -109 __xnpod_schedule+0x9
[xeno_nucleus] (rt_queue_send+0x2bc [xeno_native])
[   45.620045]  |  # func                 -110
xntimer_stop_aperiodic+0x5 [xeno_nucleus] (xnpod_resume_thread+0x46f
[xeno_nucleus])
[   45.620045]  |  # [  877] loggingT 8   -111
xnpod_resume_thread+0xe2 [xeno_nucleus]
(xnsynch_wakeup_one_sleeper+0xfc [xeno_nucleus])
[   45.620045]  |  # func                 -111 xnpod_resume_thread+0x9
[xeno_nucleus] (xnsynch_wakeup_one_sleeper+0xfc [xeno_nucleus])
[   45.620045]  |  # func                 -113
xnsynch_wakeup_one_sleeper+0x9 [xeno_nucleus] (rt_queue_send+0x268
[xeno_native])
[   45.620045]  |  # func                 -114 xnheap_check_block+0x9
[xeno_nucleus] (rt_queue_send+0x226 [xeno_native])
[   45.620045]  |  # func                 -115 rt_queue_send+0x9
[xeno_native] (__rt_queue_send+0x138 [xeno_native])
[   45.620045]  |  # func                 -115 xnregistry_fetch+0x3
[xeno_nucleus] (__rt_queue_send+0x113 [xeno_native])
[   45.620045]  |  + begin   0x80000000   -116 __rt_queue_send+0x15b
[xeno_native] (hisyscall_event+0x1f0 [xeno_nucleus])
[   45.620045]     + func                 -116
__copy_from_user_ll_nozero+0xf (__rt_queue_send+0x40 [xeno_native])
[   45.620045]     + func                 -117 __rt_queue_send+0x9
[xeno_native] (hisyscall_event+0x1f0 [xeno_nucleus])
[   45.620045]     + func                 -117 hisyscall_event+0xf
[xeno_nucleus] (__ipipe_dispatch_event+0xef)
[   45.620045]  |  + end     0x80000001   -117
__ipipe_dispatch_event+0x222 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001   -117
__ipipe_dispatch_event+0x2cb (__ipipe_syscall_root+0x53)
[   45.620045]     + func                 -118
__ipipe_dispatch_event+0x9 (__ipipe_syscall_root+0x53)
[   45.620045]     + func                 -118
__ipipe_syscall_root+0xf (sysenter_past_esp+0x55)
[   45.620045]  |  + begin   0x80000001   -139
__ipipe_syscall_root+0xd3 (sysenter_past_esp+0x55)
[   45.620045]  |  + end     0x80000001   -139
__ipipe_dispatch_event+0x2a3 (__ipipe_syscall_root+0x53)
[   45.620045]  |  + begin   0x80000001   -139
__ipipe_dispatch_event+0x213 (__ipipe_syscall_root+0x53)
[   45.620045]     + func                 -139 __copy_to_user_ll+0xf
(__rt_task_inquire+0x96 [xeno_native])
[   45.620045]  |  + end     0x80000000   -140
__ipipe_restore_pipeline_head+0x83 (rt_task_inquire+0x12c
[xeno_native])
[   45.620045]  |  # func                 -140
__ipipe_restore_pipeline_head+0xf (rt_task_inquire+0x12c
[xeno_native])
[   45.620045]  |  # func                 -140 xnarch_tsc_to_ns+0xc
[xeno_nucleus] (rt_task_inquire+0x2b9 [xeno_native])
[   45.620045]  |  # func                 -141 strcpy+0xc
(rt_task_inquire+0x266 [xeno_native])
[   45.620045]  |  + begin   0x80000000   -141 rt_task_inquire+0x23b
[xeno_native] (__rt_task_inquire+0x68 [xeno_native])
[   45.620045]     + func                 -142 rt_task_inquire+0x9
[xeno_native] (__rt_task_inquire+0x68 [xeno_native])
[   45.620045]     + func                 -142 __rt_task_lookup+0x4
[xeno_native] (__rt_task_inquire+0x39 [xeno_native])
[   45.620045]     + func                 -143
__copy_from_user_ll_nozero+0xf (__xn_safe_copy_from_user+0x31
[xeno_native])

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to