lkml.org 
[lkml]   [2014]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH 0/3] Aggressively allocate the pages on cma reserved memory
Hello,

On 2014-05-08 02:32, Joonsoo Kim wrote:
> This series tries to improve CMA.
>
> CMA is introduced to provide physically contiguous pages at runtime
> without reserving memory area. But, current implementation works like as
> reserving memory approach, because allocation on cma reserved region only
> occurs as fallback of migrate_movable allocation. We can allocate from it
> when there is no movable page. In that situation, kswapd would be invoked
> easily since unmovable and reclaimable allocation consider
> (free pages - free CMA pages) as free memory on the system and free memory
> may be lower than high watermark in that case. If kswapd start to reclaim
> memory, then fallback allocation doesn't occur much.
>
> In my experiment, I found that if system memory has 1024 MB memory and
> has 512 MB reserved memory for CMA, kswapd is mostly invoked around
> the 512MB free memory boundary. And invoked kswapd tries to make free
> memory until (free pages - free CMA pages) is higher than high watermark,
> so free memory on meminfo is moving around 512MB boundary consistently.
>
> To fix this problem, we should allocate the pages on cma reserved memory
> more aggressively and intelligenetly. Patch 2 implements the solution.
> Patch 1 is the simple optimization which remove useless re-trial and patch 3
> is for removing useless alloc flag, so these are not important.
> See patch 2 for more detailed description.
>
> This patchset is based on v3.15-rc4.

Thanks for posting those patches. It basically reminds me the following
discussion:
http://thread.gmane.org/gmane.linux.kernel/1391989/focus=1399524

Your approach is basically the same. I hope that your patches can be
improved
in such a way that they will be accepted by mm maintainers. I only
wonder if the
third patch is really necessary. Without it kswapd wakeup might be still
avoided
in some cases.

> Thanks.
> Joonsoo Kim (3):
> CMA: remove redundant retrying code in __alloc_contig_migrate_range
> CMA: aggressively allocate the pages on cma reserved memory when not
> used
> CMA: always treat free cma pages as non-free on watermark checking
>
> include/linux/mmzone.h | 6 +++
> mm/compaction.c | 4 --
> mm/internal.h | 3 +-
> mm/page_alloc.c | 117 +++++++++++++++++++++++++++++++++++++++---------
> 4 files changed, 102 insertions(+), 28 deletions(-)
>

Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland



\
 
 \ /
  Last update: 2014-05-09 15:21    [W:0.602 / U:0.252 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site