lkml.org 
[lkml]   [2012]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 08/15] mm: mmzone: MIGRATE_CMA migration type added
    On Mon, Jan 30, 2012 at 02:06:50PM +0100, Michal Nazarewicz wrote:
    > >>@@ -1017,11 +1049,14 @@ __rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
    > >> rmv_page_order(page);
    > >>
    > >> /* Take ownership for orders >= pageblock_order */
    > >>- if (current_order >= pageblock_order)
    > >>+ if (current_order >= pageblock_order &&
    > >>+ !is_pageblock_cma(page))
    > >> change_pageblock_range(page, current_order,
    > >> start_migratetype);
    > >>
    > >>- expand(zone, page, order, current_order, area, migratetype);
    > >>+ expand(zone, page, order, current_order, area,
    > >>+ is_migrate_cma(start_migratetype)
    > >>+ ? start_migratetype : migratetype);
    > >>
    > >
    > >What is this check meant to be doing?
    > >
    > >start_migratetype is determined by allocflags_to_migratetype() and
    > >that never will be MIGRATE_CMA so is_migrate_cma(start_migratetype)
    > >should always be false.
    >
    > Right, thanks! This should be the other way around, ie.:
    >
    > + expand(zone, page, order, current_order, area,
    > + is_migrate_cma(migratetype)
    > + ? migratetype : start_migratetype);
    >
    > I'll fix this and the calls to is_pageblock_cma().
    >

    That makes a lot more sense. Thanks.

    I have a vague recollection that there was a problem with finding
    unmovable pages in MIGRATE_CMA regions. This might have been part of
    the problem.

    --
    Mel Gorman
    SUSE Labs


    \
     
     \ /
      Last update: 2012-01-30 15:55    [W:0.021 / U:62.996 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site