|
@@ -817,13 +817,15 @@ __rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
|
|
|
* agressive about taking ownership of free pages
|
|
|
*/
|
|
|
if (unlikely(current_order >= (pageblock_order >> 1)) ||
|
|
|
- start_migratetype == MIGRATE_RECLAIMABLE) {
|
|
|
+ start_migratetype == MIGRATE_RECLAIMABLE ||
|
|
|
+ page_group_by_mobility_disabled) {
|
|
|
unsigned long pages;
|
|
|
pages = move_freepages_block(zone, page,
|
|
|
start_migratetype);
|
|
|
|
|
|
/* Claim the whole block if over half of it is free */
|
|
|
- if (pages >= (1 << (pageblock_order-1)))
|
|
|
+ if (pages >= (1 << (pageblock_order-1)) ||
|
|
|
+ page_group_by_mobility_disabled)
|
|
|
set_pageblock_migratetype(page,
|
|
|
start_migratetype);
|
|
|
|