lkml.org 
[lkml]   [2011]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRE: [PATCH 04/12] mm: alloc_contig_freed_pages() added
Hello,

On Monday, April 04, 2011 3:15 PM Michał Nazarewicz wrote:

> > What kind of success have you had running this in practice? I'd be
> > worried that some silly task or a sticky dentry would end up in the
> > range that you want to allocate in.
>
> I'm not sure what you are asking.
>
> The function requires the range to be marked as MIGRATE_ISOLATE and all
> pages being free, so nothing can be allocated there while the function
> is running.
>
> If you are asking about CMA in general, the range that CMA uses is marked
> as MIGRATE_CMA (a new migrate type) which means that only MIGRATE_MOVABLE
> pages can be allocated there. This means, that in theory, if there is
> enough memory the pages can always be moved out of the region. At leasts
> that's my understanding of the type. If this is correct, the allocation
> should always succeed provided enough memory for the pages within the
> region to be moved to is available.
>
> As of practice, I have run some simple test to see if the code works and
> they succeeded. Also, Marek has run some test with actual hardware and
> those worked well as well (but I'll let Marek talk about any details).

We did the tests with real multimedia drivers - video codec and video
converter (s5p-mfc and s5p-fimc). These drivers allocate large contiguous
buffers for video data. The allocation is performed when driver is opened
by user space application.

First we consumed system memory by running a set of simple applications
that just did some malloc() and filled memory with random pattern to consume
free pages. Then some of that memory has been freed and we ran the video
decoding application. Multimedia drivers successfully managed to allocate
required contiguous buffers from MIGRATE_CMA ranges.

The tests have been performed with different system usage patterns (malloc(),
heavy filesystem load, anonymous memory mapping). In all these cases CMA
worked surprisingly good allowing the drivers to allocate the required
contiguous buffers.

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


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2011-04-05 09:27    [W:0.095 / U:0.244 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site