Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752910AbcD0A7b (ORCPT ); Tue, 26 Apr 2016 20:59:31 -0400 Received: from LGEAMRELO13.lge.com ([156.147.23.53]:50250 "EHLO lgeamrelo13.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750843AbcD0A7a (ORCPT ); Tue, 26 Apr 2016 20:59:30 -0400 X-Original-SENDERIP: 156.147.1.121 X-Original-MAILFROM: iamjoonsoo.kim@lge.com X-Original-SENDERIP: 10.177.222.138 X-Original-MAILFROM: iamjoonsoo.kim@lge.com Date: Wed, 27 Apr 2016 09:59:28 +0900 From: Joonsoo Kim To: Vlastimil Babka Cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Michal Hocko , Hugh Dickins , Rik van Riel Subject: Re: [PATCH mmotm 3/3] mm, compaction: prevent nr_isolated_* from going negative Message-ID: <20160427005927.GC6336@js1304-P5Q-DELUXE> References: <1461591269-28615-1-git-send-email-vbabka@suse.cz> <1461591350-28700-1-git-send-email-vbabka@suse.cz> <1461591350-28700-4-git-send-email-vbabka@suse.cz> <20160426005503.GC2707@js1304-P5Q-DELUXE> <571FC43D.6010102@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <571FC43D.6010102@suse.cz> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1751 Lines: 41 On Tue, Apr 26, 2016 at 09:40:45PM +0200, Vlastimil Babka wrote: > On 04/26/2016 02:55 AM, Joonsoo Kim wrote: > >On Mon, Apr 25, 2016 at 03:35:50PM +0200, Vlastimil Babka wrote: > >>@@ -846,9 +845,11 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn, > >> spin_unlock_irqrestore(&zone->lru_lock, flags); > >> locked = false; > >> } > >>- putback_movable_pages(migratelist); > >>- nr_isolated = 0; > >>+ acct_isolated(zone, cc); > >>+ putback_movable_pages(&cc->migratepages); > >>+ cc->nr_migratepages = 0; > >> cc->last_migrated_pfn = 0; > >>+ nr_isolated = 0; > > > >Is it better to use separate list and merge it cc->migratepages when > >finishing instead of using cc->migratepages directly? If > >isolate_migratepages() try to isolate more than one page block and keep > >isolated page on previous pageblock, this putback all will invalidate > >all the previous work. It would be beyond of the scope of this > >function. Now, isolate_migratepages() try to isolate the page in one > >pageblock so this code is safe. But, I think that removing such > >dependency will be helpful in the future. I'm not strongly insisting it > >so if you think it's not useful thing, please ignore this comment. > > migratelist was merely a reference to cc->migratepages, so it > wouldn't prevent the situation you are suggesting. A truly separate > list would need to be appended to cc->migratepages when leaving > isolate_migratepages_block() and there's no need to do that right > now. What I suggest is using truly separate list by defining LIST_HEAD(xxx) on top of the function. But, I'm okay you think that there's no need to do it right now. > > BTW, can you check patch 1/3? Thanks! Done. Thanks.