linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: 'Mark Brown' <broonie@opensource.wolfsonmicro.com>,
	Michal Nazarewicz <m.nazarewicz@samsung.com>
Cc: 'Daniel Walker' <dwalker@codeaurora.org>,
	linux-mm@kvack.org, Pawel Osciak <p.osciak@samsung.com>,
	'Xiaolin Zhang' <xiaolin.zhang@intel.com>,
	'Hiremath Vaibhav' <hvaibhav@ti.com>,
	'Robert Fekete' <robert.fekete@stericsson.com>,
	'Marcus Lorentzon' <marcus.xm.lorentzon@stericsson.com>,
	linux-kernel@vger.kernel.org,
	'Kyungmin Park' <kyungmin.park@samsung.com>,
	linux-arm-msm@vger.kernel.org
Subject: RE: [PATCH 2/4] mm: cma: Contiguous Memory Allocator added
Date: Thu, 22 Jul 2010 11:25:48 +0200	[thread overview]
Message-ID: <000901cb297f$e28f2b10$a7ad8130$%szyprowski@samsung.com> (raw)
In-Reply-To: <20100722090602.GF10930@sirena.org.uk>

Hello,

On Thursday, July 22, 2010 11:06 AM Mark Brown wrote:

> On Wed, Jul 21, 2010 at 08:41:12PM +0200, Micha?? Nazarewicz wrote:
> > On Wed, 21 Jul 2010 20:24:58 +0200, Mark Brown
> <broonie@opensource.wolfsonmicro.com> wrote:
> 
> > >> I am currently working on making the whole thing more dynamic.  I
> imagine
> 
> > > Yes, I think it will be much easier to be able to grab the regions at
> > > startup but hopefully the allocation within those regions can be made
> > > much more dynamic.  This would render most of the configuration syntax
> > > unneeded.
> 
> > Not sure what you mean by the last sentence.  Maybe we have different
> > things in mind?
> 
> I mean that if the drivers are able to request things dynamically and
> have some knowledge of their own requirements then that removes the need
> to manually specify exactly which regions go to which drivers which
> means that most of the complexity of the existing syntax is not needed
> since it can be figured out at runtime.

The driver may specify memory requirements (like memory address range or
alignment), but it cannot provide enough information to avoid or reduce
memory fragmentation. More than one memory region can be perfectly used
to reduce memory fragmentation IF common usage patterns are known. In
embedded world usually not all integrated device are being used at the
same time. This way some memory regions can be shared by 2 or more devices. 

Just assume that gfx accelerator allocates memory is rather small chunks,
but keeps it while relevant surface is being displayed or processed by
application. It is not surprising that GUI (accelerated by the hardware
engine) is used almost all the time on a mobile device. This usage pattern
would produce a lot of fragmentation in the memory pool that is used by gfx
accelerator. Then we want to run a camera capture device to take a 8Mpix
photo. This require a large contiguous buffer. If we try to allocate it from
common pool it might happen that it is not possible (because of the
fragmentation).

With CMA approach we can create 2 memory regions for this case. One for gfx
accelerator and the other for camera capture device, video decoder or jpeg
decoder, because common usage analysis showed that these 3 devices usually
are not used at the same time.

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-07-22  9:38 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-20 15:51 [PATCH 0/4] The Contiguous Memory Allocator Michal Nazarewicz
2010-07-20 15:51 ` [PATCH 1/4] lib: rbtree: rb_root_init() function added Michal Nazarewicz
2010-07-20 15:51   ` [PATCH 2/4] mm: cma: Contiguous Memory Allocator added Michal Nazarewicz
2010-07-20 15:51     ` [PATCH 3/4] mm: cma: Test device and application added Michal Nazarewicz
2010-07-20 15:51       ` [PATCH 4/4] arm: Added CMA to Aquila and Goni Michal Nazarewicz
2010-07-20 18:15     ` [PATCH 2/4] mm: cma: Contiguous Memory Allocator added Daniel Walker
2010-07-20 19:14       ` Michał Nazarewicz
2010-07-20 19:38         ` Daniel Walker
2010-07-21 12:01           ` Michał Nazarewicz
2010-07-21 17:35             ` Daniel Walker
2010-07-21 18:11               ` Michał Nazarewicz
2010-07-21 18:19                 ` Daniel Walker
2010-07-21 18:38                   ` Michał Nazarewicz
2010-07-21 18:58                     ` Daniel Walker
2010-07-21 19:21                       ` Michał Nazarewicz
2010-07-21 19:37                         ` Daniel Walker
2010-07-21 19:53                           ` Michał Nazarewicz
2010-07-21 20:03                             ` Daniel Walker
2010-07-21 20:22                               ` Michał Nazarewicz
2010-07-21 20:34                                 ` Daniel Walker
2010-07-21 20:43                                   ` Michał Nazarewicz
2010-07-21 20:45                                     ` Daniel Walker
2010-07-21 20:56                                       ` Michał Nazarewicz
2010-07-21 21:01                                         ` Daniel Walker
2010-07-22  9:34                                           ` Michał Nazarewicz
2010-07-21 13:52         ` Mark Brown
2010-07-21 14:31           ` Michał Nazarewicz
2010-07-21 18:24             ` Mark Brown
2010-07-21 18:41               ` Michał Nazarewicz
2010-07-22  9:06                 ` Mark Brown
2010-07-22  9:25                   ` Marek Szyprowski [this message]
2010-07-22 10:52                     ` Mark Brown
2010-07-22 11:30                       ` Michał Nazarewicz
2010-07-22 12:46                         ` Mark Brown
2010-07-22 13:24                           ` Michał Nazarewicz
2010-07-22 13:40                             ` Mark Brown
2010-07-22 14:58                               ` Michał Nazarewicz
2010-07-22 15:05                                 ` Mark Brown
2010-07-20 20:52     ` Jonathan Corbet
2010-07-21 10:16       ` Michał Nazarewicz
2010-07-21  0:12     ` Jonathan Corbet
2010-07-22  5:37       ` FUJITA Tomonori
2010-07-22  7:28         ` Marek Szyprowski
2010-07-22  9:35           ` FUJITA Tomonori
2010-07-22  9:50             ` Michał Nazarewicz
2010-07-22 10:17               ` FUJITA Tomonori
2010-07-22 10:55                 ` Mark Brown
2010-07-22 11:49                 ` Michał Nazarewicz
2010-07-22  4:54     ` Zach Pfeffer
2010-07-22  7:49       ` Marek Szyprowski
2010-07-23  7:06       ` Pawel Osciak

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='000901cb297f$e28f2b10$a7ad8130$%szyprowski@samsung.com' \
    --to=m.szyprowski@samsung.com \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=dwalker@codeaurora.org \
    --cc=hvaibhav@ti.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=m.nazarewicz@samsung.com \
    --cc=marcus.xm.lorentzon@stericsson.com \
    --cc=p.osciak@samsung.com \
    --cc=robert.fekete@stericsson.com \
    --cc=xiaolin.zhang@intel.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;
as well as URLs for NNTP newsgroup(s).