Re: [PATCH 6/8] drivers: add Contiguous Memory Allocator

2011-07-06 Thread Christoph Lameter
On Wed, 6 Jul 2011, Russell King - ARM Linux wrote:

   they typically don't fall into the highmem zone.  As the dmabounce
   code allocates from the DMA coherent allocator to provide it with
   guaranteed DMA-able memory, that would be rather inconvenient.
 
  True. The dmabounce code would consequently have to allocate
  the memory through an internal function that avoids the
  contiguous allocation area and goes straight to ZONE_DMA memory
  as it does today.

 CMA's whole purpose for existing is to provide _dma-able_ contiguous
 memory for things like cameras and such like found on crippled non-
 scatter-gather hardware.  If that memory is not DMA-able what's the
 point?

ZONE_DMA is a zone for memory of legacy (crippled) devices that cannot DMA
into all of memory (and so is ZONE_DMA32). Memory from ZONE_NORMAL can be
used for DMA as well and a fully capable device would be expected to
handle any memory in the system for DMA transfers.

guaranteed dmaable memory? DMA abilities are device specific. Well maybe
you can call ZONE_DMA memory to be guaranteed if you guarantee that any
device must at mininum be able to perform DMA into ZONE_DMA memory. But
there may not be much of that memory around so you would want to limit
the use of that scarce resource.

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/8] drivers: add Contiguous Memory Allocator

2011-07-06 Thread Christoph Lameter
On Wed, 6 Jul 2011, Michal Nazarewicz wrote:

 On Wed, 06 Jul 2011 18:05:00 +0200, Christoph Lameter c...@linux.com wrote:
  ZONE_DMA is a zone for memory of legacy (crippled) devices that cannot DMA
  into all of memory (and so is ZONE_DMA32).  Memory from ZONE_NORMAL
  can be used for DMA as well and a fully capable device would be expected
  to handle any memory in the system for DMA transfers.
 
  guaranteed dmaable memory? DMA abilities are device specific. Well maybe
  you can call ZONE_DMA memory to be guaranteed if you guarantee
  that any device must at mininum be able to perform DMA into ZONE_DMA
  memory. But there may not be much of that memory around so you would
  want to limit the use of that scarce resource.

 As pointed in Marek's other mail, this reasoning is not helping in any
 way.  In case of video codec on various Samsung devices (and from some
 other threads this is not limited to Samsung), the codec needs separate
 buffers in separate memory banks.

What I described is the basic memory architecture of Linux. I am not that
familiar with ARM and the issue discussed here. Only got involved because
ZONE_DMA was mentioned. The nature of ZONE_DMA is often misunderstood.

The allocation of the memory banks for the Samsung devices has to fit
somehow into one of these zones. Its probably best to put the memory banks
into ZONE_NORMAL and not have any dependency on ZONE_DMA at all.

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/8] drivers: add Contiguous Memory Allocator

2011-07-06 Thread Christoph Lameter
On Wed, 6 Jul 2011, Russell King - ARM Linux wrote:

 So, ARM is no different from x86, with the exception that the 16MB DMA
 zone due to ISA ends up being different sizes on ARM depending on our
 restrictions.

Sounds good. Thank you.

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html