All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfgang Grandegger <wg@domain.hid>
To: rolandtollenaar@domain.hid
Cc: Xenomai-help@domain.hid, EML users <ethercatmaster-users@domain.hid>
Subject: Re: [Xenomai-help] EML conflict with RTCAN? low_level_input	framebuilding failed.
Date: Mon, 13 Aug 2007 15:03:12 +0200	[thread overview]
Message-ID: <46C05690.2010108@domain.hid> (raw)
In-Reply-To: <46C05180.5090302@domain.hid>

Roland Tollenaar wrote:
> Hi
> 
>>> RTnet:rtskb allocation from real-time cache failed.
>>> Assertion failed! drivers/xenomai/can/rtcan_raw.c: rtcan_tx_push:168 
>>> dev->tx_socket=0 (3) TX skb still in use.
>>
>> 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:
> 
> root@domain.hid:~# 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
> 
> root@domain.hid:~# 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
> 
> root@domain.hid# 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
> 
> 
> root@domain.hid# 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.


  reply	other threads:[~2007-08-13 13:03 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-13  9:45 [Xenomai-help] EML conflict with RTCAN? low_level_input framebuilding failed Roland Tollenaar
2007-08-13 11:41 ` Wolfgang Grandegger
2007-08-13 12:41   ` Roland Tollenaar
2007-08-13 13:03     ` Wolfgang Grandegger [this message]
2007-08-13 13:11       ` Roland Tollenaar
2007-08-13 14:00       ` Roland Tollenaar
2007-08-13 14:51         ` [Xenomai-help] [Ethercatmaster-users] " Jan Kiszka
2007-08-13 15:55           ` Roland Tollenaar
2007-08-13 16:57             ` Jan Kiszka
2007-08-13 17:40               ` Roland Tollenaar
2007-08-13 17:57                 ` Jan Kiszka
2007-08-13 18:17                   ` Roland Tollenaar
2007-08-13 18:30                     ` Jan Kiszka
2007-08-14 13:56           ` Roland Tollenaar
2007-08-14 14:47             ` Klaas Gadeyne
2007-08-14 18:03               ` Roland Tollenaar
2007-08-14 19:17                 ` Jan Kiszka
2007-08-15  6:11                   ` Roland Tollenaar
2007-08-15  8:24                     ` Jan Kiszka
2007-08-15  8:37                       ` Roland Tollenaar
2007-08-15  9:50                       ` Roland Tollenaar
2007-08-15 10:30                         ` Wolfgang Grandegger
2007-08-15 10:30                           ` Roland Tollenaar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46C05690.2010108@domain.hid \
    --to=wg@domain.hid \
    --cc=Xenomai-help@domain.hid \
    --cc=ethercatmaster-users@domain.hid \
    --cc=rolandtollenaar@domain.hid \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.