Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933229AbdDGAgP (ORCPT ); Thu, 6 Apr 2017 20:36:15 -0400 Received: from LGEAMRELO13.lge.com ([156.147.23.53]:35494 "EHLO lgeamrelo13.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932903AbdDGAgF (ORCPT ); Thu, 6 Apr 2017 20:36:05 -0400 X-Original-SENDERIP: 156.147.1.121 X-Original-MAILFROM: iamjoonsoo.kim@lge.com X-Original-SENDERIP: 165.244.249.26 X-Original-MAILFROM: iamjoonsoo.kim@lge.com X-Original-SENDERIP: 10.177.222.138 X-Original-MAILFROM: iamjoonsoo.kim@lge.com Date: Fri, 7 Apr 2017 09:38:51 +0900 From: Joonsoo Kim To: Vlastimil Babka CC: Johannes Weiner , Andrew Morton , , , Mel Gorman , David Rientjes , , Subject: Re: [PATCH v3 7/8] mm, compaction: restrict async compaction to pageblocks of same migratetype Message-ID: <20170407003851.GA17231@js1304-P5Q-DELUXE> References: <20170307131545.28577-1-vbabka@suse.cz> <20170307131545.28577-8-vbabka@suse.cz> <20170316021403.GC14063@js1304-P5Q-DELUXE> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-MIMETrack: Itemize by SMTP Server on LGEKRMHUB03/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2017/04/07 09:36:00, Serialize by Router on LGEKRMHUB03/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2017/04/07 09:36:00, Serialize complete at 2017/04/07 09:36:00 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2487 Lines: 47 On Wed, Mar 29, 2017 at 06:06:41PM +0200, Vlastimil Babka wrote: > On 03/16/2017 03:14 AM, Joonsoo Kim wrote: > > On Tue, Mar 07, 2017 at 02:15:44PM +0100, Vlastimil Babka wrote: > >> The migrate scanner in async compaction is currently limited to MIGRATE_MOVABLE > >> pageblocks. This is a heuristic intended to reduce latency, based on the > >> assumption that non-MOVABLE pageblocks are unlikely to contain movable pages. > >> > >> However, with the exception of THP's, most high-order allocations are not > >> movable. Should the async compaction succeed, this increases the chance that > >> the non-MOVABLE allocations will fallback to a MOVABLE pageblock, making the > >> long-term fragmentation worse. > > > > I agree with this idea but have some concerns on this change. > > > > *ASYNC* compaction is designed for reducing latency and this change > > doesn't fit it. If everything works fine, there is a few movable pages > > in non-MOVABLE pageblocks as you noted above. Moreover, there is quite > > less the number of non-MOVABLE pageblock than MOVABLE one so finding > > non-MOVABLE pageblock takes long time. These two factors will increase > > the latency of *ASYNC* compaction. > > Right. I lately started to doubt the whole idea of async compaction (for > non-movable allocations). Seems it's one of the compaction heuristics tuned > towards the THP usecase. But for non-movable allocations, we just can't have > both the low latency and long-term fragmentation avoidance. I see now even my > own skip_on_failure mode in isolate_migratepages_block() as a mistake for > non-movable allocations. Why do you think that skip_on_failure mode is a mistake? I think that it would lead to reduce the latency and it fits the goal of async compaction. > > Ideally I'd like to make async compaction redundant by kcompactd, and direct > compaction would mean a serious situation which should warrant sync compaction. > Meanwhile I see several options to modify this patch > - async compaction for non-movable allocations will stop doing the > skip_on_failure mode, and won't restrict the pageblock at all. patch 8/8 will > make sure that also this kind of compaction finishes the whole pageblock > - non-movable allocations will skip async compaction completely and go for sync > compaction immediately IMO, concept of async compaction is also important for non-movable allocation. Non-movable allocation is essential for some workload and they hope the low latency. Thanks.