On 01/01/2013 05:09 AM, [email protected] wrote: > When I try to open an RTDM serial device under Xenomai-2.6.2/Linux 3.4.6 > (Ubuntu 12.04), the call appears to succeed, but I get the following > output in /var/log/kern.log: > > kernel: [ 109.250736] I-pipe: Detected stalled head domain, probably > caused by a bug. > kernel: [ 109.250737] A critical section may have been left > unterminated. > kernel: [ 109.250743] Pid: 3585, comm: serial_tx Not tainted > 3.4.6-xenomai-2.6.2 #1 > kernel: [ 109.250745] Call Trace: > kernel: [ 109.250754] [<ffffffff810c8a5e>] ipipe_root_only+0xbe/0x130 > kernel: [ 109.250758] [<ffffffff81104aa0>] ? irq_vfile_show+0x570/0x570 > kernel: [ 109.250762] [<ffffffff810c8f56>] ipipe_request_irq+0x36/0x100 > kernel: [ 109.250765] [<ffffffff810cb753>] ipipe_virtualize_irq+0x13/0x30 > kernel: [ 109.250770] [<ffffffff810ffe80>] rthal_irq_request+0x30/0x40 > kernel: [ 109.250772] [<ffffffff811061cb>] xnintr_attach+0x2fb/0x460 > kernel: [ 109.250777] [<ffffffff8119e572>] rtdm_irq_request+0x32/0x70 > kernel: [ 109.250782] [<ffffffff81594f01>] rt_16550_open+0x161/0x380 > kernel: [ 109.250785] [<ffffffff8119b681>] __rt_dev_open+0xb1/0x140 > kernel: [ 109.250789] [<ffffffff811a2738>] sys_rtdm_open+0x78/0xa0 > kernel: [ 109.250792] [<ffffffff8111ed00>] hisyscall_event+0x220/0x3b0 > kernel: [ 109.250796] [<ffffffff810cba4f>] ipipe_syscall_hook+0x5f/0xa0 > kernel: [ 109.250799] [<ffffffff810c9551>] > __ipipe_notify_syscall+0x131/0x2e0 > kernel: [ 109.250804] [<ffffffff81020b46>] __ipipe_syscall_root+0x46/0x160 > kernel: [ 109.250808] [<ffffffff813a679a>] > __ipipe_syscall_root_thunk+0x35/0x67 > kernel: [ 109.250813] [<ffffffff816c6cf7>] ? > system_call_after_swapgs+0x54/0x6d > kernel: [ 109.250815] ------------[ cut here ]------------ > kernel: [ 109.250818] WARNING: at include/linux/ipipe_debug.h:88 > xnintr_attach+0x41f/0x460() > kernel: [ 109.250820] Hardware name: Precision WorkStation T3400 > kernel: [ 109.250822] Modules linked in: bnep rfcomm bluetooth > binfmt_misc dm_crypt snd_hda_codec_analog snd_hda_intel snd_hda_codec > snd_hwde > snd_seq_midi_event snd_seq snd_timer snd_seq_device snd soundcore > usbhid x38_edac hid edac_core snd_page_alloc coretemp psmouse mac_hid dcdba > t_pc lp parport reiserfs nouveau ttm drm_kms_helper drm i2c_algo_bit > mxm_wmi video wmi tg3 > kernel: [ 109.250874] Pid: 3585, comm: serial_tx Not tainted > 3.4.6-xenomai-2.6.2 #1 > kernel: [ 109.250876] Call Trace: > kernel: [ 109.250880] [<ffffffff8103cc0f>] warn_slowpath_common+0x7f/0xc0 > kernel: [ 109.250883] [<ffffffff8103cc6a>] warn_slowpath_null+0x1a/0x20 > kernel: [ 109.250886] [<ffffffff811062ef>] xnintr_attach+0x41f/0x460 > kernel: [ 109.250889] [<ffffffff8119e572>] rtdm_irq_request+0x32/0x70 > kernel: [ 109.250892] [<ffffffff81594f01>] rt_16550_open+0x161/0x380 > kernel: [ 109.250896] [<ffffffff8119b681>] __rt_dev_open+0xb1/0x140 > kernel: [ 109.250899] [<ffffffff811a2738>] sys_rtdm_open+0x78/0xa0 > kernel: [ 109.250902] [<ffffffff8111ed00>] hisyscall_event+0x220/0x3b0 > kernel: [ 109.250905] [<ffffffff810cba4f>] ipipe_syscall_hook+0x5f/0xa0 > kernel: [ 109.250908] [<ffffffff810c9551>] > __ipipe_notify_syscall+0x131/0x2e0 > kernel: [ 109.250912] [<ffffffff81020b46>] __ipipe_syscall_root+0x46/0x160 > kernel: [ 109.250915] [<ffffffff813a679a>] > __ipipe_syscall_root_thunk+0x35/0x67 > kernel: [ 109.250918] [<ffffffff816c6cf7>] ? > system_call_after_swapgs+0x54/0x6d > kernel: [ 109.250921] ---[ end trace b86b12c8ae154342 ]--- > > This only happens the first time I run my application. Despite these > messages, my application code seems to work for the most part. I am having > a few high latencies that may be associated with this, or may be due to > something else entirely. Regardless, the messages seem to indicate that > something is not right. I get similar behavior using a Xenomai build I made > in mid October using the ipipe-core 3.4 branch and xenomai 2.6 git branch. > I get the same results on several Ubuntu 12.04 machines. Here is a simple > test program that triggers the sort of output described above: > > /* Standard includes */ > #include <stdio.h> > #include <errno.h> > #include <error.h> > #include <stdlib.h> /* Exit status macros and atexit */ > #include <sys/mman.h> /* Memory management (mlockall) */ > > #include <rtdm/rtserial.h> > > /* Main program */ > int main(void) > { > int err; > int fd; > > /* Disable paging for this program's memory */ > err = mlockall(MCL_CURRENT | MCL_FUTURE); > if (err) > { > error(EXIT_FAILURE, errno, > "could not disable memory paging for this program"); > } > > /* Open the serial port */ > fd = rt_dev_open("rtser0", 0); > if (fd < 0) > { > error(EXIT_FAILURE, errno, > "could not open serial device"); > } > > printf("open succeeded\n"); > > /* Close the serial port */ > rt_dev_close(fd); > > return 0; > } > > makefile flags: > CFLAGS := $(shell xeno-config --skin=native --cflags) > LDLIBS := -lrtdm $(shell xeno-config --skin=native --ldflags) > > If I try to compile and run this same test program on an older machine > running Xenomai 2.5.5.2 / Linux 2.6.32.20 (Ubuntu 10.04), I do not have > any issues. I also built a set of Xenomai 2.6.1 / Linux 3.2.21 packages > for this older system and I don't seem to see the problem there either. > I had a package build issue (too old of a version of some dpkg build tool) > when trying to build the latest Xenomai/Linux combo under 10.04, so I > didn't test that configuration on the older machine. The newer machines > have hardware that is not supported in older Xenomai/Linux configurations, > so I haven't been able to do an apples-to-apples comparison to verify if > the behavior is due to a change in the Xenomai version. Any help in > deciphering what's going on, or some next steps in debugging would be > appreciated.
This is a known issue, for a proposed fix, see: http://www.xenomai.org/pipermail/xenomai/2012-October/026566.html Whether we are merging this patch is still not sure. > > Thanks for all the fine work in putting together this latest release. I am wondering whether you are ironical, a new release should happen shortly to fix all the issues which were forgotten. -- Gilles. _______________________________________________ Xenomai mailing list [email protected] http://www.xenomai.org/mailman/listinfo/xenomai
