linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
To: "Joakim Tjernlund"
	<Joakim.Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>,
	"'Peter Korsgaard'"
	<jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org>
Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: Performance of spi_mpc83xx.c sucks.
Date: Thu, 20 Nov 2008 20:10:30 -0800	[thread overview]
Message-ID: <200811202010.30845.david-b@pacbell.net> (raw)
In-Reply-To: <002f01c933ab$4bee9180$e3cbb480$@Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>

On Tuesday 21 October 2008, Joakim Tjernlund wrote:
> 
> > Maybe it indeed makes more sense to use polling for high bitrates.
> 
> The cpu can't keep up at ~10MHz for me, but even at much small Hz
> the poll is significantly faster, the IRQ overhead seems huge or is it 
> something else?

I'd guess IRQ-per-word is a bad design policy ... If you assume 10 MHz
SPI clock, and (keeping math simple) a 10-bit word, then a polling loop
of 1 MHz -- 1 usec/loop -- is needed to keep up.

Regardless of latency, per-IRQ overheads (save context, call handler,
do its work, return, restore) are not always below 1 usec...


> The question is if the poll code I sent is good, even for longer transfers?
> Perhaps some sort of LOWLAT flag could be used for transfers that really need them?

So long as you do the polling with IRQs enabled, I'd keep it simple and
just always poll.  YMMV of course, but most devices seem to prefer more
like 10 MHz clocks than 1 MHz ones.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

  parent reply	other threads:[~2008-11-21  4:10 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-21 16:19 Performance of spi_mpc83xx.c sucks Joakim Tjernlund
     [not found] ` <1224605947.14078.17.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
2008-10-21 18:14   ` Peter Korsgaard
     [not found]     ` <877i81rf2g.fsf-uXGAPMMVk8amE9MCos8gUmSdvHPH+/yF@public.gmane.org>
2008-10-21 18:31       ` Joakim Tjernlund
     [not found]     ` <002f01c933ab$4bee9180$e3cbb480$@Tjernlund@transmode.se>
     [not found]       ` <002f01c933ab$4bee9180$e3cbb480$@Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>
2008-11-21  4:10         ` David Brownell [this message]
     [not found]           ` <200811202010.30845.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-12-02 15:20             ` Joakim Tjernlund
     [not found]               ` <1228231118.9867.108.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
2008-12-02 16:23                 ` Peter Korsgaard
     [not found]                   ` <87d4gav94h.fsf-uXGAPMMVk8amE9MCos8gUmSdvHPH+/yF@public.gmane.org>
2008-12-02 18:20                     ` Joakim Tjernlund
     [not found]                   ` <040001c954aa$a00e3930$e02aab90$@Tjernlund@transmode.se>
     [not found]                     ` <040001c954aa$a00e3930$e02aab90$@Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>
2008-12-02 18:31                       ` David Brownell
     [not found]                         ` <200812021031.26711.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-12-02 18:58                           ` Joakim Tjernlund
     [not found]                         ` <041201c954af$f32ad3d0$d9807b70$@Tjernlund@transmode.se>
     [not found]                           ` <041201c954af$f32ad3d0$d9807b70$@Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>
2008-12-02 20:46                             ` David Brownell
     [not found]                               ` <200812021246.27884.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-12-02 22:12                                 ` Joakim Tjernlund
     [not found]                               ` <041e01c954cb$15c0f030$4142d090$@Tjernlund@transmode.se>
     [not found]                                 ` <041e01c954cb$15c0f030$4142d090$@Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>
2008-12-03  8:56                                   ` David Brownell
2008-12-02 18:17                 ` David Brownell
     [not found]                   ` <200812021017.11880.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-12-02 18:25                     ` Joakim Tjernlund
     [not found]                   ` <040601c954ab$554cff20$ffe6fd60$@Tjernlund@transmode.se>
     [not found]                     ` <040601c954ab$554cff20$ffe6fd60$@Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>
2008-12-02 19:10                       ` David Brownell

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=200811202010.30845.david-b@pacbell.net \
    --to=david-b-ybekhbn/0ldr7s880joybq@public.gmane.org \
    --cc=Joakim.Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org \
    --cc=jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org \
    --cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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 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).