All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Stein <alexander.stein@systec-electronic.com>
To: David Jander <david@protonic.nl>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>,
	Wolfgang Grandegger <wg@grandegger.com>,
	linux-can@vger.kernel.org
Subject: Re: [PATCH v5] can: flexcan: Re-write receive path to use MB queue instead of FIFO
Date: Wed, 01 Oct 2014 09:11:37 +0200	[thread overview]
Message-ID: <1952804.jDdF5Ah5L9@ws-stein> (raw)
In-Reply-To: <20141001082932.7f3d69d4@archvile>

On Wednesday 01 October 2014 08:29:32, David Jander wrote:
> On Tue, 30 Sep 2014 09:43:33 +0200
> Alexander Stein <alexander.stein@systec-electronic.com> wrote:
> 
> > Hello David,
> > 
> > On Tuesday 30 September 2014 09:13:55, David Jander wrote:
> > > > > Nevertheless, emptying the FIFO in the IRQ handler will still be a big
> > > > > improvement, since the only thing that could still kill the driver and
> > > > > cause message loss is interrupt latency, which normally should not be
> > > > > so high. NAPI scheduling latency is probably much worse, and this is
> > > > > the biggest issue with the current driver.
> > > > > 
> > > > > Any suggestion on what to do?
> > > > 
> > > > Get rid of NAPI and use RT-preempt with proper priorities :) But joke
> > > > aside, which workload does increase the NAPI latency so much, an overrun
> > > > occurs? I tested CAN bursts on i.MX35 without any loss.
> > > 
> > > I have seen overruns on an i.MX6 at only 250kbaud receiving back-to-back
> > > messages of 1 byte long. I usually test bursts of 10000 messages or more.
> > 
> > Mh, that's odd. I have run several tests a 1MBaud on an i.MX35 with 2 CAN
> > nodes attached each sending bursts of 250 message every 200ms with a total
> > message count of 250000 each. No overruns, losses or message misordering.
> 
> Do you have any other system-load? Have you tried something like flood-pinging
> the ethernet port at the same time?
> Your results sound very impressive. If messages are really sent back-to-back,
> then there's about 300 microseconds of permissible latency from interrupt to
> NAPI... how can you not get over that limit at least once?
> You are not running PREEMPT_RT, do you?

It has been a long time ago, but IIRC there was no load despite CAN reception (!), no messages were sent. I'm not sure if I ever ran this test on that i.MX35 without PREEMPT_RT. Currently I don't have access to this hardware, so I cannot use it on a non-rt kernel.

> > > Things get a lot worse if you also happen to have kernel messages output
> > > to a serial console and plug in an USB device (because there are printk's
> > > in the EHCI driver inside spin locks with interrupts disabled!!), but
> > > that's a different story.
> > 
> > Eek. Well, adding quiet to the command line avoids that. IIRC there is even
> > a Kconfig option to disable that announce to kernel log.
> 
> Yes, I know, but what should one expect on a non-RT system, with all sorts of
> drivers (SPI, I2C, NAND, SDHCI, Ethernet,...) doing their work?

Sure, each subsystem will add latency. I don't say your intention is wrong.

BTW: You posted a patch for at91_can in June (Din't get opportunity to try it yet), where you use a kfifo to accomplish the same, why not here?

Best regards,
Alexander
-- 
Dipl.-Inf. Alexander Stein

SYS TEC electronic GmbH
Am Windrad 2
08468 Heinsdorfergrund
Tel.: 03765 38600-1156
Fax: 03765 38600-4100
Email: alexander.stein@systec-electronic.com
Website: www.systec-electronic.com
 
Managing Director: Dipl.-Phys. Siegmar Schmidt
Commercial registry: Amtsgericht Chemnitz, HRB 28082


  reply	other threads:[~2014-10-01  7:10 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-29 12:52 [PATCH v5] can: flexcan: Re-write receive path to use MB queue instead of FIFO David Jander
2014-09-29 13:29 ` Alexander Stein
2014-09-29 14:39   ` David Jander
2014-09-29 15:02     ` Alexander Stein
2014-09-30  7:13       ` David Jander
2014-09-30  7:43         ` Alexander Stein
2014-10-01  6:29           ` David Jander
2014-10-01  7:11             ` Alexander Stein [this message]
2014-10-01  7:15               ` Marc Kleine-Budde
2014-10-01  8:29                 ` Alexander Stein
2014-10-01  9:07                   ` David Jander
2014-10-01  9:19                     ` Alexander Stein
2014-10-01  9:34                       ` David Jander
2014-10-01  9:58                         ` Marc Kleine-Budde
2014-10-06  7:28                           ` David Jander
2014-10-06 10:00                             ` Marc Kleine-Budde
2014-10-06 11:17                               ` David Jander
2014-10-07  9:30                                 ` [RFC PATCH 1/2] can: rx-fifo: Increase MB size limit from 32 to 64 David Jander
2014-10-07  9:30                                   ` [RFC PATCH 2/2] can: rx-fifo: Add support for IRQ readout and NAPI poll David Jander
2014-10-07 13:17                                   ` [RFC PATCH 1/2] can: rx-fifo: Increase MB size limit from 32 to 64 Marc Kleine-Budde
2014-10-07 13:27                                     ` David Jander
2014-10-07 14:18                                       ` Marc Kleine-Budde
2014-10-08  9:08                               ` [PATCH v5] can: flexcan: Re-write receive path to use MB queue instead of FIFO David Jander
2014-10-08  9:56                                 ` Marc Kleine-Budde
2014-10-08 10:36                                   ` Alexander Stein
2014-10-08 10:43                                     ` Marc Kleine-Budde
2014-10-08 14:01                                   ` David Jander
2014-10-09 10:37                                     ` David Jander
2014-10-01  9:19               ` David Jander

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=1952804.jDdF5Ah5L9@ws-stein \
    --to=alexander.stein@systec-electronic.com \
    --cc=david@protonic.nl \
    --cc=linux-can@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=wg@grandegger.com \
    /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.