From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751748AbdH1Mfq (ORCPT ); Mon, 28 Aug 2017 08:35:46 -0400 Received: from mx2.suse.de ([195.135.220.15]:48970 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751717AbdH1Mfp (ORCPT ); Mon, 28 Aug 2017 08:35:45 -0400 Date: Mon, 28 Aug 2017 14:35:42 +0200 From: Michal Hocko To: Pavel Machek Cc: linux-mm@kvack.org, Mel Gorman , Matthew Wilcox , Vlastimil Babka , Neil Brown , "Theodore Ts'o" , Andrew Morton , LKML Subject: Re: [RFC PATCH] treewide: remove GFP_TEMPORARY allocation flag Message-ID: <20170828123542.GJ17097@dhcp22.suse.cz> References: <20170728091904.14627-1-mhocko@kernel.org> <20170823175709.GA22743@xo-6d-61-c0.localdomain> <20170825063545.GA25498@dhcp22.suse.cz> <20170825072818.GA15494@amd> <20170825080442.GF25498@dhcp22.suse.cz> <20170825213936.GA13576@amd> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170825213936.GA13576@amd> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri 25-08-17 23:39:36, Pavel Machek wrote: > On Fri 2017-08-25 10:04:42, Michal Hocko wrote: > > On Fri 25-08-17 09:28:19, Pavel Machek wrote: > > > On Fri 2017-08-25 08:35:46, Michal Hocko wrote: > > > > On Wed 23-08-17 19:57:09, Pavel Machek wrote: > > [...] > > > > > Dunno. < 1msec probably is temporary, 1 hour probably is not. If it causes > > > > > problems, can you just #define GFP_TEMPORARY GFP_KERNEL ? Treewide replace, > > > > > and then starting again goes not look attractive to me. > > > > > > > > I do not think we want a highlevel GFP_TEMPORARY without any meaning. > > > > This just supports spreading the flag usage without a clear semantic > > > > and it will lead to even bigger mess. Once we can actually define what > > > > the flag means we can also add its users based on that new semantic. > > > > > > It has real meaning. > > > > Which is? > > "This allocation is temporary. It lasts milliseconds, not hours." And why would such a semantic make any sense what so ever? We certainly do not try to wait for a pinned memory for $TIMEOUT when somebody really needs a larger memory block and there is a temporary allocation standing in the way. We simply do not know that an object is a temporary one. > > > You can define more exact meaning, and then adjust the usage. But > > > there's no need to do treewide replacement... > > > > I have checked most of them and except for the initially added onces the > > large portion where added without a good reasons or even break an > > intuitive meaning by taking locks. > > I don't see it. kmalloc() itself takes locks. Of course everyone takes > locks. I don't think that's intuitive meaning. I was talking about users of the flag. I have seen some to take a lock right after they allocated GFP_TEMPORARY object. > > Seriously, if we need a short term semantic it should be clearly defined > > first. > > "milliseconds, not hours." > > > Is there any specific case why you think this patch is in a wrong > > direction? E.g. a measurable regression? > > Not playing that game. You should argue why it is improvement. And I > don't believe you did. Please read the whole changelog where I was quite verbose about how the current flag is abused and how its semantic is weak and encourages a wrong usage pattern. Moreover it is not even clear whether it helps anything. I haven't seen any actual counter argument from you other than "milliseconds not hours" without actually explaining how that would be useful for any decisions done in the core MM layer. -- Michal Hocko SUSE Labs