lkml.org 
[lkml]   [2014]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 0/4] (CMA_AGGRESSIVE) Make CMA memory be more aggressive about allocation
    Date
    In fallbacks of page_alloc.c, MIGRATE_CMA is the fallback of
    MIGRATE_MOVABLE.
    MIGRATE_MOVABLE will use MIGRATE_CMA when it doesn't have a page in
    order that Linux kernel want.

    If a system that has a lot of user space program is running, for
    instance, an Android board, most of memory is in MIGRATE_MOVABLE and
    allocated. Before function __rmqueue_fallback get memory from
    MIGRATE_CMA, the oom_killer will kill a task to release memory when
    kernel want get MIGRATE_UNMOVABLE memory because fallbacks of
    MIGRATE_UNMOVABLE are MIGRATE_RECLAIMABLE and MIGRATE_MOVABLE.
    This status is odd. The MIGRATE_CMA has a lot free memory but Linux
    kernel kill some tasks to release memory.

    This patch series adds a new function CMA_AGGRESSIVE to make CMA memory
    be more aggressive about allocation.
    If function CMA_AGGRESSIVE is available, when Linux kernel call function
    __rmqueue try to get pages from MIGRATE_MOVABLE and conditions allow,
    MIGRATE_CMA will be allocated as MIGRATE_MOVABLE first. If MIGRATE_CMA
    doesn't have enough pages for allocation, go back to allocate memory from
    MIGRATE_MOVABLE.
    Then the memory of MIGRATE_MOVABLE can be kept for MIGRATE_UNMOVABLE and
    MIGRATE_RECLAIMABLE which doesn't have fallback MIGRATE_CMA.



    \
     
     \ /
      Last update: 2014-10-16 05:41    [W:4.053 / U:1.612 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site