All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] FW: xeno_can: socket buffer overflow for fd=0
@ 2008-02-28 12:54 Urs.Eichholzer
  2008-02-28 13:16 ` Wolfgang Grandegger
  0 siblings, 1 reply; 2+ messages in thread
From: Urs.Eichholzer @ 2008-02-28 12:54 UTC (permalink / raw)
  To: xenomai

[-- Attachment #1: Type: text/plain, Size: 1445 bytes --]

Dear Xenomai Help
 
The write to CAN is fast and have no problem... this can  be performed
fast and even in microsecond  resolution 

The read to CAN is working... but not fast enough as we expect it should
be reading the network... The Xenomai CAN  can  read the network
transfers in seconds and  about 40 milliseconds but once the read is
performed on a much faster rate... the Xenomai CAN is having errors
already... The message is:
xeno_can: socket buffer overflow for fd=0

Something like this would be printed on screen and the system scrolls
with this message again and again.

Here are some of the remedies I tried but still this problem occurs:

1.) Increase the buffer size for receive in the menuconfig from 1024 to
4096, same problem.

2.) Link the CAN drivers statically to the OS, same problem.

3.) Link the CAN drivers with dynamic loading of driver, same problem.

4.) Create my own test program, same problem

5.) Create my own xenomai task based on how a task should be made, same
problem...


I have investigated this and it is coming from the rtdm file of
Xenomai... when it detects  a low buffer resource, it will  trigger this
error. But allocating more buffer space to 4096 will not solve this
problem. On my investigation, the problem is buried deep in the Xenomai
itself for the CAN driver and RTCAN socket. The file which is
responsible for this is involved in the Xenomai RTCAN driver support.
 
Best Regards
 
Urs
 

[-- Attachment #2: Type: text/html, Size: 6048 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Xenomai-help] FW: xeno_can: socket buffer overflow for fd=0
  2008-02-28 12:54 [Xenomai-help] FW: xeno_can: socket buffer overflow for fd=0 Urs.Eichholzer
@ 2008-02-28 13:16 ` Wolfgang Grandegger
  0 siblings, 0 replies; 2+ messages in thread
From: Wolfgang Grandegger @ 2008-02-28 13:16 UTC (permalink / raw)
  To: Urs.Eichholzer; +Cc: xenomai

Hi Urs,

Urs.Eichholzer wrote:
> Dear Xenomai Help
> 
>  
> 
> The write to CAN is fast and have no problem... this can  be performed
> fast and even in microsecond  resolution
> 
> The read to CAN is working... but not fast enough as we expect it should
> be reading the network... The Xenomai CAN  can  read the network
> transfers in seconds and  about 40 milliseconds but once the read is
> performed on a much faster rate... the Xenomai CAN is having errors
> already... The message is:
> xeno_can: socket buffer overflow for fd=0
> 
> Something like this would be printed on screen and the system scrolls
> with this message again and again.
> 
> Here are some of the remedies I tried but still this problem occurs:
> 
> 1.) Increase the buffer size for receive in the menuconfig from 1024 to
> 4096, same problem.
> 
> 2.) Link the CAN drivers statically to the OS, same problem.
> 
> 3.) Link the CAN drivers with dynamic loading of driver, same problem.
> 
> 4.) Create my own test program, same problem
> 
> 5.) Create my own xenomai task based on how a task should be made, same
> problem...
> 
> 
> I have investigated this and it is coming from the rtdm file of 
> Xenomai... when it detects  a low buffer resource, it will  trigger this
> error. But allocating more buffer space to 4096 will not solve this
> problem. On my investigation, the problem is buried deep in the Xenomai
> itself for the CAN driver and RTCAN socket. The file which is
> responsible for this is involved in the Xenomai RTCAN driver support.

If a RT application does not read the CAN messages from the RX socket
buffer fast enough, such socket overflows can happen. Check if your
application switches (accidentally) to secondary mode.

Do you use sockets just for sending messages? Then it helps to disable
the reception of messages by using sendto

http://www.rts.uni-hannover.de/xenomai/lxr/source/src/utils/can/rtcansend.c#085

or disable the receive filter:

http://www.rts.uni-hannover.de/xenomai/lxr/source/src/utils/can/rtcansend.c#252

It also helps to disable the CAN debugging because the printk's provoke
further buffer overflows. You can also see the socket buffer overflows
in /proc/rtcan/sockets.

Wolfgang.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-02-28 13:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-28 12:54 [Xenomai-help] FW: xeno_can: socket buffer overflow for fd=0 Urs.Eichholzer
2008-02-28 13:16 ` Wolfgang Grandegger

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.