Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932722AbbBBN3N (ORCPT ); Mon, 2 Feb 2015 08:29:13 -0500 Received: from mail-oi0-f43.google.com ([209.85.218.43]:63348 "EHLO mail-oi0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753471AbbBBN3J (ORCPT ); Mon, 2 Feb 2015 08:29:09 -0500 MIME-Version: 1.0 In-Reply-To: References: <1422861348-5117-1-git-send-email-iamjoonsoo.kim@lge.com> <1422861348-5117-2-git-send-email-iamjoonsoo.kim@lge.com> Date: Mon, 2 Feb 2015 22:29:08 +0900 Message-ID: Subject: Re: [RFC PATCH v3 2/3] mm/page_alloc: factor out fallback freepage checking From: Joonsoo Kim To: Zhang Yanfei Cc: Andrew Morton , Mel Gorman , David Rientjes , Rik van Riel , Linux Memory Management List , LKML , Zhang Yanfei , Joonsoo Kim Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1985 Lines: 47 2015-02-02 21:56 GMT+09:00 Zhang Yanfei : > Hello Joonsoo, > > At 2015/2/2 15:15, Joonsoo Kim wrote: >> This is preparation step to use page allocator's anti fragmentation logic >> in compaction. This patch just separates fallback freepage checking part >> from fallback freepage management part. Therefore, there is no functional >> change. >> >> Signed-off-by: Joonsoo Kim >> --- >> mm/page_alloc.c | 128 +++++++++++++++++++++++++++++++++----------------------- >> 1 file changed, 76 insertions(+), 52 deletions(-) >> >> diff --git a/mm/page_alloc.c b/mm/page_alloc.c >> index e64b260..6cb18f8 100644 >> --- a/mm/page_alloc.c >> +++ b/mm/page_alloc.c >> @@ -1142,14 +1142,26 @@ static void change_pageblock_range(struct page *pageblock_page, >> * as fragmentation caused by those allocations polluting movable pageblocks >> * is worse than movable allocations stealing from unmovable and reclaimable >> * pageblocks. >> - * >> - * If we claim more than half of the pageblock, change pageblock's migratetype >> - * as well. >> */ >> -static void try_to_steal_freepages(struct zone *zone, struct page *page, >> - int start_type, int fallback_type) >> +static bool can_steal_fallback(unsigned int order, int start_mt) >> +{ >> + if (order >= pageblock_order) >> + return true; > > Is this test necessary? Since an order which is >= pageblock_order > will always pass the order >= pageblock_order / 2 test below. > Yes, that's true. But, I'd like to remain code as is, because condition "order >= pageblock_order / 2" is really heuristic and could be changed someday. Instead of removing it, I will add some comment on it. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/