Linux Samsung SOC development
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox