All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfgang Grandegger <wg@grandegger.com>
To: Martin Kozusky <mkozusky@kkmicro.cz>, linux-can@vger.kernel.org
Subject: Re: CAN messages being lost on i.MX25 with flexcan - continued (was CAN messages being lost on i.MX25 with flexcan - 2012-04-19)
Date: Tue, 29 Oct 2013 15:30:08 +0100	[thread overview]
Message-ID: <526FC670.4000209@grandegger.com> (raw)
In-Reply-To: <526FACBD.4030605@kkmicro.cz>

On 10/29/2013 01:40 PM, Martin Kozusky wrote:
> Dne 29.10.2013 13:03, Wolfgang Grandegger napsal(a):
>> On 10/29/2013 11:46 AM, Martin Kozusky wrote:
...
>>> Hello Wolfgang,
>>> it seems that my architecture (arm/mx25 on 2.6.35 kernel) is missing
>>> HAVE_FUNCTION_GRAPH_TRACER, HAVE_DYNAMIC_FTRACE options so it won't be
>>> that easy, will be?
>>> Timestamps that ftrace is showing me are in 10 miliseconds resolution,
>>> that won't help me much :(

Are high resolution timers enabled in the kernel? Still, event tracing
could would already be useful.

>> Probably that version is to old for proper ftrace support. The 100us you
>> measured for alloc_can_skb() is worst case, right? What is the mean
>> value?
> 
> Now I checked again and logged every call (don't know if realy
> everything was logged but something was :) and I see that it is not
> 100usec, but only around 20usec (mean value - checked by eye). There
> were some very long calls (around 2ms!) that were puttings errors in my 
> sum/count formula (may be I should filter out calls longer that
> 200usec), with this error it was not 100usec, but almost 1ms (my value
> was only 32bit and was overflowing when I wrote it first time). So
> normally around 20usec, but with very long calls around 2-3 ms (looks
> like those long are periodic - each 6th - 8th call is much longer, but
> not all the time)

Are these long latencies related to the SDcard accesses? I think the
problem is the rather long latencies caused by other kernel activity. In
your case caused by the MMC (SDcard) driver, I assume. The Flexcan
controller does buffer up to 5 messages before loosing packets.

> But still with those 20usec call, there are many RX overflows, if I
> disable the call alloc_can_skb, there are no overflows and all is
> received (but still not processed further, because I don't have skb ... )

Could you run this test for a longer time? The probability is just lower
that RX gets interrupted for a longer time, I think.

I see a few approaches to overcome this problem:

- fix the MMC driver to cause less latency. If you are lucky this is
  already the case in more recent versions of the kernel.

- Use the "-rt" extension (CONFIG_PREEPMT_RT). It will then allow to
  adjust priorities of soft and hard irq threads.

- Do the RX processing in the interrupt context, which would require
  some custom modifications.

Wolfgang.


  reply	other threads:[~2013-10-29 14:30 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-24 13:48 CAN messages being lost on i.MX25 with flexcan - continued (was CAN messages being lost on i.MX25 with flexcan - 2012-04-19) Martin Kozusky
2013-10-25 12:59 ` Martin Kozusky
2013-10-25 17:58   ` Wolfgang Grandegger
2013-10-26 18:18     ` Martin Kozusky
2013-10-26 19:40       ` Wolfgang Grandegger
2013-10-29 10:46         ` Martin Kozusky
2013-10-29 12:03           ` Wolfgang Grandegger
2013-10-29 12:22             ` Wolfgang Grandegger
2013-10-29 12:49               ` Martin Kozusky
2013-10-29 12:54                 ` Gary Thomas
2013-10-29 13:00                   ` "Martin Kožuský [KK micro s.r.o.]"
2013-10-29 12:40             ` Martin Kozusky
2013-10-29 14:30               ` Wolfgang Grandegger [this message]
2013-10-30  8:43                 ` "Martin Kožuský [KK micro s.r.o.]"
2013-10-30  9:04                   ` Wolfgang Grandegger
2013-10-30  9:14                     ` "Martin Kožuský [KK micro s.r.o.]"
2013-10-30  9:27                       ` 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=526FC670.4000209@grandegger.com \
    --to=wg@grandegger.com \
    --cc=linux-can@vger.kernel.org \
    --cc=mkozusky@kkmicro.cz \
    /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.