All of lore.kernel.org
 help / color / mirror / Atom feed
From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] arm: mvebu: increase atomic coherent pool size for armada 370/XP
Date: Thu, 25 Oct 2012 13:43:52 +0200	[thread overview]
Message-ID: <20121025134352.16a8ef81@skate> (raw)
In-Reply-To: <201210251127.36960.arnd@arndb.de>

Arnd,

On Thu, 25 Oct 2012 11:27:36 +0000, Arnd Bergmann wrote:
> On Wednesday 24 October 2012, Gregory CLEMENT wrote:
> > For Armada 370/XP we have the same problem that for the commit
> > cb01b63, so we applied the same solution: "The default 256 KiB
> > coherent pool may be too small for some of the Kirkwood devices, so
> > increase it to make sure that devices will be able to allocate their
> > buffers with GFP_ATOMIC flag"
> > 
> > Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> 
> Do you know why the ATA driver needs this? I find it surprising that
> it's necessary, so I'd like to make sure we're not just working around
> a device driver bug here.

The sata_mv driver create dma_pool and allocate objects from them, and
all the memory allocated for dma_pools is allocated using
dma_alloc_coherent(), and I guess the driver is using too much of them.

Seems like the driver is too lazy and allocates everything coherent to
avoid the hassle of doing dma_map/dma_unmap operations when needed, but
I haven't looked in details at the driver yet to see if it would be
possible to switch those DMA coherent allocations into non-coherent
allocations + appropriate calls to the DMA operations.

That said, that's for sure a larger task than just enabling SATA on
Armada 370/XP, so I would advocate to handle this problem separately.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Gregory CLEMENT <gregory.clement@free-electrons.com>,
	Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
	linux-arm-kernel@lists.infradead.org,
	Olof Johansson <olof@lixom.net>, Ben Dooks <ben-linux@fluff.org>,
	Ian Molton <ian.molton@codethink.co.uk>,
	Nicolas Pitre <nico@fluxnic.net>,
	Lior Amsalem <alior@marvell.com>,
	Maen Suleiman <maen@marvell.com>,
	Tawfik Bayouk <tawfik@marvell.com>,
	Shadi Ammouri <shadi@marvell.com>,
	"Eran Ben-Avi" <benavi@marvell.com>,
	Yehuda Yitschak <yehuday@marvell.com>,
	Nadav Haklai <nadavh@marvell.com>,
	Ike Pan <ike.pan@canonical.com>,
	Jani Monoses <jani.monoses@canonical.com>,
	Chris Van Hoof <vanhoof@canonical.com>,
	Dan Frazier <dann.frazier@canonical.com>,
	Leif Lindholm <leif.lindholm@arm.com>,
	Jon Masters <jcm@redhat.com>, David Marlin <dmarlin@redhat.com>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	linux-kernel@vger.kernel.org,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCH 1/2] arm: mvebu: increase atomic coherent pool size for armada 370/XP
Date: Thu, 25 Oct 2012 13:43:52 +0200	[thread overview]
Message-ID: <20121025134352.16a8ef81@skate> (raw)
In-Reply-To: <201210251127.36960.arnd@arndb.de>

Arnd,

On Thu, 25 Oct 2012 11:27:36 +0000, Arnd Bergmann wrote:
> On Wednesday 24 October 2012, Gregory CLEMENT wrote:
> > For Armada 370/XP we have the same problem that for the commit
> > cb01b63, so we applied the same solution: "The default 256 KiB
> > coherent pool may be too small for some of the Kirkwood devices, so
> > increase it to make sure that devices will be able to allocate their
> > buffers with GFP_ATOMIC flag"
> > 
> > Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> 
> Do you know why the ATA driver needs this? I find it surprising that
> it's necessary, so I'd like to make sure we're not just working around
> a device driver bug here.

The sata_mv driver create dma_pool and allocate objects from them, and
all the memory allocated for dma_pools is allocated using
dma_alloc_coherent(), and I guess the driver is using too much of them.

Seems like the driver is too lazy and allocates everything coherent to
avoid the hassle of doing dma_map/dma_unmap operations when needed, but
I haven't looked in details at the driver yet to see if it would be
possible to switch those DMA coherent allocations into non-coherent
allocations + appropriate calls to the DMA operations.

That said, that's for sure a larger task than just enabling SATA on
Armada 370/XP, so I would advocate to handle this problem separately.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

  reply	other threads:[~2012-10-25 11:43 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-24 13:49 [PATCH 0/2] Adding SATA support for Armada 370/XP Gregory CLEMENT
2012-10-24 13:49 ` Gregory CLEMENT
2012-10-24 13:49 ` [PATCH 1/2] arm: mvebu: increase atomic coherent pool size for armada 370/XP Gregory CLEMENT
2012-10-24 13:49   ` Gregory CLEMENT
2012-10-25  5:29   ` Marek Szyprowski
2012-10-25  5:29     ` Marek Szyprowski
2012-10-25 11:27   ` Arnd Bergmann
2012-10-25 11:27     ` Arnd Bergmann
2012-10-25 11:43     ` Thomas Petazzoni [this message]
2012-10-25 11:43       ` Thomas Petazzoni
2012-10-25 13:46       ` Arnd Bergmann
2012-10-25 13:46         ` Arnd Bergmann
2012-10-25 14:09         ` Thomas Petazzoni
2012-10-25 14:09           ` Thomas Petazzoni
2012-10-30  7:19         ` Marek Szyprowski
2012-10-24 13:49 ` [PATCH 2/2] arm: mvebu: adding SATA support: dt binding and config update Gregory CLEMENT
2012-10-24 13:49   ` Gregory CLEMENT
2012-10-24 14:01   ` Thomas Petazzoni
2012-10-24 14:01     ` Thomas Petazzoni
2012-10-24 14:05     ` Gregory CLEMENT
2012-10-24 14:05       ` Gregory CLEMENT
2012-10-25 13:18       ` Jason Cooper
2012-10-25 13:18         ` Jason Cooper
2012-10-25 13:21         ` Thomas Petazzoni
2012-10-25 13:21           ` Thomas Petazzoni
2012-10-25 13:34           ` Gregory CLEMENT
2012-10-25 13:34             ` Gregory CLEMENT
2012-10-25 13:57             ` Rob Herring
2012-10-25 13:57               ` Rob Herring
2012-10-25 16:00               ` Gregory CLEMENT
2012-10-25 16:00                 ` Gregory CLEMENT
2012-10-25 13:35           ` Jason Cooper
2012-10-25 13:35             ` Jason Cooper
2012-10-25 13:53         ` Rob Herring
2012-10-25 13:53           ` Rob Herring
2012-10-25 14:11           ` Gregory CLEMENT
2012-10-25 14:11             ` Gregory CLEMENT
2012-10-25 14:27             ` Rob Herring
2012-10-25 14:27               ` Rob Herring
2012-10-24 14:08   ` Andrew Lunn
2012-10-24 14:08     ` Andrew Lunn
2012-10-24 14:45     ` Gregory CLEMENT
2012-10-24 14:45       ` Gregory CLEMENT

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=20121025134352.16a8ef81@skate \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=linux-arm-kernel@lists.infradead.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.