From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752187AbbFZKJj (ORCPT ); Fri, 26 Jun 2015 06:09:39 -0400 Received: from szxga02-in.huawei.com ([119.145.14.65]:52401 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752001AbbFZKJc (ORCPT ); Fri, 26 Jun 2015 06:09:32 -0400 Message-ID: <558D24C1.5020901@huawei.com> Date: Fri, 26 Jun 2015 18:09:05 +0800 From: Xishi Qiu User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 MIME-Version: 1.0 To: Andrew Morton , Vlastimil Babka , Mel Gorman , Johannes Weiner , , David Rientjes , CC: Linux MM , LKML , Xishi Qiu Subject: [PATCH] mm: fix set pageblock migratetype when boot Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.25.179] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org memmap_init_zone() ... if ((z->zone_start_pfn <= pfn) && (pfn < zone_end_pfn(z)) && !(pfn & (pageblock_nr_pages - 1))) set_pageblock_migratetype(page, MIGRATE_MOVABLE); ... If the pfn does not align to pageblock, it will not init the migratetype. So call it for every page, it will takes more time, but it doesn't matter, this function will be called only in boot or hotadd memory. e.g. [ 223.679446] node 0: [mem 0x00001000-0x00099fff] [ 223.679449] node 0: [mem 0x00100000-0xbf78ffff] [ 223.680486] node 0: [mem 0x100000000-0x27fffffff] Signed-off-by: Xishi Qiu --- mm/page_alloc.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index ebffa0e..a1df227 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4210,8 +4210,7 @@ void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone, * pfn out of zone. */ if ((z->zone_start_pfn <= pfn) - && (pfn < zone_end_pfn(z)) - && !(pfn & (pageblock_nr_pages - 1))) + && (pfn < zone_end_pfn(z))) set_pageblock_migratetype(page, MIGRATE_MOVABLE); INIT_LIST_HEAD(&page->lru); -- 1.7.1