Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1424158AbdD1IhI (ORCPT ); Fri, 28 Apr 2017 04:37:08 -0400 Received: from mx2.suse.de ([195.135.220.15]:42797 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S969190AbdD1Igz (ORCPT ); Fri, 28 Apr 2017 04:36:55 -0400 Date: Fri, 28 Apr 2017 10:36:28 +0200 From: Michal Hocko To: Igor Stoppa Cc: Joonsoo Kim , Andrew Morton , Rik van Riel , Johannes Weiner , mgorman@techsingularity.net, Laura Abbott , Minchan Kim , Marek Szyprowski , Michal Nazarewicz , "Aneesh Kumar K . V" , Vlastimil Babka , Russell King , Will Deacon , linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@lge.com Subject: Re: Generic approach to customizable zones - was: Re: [PATCH v7 0/7] Introduce ZONE_CMA Message-ID: <20170428083625.GG8143@dhcp22.suse.cz> References: <1491880640-9944-1-git-send-email-iamjoonsoo.kim@lge.com> <20170411181519.GC21171@dhcp22.suse.cz> <20170412013503.GA8448@js1304-desktop> <20170413115615.GB11795@dhcp22.suse.cz> <20170417020210.GA1351@js1304-desktop> <20170424130936.GB1746@dhcp22.suse.cz> <20170425034255.GB32583@js1304-desktop> <20170427150636.GM4706@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: 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 Content-Length: 921 Lines: 21 I didn't read this thoughly yet because I will be travelling shortly but this point alone just made ask, because it seems there is some misunderstanding On Fri 28-04-17 11:04:27, Igor Stoppa wrote: [...] > * if one is happy to have a 64bits type, allow for as many zones as > it's possible to fit, or anyway more than what is possible with > the 32 bit mask. zones are currently placed in struct page::flags. And that already is 64b size on 64b arches. And we do not really have any room spare there. We encode page flags, zone id, numa_nid/sparse section_nr there. How can you add more without enlarging the struct page itself or using external means to store the same information (page_ext comes to mind)? Even if the later would be possible then note thatpage_zone() is used in many performance sensitive paths and making it perform well with special casing would be far from trivial. -- Michal Hocko SUSE Labs