Thread (15 messages) 15 messages, 3 authors, 2016-06-10

Re: Flooding AT91_CAN peripheral with messages causes it to stop receiving any more messages

From: Wolfgang Grandegger <hidden>
Date: 2016-05-02 13:53:47

Hello Alexander,

Am 02.05.2016 um 08:23 schrieb Alexander Stein:
On Tuesday 05 April 2016 14:10:48, Amr Bekhit wrote:
quoted
I working on a board based on the AT91SAM9X25 SoC and I'm using
integrated CAN peripheral. I seem to have run into an issue whereby
sending lots of messages very rapidly in quick succession causes the
CAN peripheral to then stop receiving any messages at all. The only
way to bring it back to a functional state is to bring the network
interface down and then back up again.
[...]
I then start sending CAN messages to the unit using a PCAN-USB adapter
that is plugged into a test Linux PC. After bringing up the CAN
interface on the test PC, messages can be continuously sent using the
following bash script:
[...]
I then leave the system running for some time (1.5 hours typically,
may vary), periodically running ifconfig can0 to check to see if new
packets are being received. After a while, the can interface will stop
receiving new packets, even though the test PC is still transmitting
them. Stopping and restarting the CAN transmissions on the test PC
does not solve the problem. The interface does not appear to be in the
bus off state, as shown by running the following:
That sounds a bit like my getting stuck problem in http://linux-can.vger.kernel.narkive.com/bBQqK84G/resend-patch-net-can-at91-can-c-decrease-likelyhood-of-rx-overruns#post2

The patch post1 at least keeps the driver working. Although I don't know what
has changed in at91_can meanwhile.
Thanks for pointing me to that patch. It still applies to Linux 4.1 with 
some minor fixes. Amr, could you please give it a try. Please let me 
know if you need help.

Anyway, I think the driver should not hang even in case of overflows. I 
will have a closer look later this week.

Wolfgang.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help