All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Łukasz Czerwiński" <l.czerwinski@samsung.com>
To: Mark Brown <broonie@kernel.org>
Cc: s.nawrocki@samsung.com, linux-samsung-soc@vger.kernel.org,
	linux-spi@vger.kernel.org
Subject: Re: [RFC PATCH 3/6] spi: spi-s3c64xx: Add coherent buffers for DMA transfers
Date: Tue, 10 Sep 2013 13:23:45 +0200	[thread overview]
Message-ID: <522F0141.1000905@samsung.com> (raw)
In-Reply-To: <20130909144509.GB29403@sirena.org.uk>



On 09/09/2013 04:45 PM, Mark Brown wrote:
> On Mon, Sep 09, 2013 at 04:09:23PM +0200, Lukasz Czerwinski wrote:
>> The spi-s3c64xx currently doesn't support transfers from non-contiguous
>> client buffers.
>>
>> This patch adds two coherent buffers which allow transfers from
>> non-contiguous client buffers without extra coherent memory allocation
>> in the client driver.
>>
>> Buffer size is hardcoded to 16kB for Tx/Rx. Client drivers shouldn't
>> exceed that value.
>
> This seems like a very low limit to have, consider things like firmware
> downloads for example.  It seems reasonable to have a preallocated small
> buffer but there should be some fallback for larger transfer sizes.
>
I have tested my modification with different buffer sizes with S5C73M3 
driver (355560 B upload). I obtained following upload times:

16kB buffer:
	- 83.972 ms
	- 79.196 ms
	- 79.432 ms
128kB buffer:
	- 74.449 ms
	- 80.719 ms
	- 75.599 ms

For 256kB I obtained similar results as in 128kB case. Normally 
non-interrupted SPI transfer should take 56ms (50MHz). Performance loss 
is approximately about 6% between 16kB and 128KB buffer. I my opinion 
there are no need to use bigger buffers.

I propose add extra module parameter which allows to change buffer size.

> I also didn't notice any checks in the code for the length of transfers
> so this will corrupt memory if a client driver tries to transfer more
> than the preallocated buffer as things stand.
>
Right, I will add that.

Thanks
Lukasz

  reply	other threads:[~2013-09-10 11:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-09 14:09 [RFC PATCH 0/6] spi/s3c64xx: clean up and optimization Lukasz Czerwinski
2013-09-09 14:09 ` [RFC PATCH 1/6] spi: spi-s3c64xx: Remove platform dependent code Lukasz Czerwinski
2013-09-09 14:38   ` Mark Brown
2013-09-11 16:21     ` Heiko Stübner
2013-09-09 14:09 ` [RFC PATCH 2/6] spi: spi-s3c64xx: Correct functions namespacing Lukasz Czerwinski
2013-09-09 14:09 ` [RFC PATCH 3/6] spi: spi-s3c64xx: Add coherent buffers for DMA transfers Lukasz Czerwinski
2013-09-09 14:45   ` Mark Brown
2013-09-10 11:23     ` Łukasz Czerwiński [this message]
2013-09-10 12:02       ` Mark Brown
2013-09-11  7:48         ` Łukasz Czerwiński
2013-09-09 14:09 ` [RFC PATCH 4/6] spi: spi-s3c64xx: Remove redundant code Lukasz Czerwinski
2013-09-09 14:09 ` [RFC PATCH 5/6] spi: spi-s3c64xx: Use module_platform_driver() Lukasz Czerwinski
2013-09-09 14:47   ` Mark Brown
2013-09-09 14:09 ` [RFC PATCH 6/6] spi: spi-s3c64xx: Move DMA initialization Lukasz Czerwinski
2013-09-09 14:53   ` Mark Brown
2013-09-10 11:24     ` Łukasz Czerwiński
2013-09-10 12:03       ` Mark Brown
2013-09-10 13:16         ` Łukasz Czerwiński
2013-09-10 16:32           ` Mark Brown
2013-09-11  7:45             ` Łukasz Czerwiński
2013-09-11 10:03               ` Mark Brown

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=522F0141.1000905@samsung.com \
    --to=l.czerwinski@samsung.com \
    --cc=broonie@kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=s.nawrocki@samsung.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.