Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755098AbdCXAxg (ORCPT ); Thu, 23 Mar 2017 20:53:36 -0400 Received: from LGEAMRELO13.lge.com ([156.147.23.53]:53840 "EHLO lgeamrelo13.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751563AbdCXAxf (ORCPT ); Thu, 23 Mar 2017 20:53:35 -0400 X-Original-SENDERIP: 156.147.1.127 X-Original-MAILFROM: minchan@kernel.org X-Original-SENDERIP: 165.244.249.25 X-Original-MAILFROM: minchan@kernel.org X-Original-SENDERIP: 10.177.223.161 X-Original-MAILFROM: minchan@kernel.org Date: Fri, 24 Mar 2017 09:34:54 +0900 From: Minchan Kim To: Joonsoo Kim CC: Andrew Morton , Sergey Senozhatsky , , Subject: Re: [PATCH 1/4] mm/zsmalloc: always set movable/highmem flag to the zspage Message-ID: <20170324003454.GA8204@bbox> References: <1489632398-31501-1-git-send-email-iamjoonsoo.kim@lge.com> <1489632398-31501-2-git-send-email-iamjoonsoo.kim@lge.com> <20170321111005.GA28016@bbox> <20170323021023.GA17486@js1304-P5Q-DELUXE> MIME-Version: 1.0 In-Reply-To: <20170323021023.GA17486@js1304-P5Q-DELUXE> User-Agent: Mutt/1.5.24 (2015-08-30) X-MIMETrack: Itemize by SMTP Server on LGEKRMHUB08/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2017/03/24 09:34:55, Serialize by Router on LGEKRMHUB08/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2017/03/24 09:34:56, Serialize complete at 2017/03/24 09:34:56 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: 2074 Lines: 45 Hi Joonsoo, On Thu, Mar 23, 2017 at 11:10:23AM +0900, Joonsoo Kim wrote: > On Tue, Mar 21, 2017 at 08:10:05PM +0900, Minchan Kim wrote: > > Hi Joonsoo, > > > > On Thu, Mar 16, 2017 at 11:46:35AM +0900, js1304@gmail.com wrote: > > > From: Joonsoo Kim > > > > > > Zspage is always movable and is used through zs_map_object() function > > > which returns directly accessible pointer that contains content of > > > zspage. It is independent on the user's allocation flag. > > > Therefore, it's better to always set movable/highmem flag to the zspage. > > > After that, we don't need __GFP_MOVABLE/__GFP_HIGHMEM clearing in > > > cache_alloc_handle()/cache_alloc_zspage() since there is no zs_malloc > > > caller who specifies __GFP_MOVABLE/__GFP_HIGHMEM. > > > > Hmm, I wanted this when you pointed out to me firstly but when I think > > again, I don't see it's improvement. Sorry for that. > > The zs_malloc is exported symbol and it has gfp_t argument so user can > > do whatever he want with any zone modifiers flags. IOW, if someuser want > > to allocate pages from {normal|dma} zone by whatever reason, he can > > omit __GFP_HIGHMEM from the gfp flag to fullfill the goal. > > Hello, > > I don't think that such flexibility makes things better. User cannot > fully understand what flags are the best since it highly depends on > implementation detail. For example, __GFP_MOVABLE is needed to zone modifier(GFP_DMA|DMA32|HIGHMEM|MOVABLE|potentially CMA): User can select one of zone for his goal by S/W|H/W constraint. > optimize memory fragmentation and user cannot know it and there is no > reason that user need to know it. __GFP_HIGHMEM is the similar case. > He cannot know that he can pass __GFP_HIGHMEM without knowing the > implementation detail and he cannot know the impact of __GFP_HIGHMEM > here. So, I think that adding these flags in zsmalloc can be justified. > > Anyway, this patch isn't so important for this series so if you don't > like it, I will drop it. Yes, I don't feel strongly we need it at this moment. Thanks.