Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932647AbbHXIvg (ORCPT ); Mon, 24 Aug 2015 04:51:36 -0400 Received: from mx2.suse.de ([195.135.220.15]:57027 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752475AbbHXIvd (ORCPT ); Mon, 24 Aug 2015 04:51:33 -0400 Subject: Re: [PATCH] mm/compaction: correct to flush migrated pages if pageblock skip happens To: Joonsoo Kim , Andrew Morton References: <1440129419-30023-1-git-send-email-iamjoonsoo.kim@lge.com> Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Mel Gorman , Rik van Riel , David Rientjes , Minchan Kim From: Vlastimil Babka Message-ID: <55DADB11.6070000@suse.cz> Date: Mon, 24 Aug 2015 10:51:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <1440129419-30023-1-git-send-email-iamjoonsoo.kim@lge.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1433 Lines: 36 On 08/21/2015 05:56 AM, Joonsoo Kim wrote: > We cache isolate_start_pfn before entering isolate_migratepages(). > If pageblock is skipped in isolate_migratepages() due to whatever reason, > cc->migrate_pfn could be far from isolate_start_pfn hence flushing pages > that were freed happens. For example, following scenario can be possible. > > - assume order-9 compaction, pageblock order is 9 > - start_isolate_pfn is 0x200 > - isolate_migratepages() > - skip a number of pageblocks > - start to isolate from pfn 0x600 > - cc->migrate_pfn = 0x620 > - return > - last_migrated_pfn is set to 0x200 > - check flushing condition > - current_block_start is set to 0x600 > - last_migrated_pfn < current_block_start then do useless flush > > This wrong flush would not help the performance and success rate so > this patch try to fix it. One simple way to know exact position > where we start to isolate migratable pages is that we cache it > in isolate_migratepages() before entering actual isolation. This patch > implements it and fix the problem. Yeah, that should work. > Signed-off-by: Joonsoo Kim Acked-by: Vlastimil Babka -- 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/