Hi, All closing & shutting down has been perfected. There are no more errors on closing my application.
Yet the problem persists very explicitly. Rtcan and EML can run separately and never throw up any errors. As soon as they are used in combination then in 50% of the cases the framebuilding in EML gets messed up (as per the error message) There is definitely something between the two that is not right. >>>> RTnet:rtskb allocation from real-time cache failed. Could I get some tips as to what I can do about this? I seem to get it even when I do not have rtcan activity running in my application and (because I am clueless) I would like to prevent this message which may signify the root of the problem. Regards, Roland. >>> Hm, this is not supposed to happen. >> Which of the two? > > The RTCAN assertion. Well, in fact, it can happen when the device goes > bus-off or is stopped while a TX message is pending. The next message > after (re-)start will the trigger this message. This is a bug but it > should _not_ harm (either I remove the assertion or I reset properly the > value of dev->tx_socket). > > The first one should be pretty clear. The rtskb pool seems to be exhausted. > >> >>> Can you show the output of /proc/rtcan/devices and >>> /proc/rtcan/sockets before and after the problem showed up. >> >> Below is an accumulation of what I think you are asking for. I am not >> convinced that the rtskb allocation failed message is serious, as you >> will see from the syslog and my comment above it only takes place when >> i close my application. Although I try to close all connections neatly >> certain threads still seem to be busy. See the errors I get on closing >> the application. >> >> App running with no problem: >> >> [EMAIL PROTECTED]:~# cat /proc/rtcan/sockets >> fd Name___________ Filter ErrMask RX_Timeout_ns TX_Timeout_ns >> RX_BufFull TX_Lo >> 2 rtcan2 1 0x00000 infinite infinite 0 1 >> 0 rtcan2 -1 0x00000 infinite infinite 0 1 >> >> [EMAIL PROTECTED]:~# cat /proc/rtcan/devices >> Name___________ _Baudrate State___ TX_Counter RX_Counter ____Errors >> rtcan0 undefined stopped 0 0 0 >> rtcan1 undefined stopped 0 0 0 >> rtcan2 1000000 active 16321347 27633347 2367116 >> >> >> App running with messages failing >> >> [EMAIL PROTECTED]:/var/log# cat /proc/rtcan/sockets >> fd Name___________ Filter ErrMask RX_Timeout_ns TX_Timeout_ns >> RX_BufFull TX_Lo >> 2 rtcan2 1 0x00000 infinite infinite 0 1 >> 0 rtcan2 -1 0x00000 infinite infinite 0 1 >> >> >> [EMAIL PROTECTED]:/var/log# cat /proc/rtcan/devices >> Name___________ _Baudrate State___ TX_Counter RX_Counter ____Errors >> rtcan0 undefined stopped 0 0 0 >> rtcan1 undefined stopped 0 0 0 >> rtcan2 1000000 active 16850473 28691571 2367116 > > Oops, that much errors? > >> cat /var/syslog shows that the error only seems to come up when the >> application closes. >> >> Only occurs on closing the application >> Aug 13 13:01:28 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> Aug 13 13:02:14 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> Aug 13 14:02:34 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> Aug 13 14:03:36 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> Aug 13 14:18:39 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> Aug 13 14:19:33 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> Aug 13 14:19:58 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> Aug 13 14:21:27 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> Aug 13 14:22:10 (none) kernel: RTnet: rtskb allocation from real-time >> cache failed >> >> >> When I close the application I get these errors >> >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed >> rt_dev_recv: aborted because socket was closed > > You should handle this error properly. > >> rt_dev_ioctl: Bad file descriptor >> Waiting for tasks to stop....low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_output(): Cannot Send >> low_level_txandrx: failed: MAX_TRIES_TX: Giving up >> DLL::txandrx() Error >> PD_Buffer: Error sending PD >> txandrx failed: >> >> >> Does this shed any light on the matter? > > Hm, seems that your shutdown is not implemented properly. > > Wolfgang. > _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
