All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trent Piepho <tpiepho-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Peter Korsgaard <peter-+2lRwdCCLRT2eFz/2MeuCQ@public.gmane.org>,
	balbi-l0cyMroinI0@public.gmane.org,
	"linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org"
	<spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
	Sourav Poddar <sourav.poddar-l0cyMroinI0@public.gmane.org>,
	Brian Norris
	<computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Subject: Re: [PATCH 1/3] spi/qspi: Add memory mapped read support.
Date: Thu, 10 Oct 2013 16:53:46 -0700	[thread overview]
Message-ID: <CA+7tXigijA6ASOiHkRDz45PTruv2vwYJu0UUWz0hvKr0=zwu5w@mail.gmail.com> (raw)
In-Reply-To: <20131010101052.GF21581-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>

On Thu, Oct 10, 2013 at 3:10 AM, Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
> On Wed, Oct 09, 2013 at 07:27:11PM -0700, Trent Piepho wrote:
>
>> I've found that the SPI layer adds rather a lot of overhead to SPI
>> transactions. It appears to come mostly from using another thread to
>> run the queue. A fast SPI message of a few dozen bytes ends up having
>> more overhead from the SPI layer than the time it takes the driver to
>> do the actual transfer.
>
> Yeah, though of course at the minute the implementation of that thread
> is pretty much up to the individual drivers which isn't triumph - and
> the quality of implementation does vary rather a lot. I'm currently
> working on trying to factor more of this out, hopefully then it'll be
> easier to push out improvements. It may be nice to be able to kick off
> the first DMA transfer from within the caller for example.

I did testing with the mxs driver, which uses transfer_one
_message and the spi core queue pumping code.  For small messages the
overhead of queuing work to the pump_messages queue and waiting for
completion is rather more than the time the actual transfer takes.  Which
makes using a kthread rather pointless.  Part of the problem could be the
high context switch cost for ARMv5.

>> So memory mapped mode via some kind of SPI hack seems like a bad
>> design. All the SPI layer overhead and you don't get DMA. Memory
>> mapped SPI could be a win, but I think you'd need to do it at the MTD
>> layer with a mapping driver that could read the mmapped SPI flash
>> directly.
>
> Yes, exactly and even then I'm not convinced that it's going to be much
> advantage for anything except small transfers without DMA.

My experience with a device using direct mapped NOR had a similar problem.
While NOR was fast, access to it would necessarily use 100% CPU for
whatever transfer rate is achieved.  The eMMC based flash, while a far more
complex driver, was actually better in terms of %CPU/MB because it could
use DMA.  Writing a custom sDMA script to use the iMX dmaengine for DMA
with direct mapped flash would have been interesting.

Direct mapping flash and losing DMA is probably always going to be a  net
lose for Linux filesystems on flash.  Maybe on small memory systems there
could be an advantage if you supported XIP with the mtd mapping driver.
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk

  parent reply	other threads:[~2013-10-10 23:53 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-09 15:24 [PATCH 0/3]Add quad/memory mapped support for SPI flash Sourav Poddar
2013-10-09 15:24 ` Sourav Poddar
2013-10-09 15:24 ` [PATCH 1/3] spi/qspi: Add memory mapped read support Sourav Poddar
2013-10-09 15:24   ` Sourav Poddar
2013-10-09 16:07   ` Mark Brown
2013-10-09 16:07     ` Mark Brown
     [not found]     ` <20131009160759.GQ21581-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-10-09 16:54       ` Sourav Poddar
2013-10-09 16:54         ` Sourav Poddar
2013-10-09 17:40         ` Mark Brown
2013-10-09 17:40           ` Mark Brown
2013-10-09 18:15           ` Sourav Poddar
2013-10-09 18:15             ` Sourav Poddar
2013-10-09 18:41             ` Mark Brown
2013-10-09 18:41               ` Mark Brown
     [not found]           ` <20131009174027.GS21581-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-10-09 19:01             ` Peter Korsgaard
2013-10-09 19:01               ` Peter Korsgaard
2013-10-09 19:36               ` Mark Brown
2013-10-09 19:36                 ` Mark Brown
     [not found]               ` <87hacq1d5k.fsf-D6SC8u56vOOJDPpyT6T3/w@public.gmane.org>
2013-10-10  2:27                 ` Trent Piepho
2013-10-10  2:27                   ` Trent Piepho
2013-10-10  8:52                   ` Sourav Poddar
2013-10-10  8:52                     ` Sourav Poddar
2013-10-10 10:14                     ` Mark Brown
2013-10-10 10:14                       ` Mark Brown
2013-10-10 10:17                       ` Sourav Poddar
2013-10-10 10:17                         ` Sourav Poddar
2013-10-10 11:08                       ` Sourav Poddar
2013-10-10 11:08                         ` Sourav Poddar
2013-10-11 10:08                         ` Mark Brown
2013-10-11 10:08                           ` Mark Brown
2013-10-15  6:06                           ` Sourav Poddar
2013-10-15  6:06                             ` Sourav Poddar
2013-10-15 11:16                             ` Mark Brown
2013-10-15 11:16                               ` Mark Brown
2013-10-15 11:49                               ` Sourav Poddar
2013-10-15 11:49                                 ` Sourav Poddar
2013-10-15 12:46                                 ` Mark Brown
2013-10-15 12:46                                   ` Mark Brown
     [not found]                                   ` <20131015124656.GM2443-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-10-15 13:23                                     ` Sourav Poddar
2013-10-15 13:23                                       ` Sourav Poddar
2013-10-15 15:53                                       ` Mark Brown
2013-10-15 15:53                                         ` Mark Brown
     [not found]                                       ` <525D41E2.30206-l0cyMroinI0@public.gmane.org>
2013-10-15 15:33                                         ` Gupta, Pekon
2013-10-15 15:33                                           ` Gupta, Pekon
2013-10-15 16:01                                           ` Mark Brown
2013-10-15 16:01                                             ` Mark Brown
2013-10-15 16:54                                             ` Gupta, Pekon
2013-10-15 16:54                                               ` Gupta, Pekon
2013-10-15 18:01                                         ` Brian Norris
2013-10-15 18:01                                           ` Brian Norris
2013-10-15 18:10                                           ` Sourav Poddar
2013-10-15 18:10                                             ` Sourav Poddar
     [not found]                                           ` <20131015180142.GS23337-bU/DPfM3abD4WzifrMjOTkcViWtcw2C0@public.gmane.org>
2013-10-15 18:13                                             ` Trent Piepho
2013-10-15 18:13                                               ` Trent Piepho
2013-10-15 18:33                                               ` Gupta, Pekon
2013-10-15 18:33                                                 ` Gupta, Pekon
2013-10-15 20:52                                                 ` Mark Brown
2013-10-15 20:52                                                   ` Mark Brown
     [not found]                                                   ` <20131015205254.GX2443-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-10-15 21:03                                                     ` Trent Piepho
2013-10-15 21:03                                                       ` Trent Piepho
2013-10-15 22:10                                                       ` Mark Brown
2013-10-15 22:10                                                         ` Mark Brown
     [not found]                                                 ` <20980858CB6D3A4BAE95CA194937D5E73EA23640-yXqyApvAXouIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2013-10-17 12:24                                                   ` Sourav Poddar
2013-10-17 12:24                                                     ` Sourav Poddar
2013-10-17 12:38                                                     ` Mark Brown
2013-10-17 12:38                                                       ` Mark Brown
2013-10-17 13:03                                                       ` Gupta, Pekon
2013-10-17 13:03                                                         ` Gupta, Pekon
2013-10-17 23:42                                                         ` Mark Brown
2013-10-18  4:06                                                           ` Sourav Poddar
2013-10-18  5:56                                                             ` Trent Piepho
2013-10-18  6:10                                                               ` Sourav Poddar
2013-10-18  7:27                                                                 ` Sourav Poddar
2013-10-18 10:31                                                                   ` Mark Brown
2013-10-18 11:48                                                                     ` Sourav Poddar
2013-10-18 13:08                                                                       ` Mark Brown
2013-10-18 14:47                                                                         ` Sourav Poddar
2013-10-15 20:59                                               ` Mark Brown
2013-10-15 20:59                                                 ` Mark Brown
     [not found]                     ` <52566ACC.1080100-l0cyMroinI0@public.gmane.org>
2013-10-11  9:30                       ` Gupta, Pekon
2013-10-11  9:30                         ` Gupta, Pekon
2013-10-10 10:10                   ` Mark Brown
2013-10-10 10:10                     ` Mark Brown
     [not found]                     ` <20131010101052.GF21581-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-10-10 23:53                       ` Trent Piepho [this message]
2013-10-11  9:59                         ` Mark Brown
2013-10-11  9:59                           ` Mark Brown
2013-10-09 15:24 ` [PATCHv3 2/3] drivers: mtd: devices: Add quad " Sourav Poddar
2013-10-09 15:24   ` Sourav Poddar
     [not found]   ` <1381332284-21822-3-git-send-email-sourav.poddar-l0cyMroinI0@public.gmane.org>
2013-10-09 18:15     ` Jagan Teki
2013-10-09 18:15       ` Jagan Teki
     [not found]       ` <CAD6G_RShZMkSpVzvXWEE0+sDX=pcnf7ndChndgDG5_T4EVL2vQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-10-11  7:10         ` Gupta, Pekon
2013-10-11  7:10           ` Gupta, Pekon
2013-10-24  1:06   ` Brian Norris
2013-10-24  5:44     ` Sourav Poddar
2013-10-24  7:34       ` Brian Norris
2013-10-24  8:44         ` Sourav Poddar
2013-10-24 17:07           ` Brian Norris
2013-10-24 17:55             ` Sourav Poddar
2013-10-09 15:24 ` [RFC/PATCH 3/3] drivers: mtd: devices: Add memory mapped " Sourav Poddar
2013-10-09 15:24   ` Sourav Poddar
2013-10-09 15:45   ` Mark Brown
2013-10-09 15:45     ` Mark Brown
2013-10-24  0:22 ` [PATCH 0/3]Add quad/memory mapped support for SPI flash Brian Norris
2013-10-24  4:51   ` Sourav Poddar

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='CA+7tXigijA6ASOiHkRDz45PTruv2vwYJu0UUWz0hvKr0=zwu5w@mail.gmail.com' \
    --to=tpiepho-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=balbi-l0cyMroinI0@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=peter-+2lRwdCCLRT2eFz/2MeuCQ@public.gmane.org \
    --cc=sourav.poddar-l0cyMroinI0@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 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.