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-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html