All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gianluca <gmattiroli@midsx.ch>
To: linux-can@vger.kernel.org
Subject: socketCAN mcp2515 - rx buffer overflow
Date: Thu, 8 Mar 2012 13:09:29 +0000 (UTC)	[thread overview]
Message-ID: <loom.20120308T140608-84@post.gmane.org> (raw)

Hi All,
I'm using an embedded Armadeus evaluation board - apf51 - with the mcp2515 CAN 
controller (via spi) and linux 2.6.38.8.
As a preliminar test I tried to dump all the traffic on our CANbus running at 
500Kb/s. 
Apparently, everything works fine, I can see messages being captured without 
problems.
But if I enable the error reporting I can see different ERRORFRAME messages to 
be reported ('rx buffer overflow'). 

This is how I configure the interface:

modprobe can
modprobe can_dev
modprobe can_raw
modprobe mcp251x
ip link set can0 up type can bitrate 500000
ip link set can0 txqueuelen 20

This is the operation detail:

$ ip -details -statistics link show can0
4: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN qlen 20
    link/can 
    can state ERROR-ACTIVE restart-ms 0 
    bitrate 500000 sample-point 0.875 
    tq 125 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
    mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1
    clock 8000000
    re-started bus-errors arbit-lost error-warn error-pass bus-off
    0          0          0          0          0          0         
    RX: bytes  packets  errors  dropped overrun mcast   
    13086      2308     213     0       213     0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      

dmesg output:

can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
CAN device driver interface
can: raw protocol (rev 20090105)
PM: Adding info for No Bus:can0
mcp251x spi1.0: probed
mcp251x spi1.0: CNF: 0x00 0xb5 0x01
PM: Adding info for No Bus:vcs3
PM: Adding info for No Bus:vcsa3
eth0: no IPv6 routers present

This is an example of candump results:

 candump -ta -d -e any,0:0,#FFFFFFFF
 (125.351573)  can0     15004  [2] 00 00
 (126.193767)  can0    400060  [4] FF FF 00 00
 (126.194163)  can0    600060  [4] FF FF 00 00
 (126.194469)  can0  20000004  [8] 00 01 00 00 00 00 00 00   ERRORFRAME
        controller-problem{rx-overflow}
 (126.194743)  can0    E00060  [4] FF FF 00 00
 (126.195018)  can0   1200060  [4] FF FF 00 00
 (126.195323)  can0   1800060  [4] FF FF 00 00
 (126.195567)  can0  20000004  [8] 00 01 00 00 00 00 00 00   ERRORFRAME
        controller-problem{rx-overflow}
 (126.195842)  can0      5067  [6] 01 00 00 00 00 00
 (126.196086)  can0   1A00060  [4] FF FF 00 00
 (126.196361)  can0  20000004  [8] 00 01 00 00 00 00 00 00   ERRORFRAME
        controller-problem{rx-overflow}
 (126.196635)  can0    200060  [4] FF FF 00 00
 (126.196818)  can0      D067  [6] 01 00 00 00 00 00
 (126.197093)  can0      F066  [6] 01 00 00 00 00 00
 (126.197337)  can0  20000004  [8] 00 01 00 00 00 00 00 00   ERRORFRAME
        controller-problem{rx-overflow}
 (126.197673)  can0      7067  [6] 01 00 00 00 00 00
 (126.197978)  can0      B067  [6] 01 00 00 00 00 00
 (126.198253)  can0     19066  [6] 01 00 00 00 00 00
 (126.198558)  can0     1B066  [6] 01 00 00 00 00 00
 (126.198894)  can0     11066  [6] 01 00 00 00 00 00
 (126.199168)  can0      3067  [6] 01 00 00 00 00 00
 (126.199443)  can0  20000004  [8] 00 01 00 00 00 00 00 00   ERRORFRAME
        controller-problem{rx-overflow}
 (126.199718)  can0     17066  [6] 01 00 00 00 00 00
 (126.199931)  can0     1D066  [6] 01 00 00 00 00 00
 (126.200328)  can0     1F066  [6] 01 00 00 00 00 00
^C$ 

Increasing the buffer size was not possible:

$ candump -r 200000 -ta -d -e any,0:0,#FFFFFFFF
The socket receive buffer size was adjusted due to /proc/sys/net/core/rmem_max.

$ cat /proc/sys/net/core/rmem_max 
108544

Thanks in advance,
Gianluca


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

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-08 13:09 Gianluca [this message]
2012-03-08 14:11 ` socketCAN mcp2515 - rx buffer overflow Marc Kleine-Budde
2012-03-08 14:35   ` Gianluca

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=loom.20120308T140608-84@post.gmane.org \
    --to=gmattiroli@midsx.ch \
    --cc=linux-can@vger.kernel.org \
    /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.