linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wolfgang Grandegger <wg@grandegger.com>
To: Andri Yngvason <andri.yngvason@marel.com>
Cc: linux-can@vger.kernel.org, Marc Kleine-Budde <mkl@pengutronix.de>
Subject: Re: flexcan napi poll and error frames
Date: Fri, 24 Oct 2014 12:43:36 +0200	[thread overview]
Message-ID: <dcfa90aff443fa94ea617a9eabb97898@grandegger.com> (raw)
In-Reply-To: <544A2943.1080808@marel.com>

On Fri, 24 Oct 2014 10:26:11 +0000, Andri Yngvason
<andri.yngvason@marel.com> wrote:
> Hi,
> 
> I was running some tests on my patches when I noticed the following:
> If I have 2 flexcan devices on the bus, each sending to the bus using
> cangen,and then I disconnect the cable to one of them, that device
> will enter"error-warning" state, but it will not continue on to
> "error-passive" as itshould.
> 
> However, when I reconnect the cable, I get the "error-passive" message
> followed by an "error-warning" and eventually "back-to-error-active".

Yes, I think I observed that behaviour as well as you can see here:
https://gitorious.org/linux-can/wg-linux-can-next/commit/bd3acb12dbb9551541d28ae8766c154d3cf6ed57.patch

> Notice the time differences:
> root@(none):~# candump -td -e can0,0~0,#FFFFFFFFFF
>  (000.000000)  can0  20000004   [8]  00 08 00 00 00 00 00 00  
ERRORFRAME
>         controller-problem{tx-error-warning}
>  (006.493209)  can0  20000004   [8]  00 40 00 00 00 00 00 00  
ERRORFRAME
>         controller-problem{back-to-error-active}
>  (002.701331)  can0  20000004   [8]  00 08 00 00 00 00 00 00  
ERRORFRAME
>         controller-problem{tx-error-warning}
>  (006.498567)  can0  20000004   [8]  00 20 00 00 00 00 00 00  
ERRORFRAME
>         controller-problem{tx-error-passive}
>  (000.013915)  can0  20000004   [8]  00 08 00 00 00 00 00 00  
ERRORFRAME
>         controller-problem{tx-error-warning}
>  (001.990695)  can0  20000004   [8]  00 40 00 00 00 00 00 00  
ERRORFRAME
>         controller-problem{back-to-error-active}
> 
> 
> I suspect that the problem is that the driver doesn't receive any
> interruptsother than the one for "error-passive" and so things
> won't "weigh" enoughfor napi. There seems to be some truth in this
> conjecture, because when Itried setting the napi weight to 1, the
> message got through.

Hm, why should it depend on NAPI. It does not delay messages for
a long time. I think the problem is that the state change is not
signalled my an interrupt but some time later when another event
(message) occurs.
 
> Another thing that I found peculiar was that I had to be sending on
> both devices for the error states to change to anything other than
> "error-warning".

Well, the error reporting on the SJA1000 is perfect... on all other
CAN controllers it's more or less worse.

Wolfgang.


  reply	other threads:[~2014-10-24 10:43 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-24 10:26 flexcan napi poll and error frames Andri Yngvason
2014-10-24 10:43 ` Wolfgang Grandegger [this message]
2014-10-24 10:55   ` Andri Yngvason
2014-10-24 12:33     ` Wolfgang Grandegger
2014-10-24 14:39       ` Andri Yngvason
2014-10-24 16:04         ` Andri Yngvason
2014-10-24 16:36           ` Steffen Rose
2014-10-24 17:40             ` Andri Yngvason
2014-10-27  7:29               ` David Jander
     [not found]                 ` <544E2C19.1050608@marel.com>
2014-10-27 14:01                   ` David Jander
2014-10-27 15:53                     ` Andri Yngvason
2014-10-24 19:08           ` Wolfgang Grandegger

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=dcfa90aff443fa94ea617a9eabb97898@grandegger.com \
    --to=wg@grandegger.com \
    --cc=andri.yngvason@marel.com \
    --cc=linux-can@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).