From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753775AbdA3Rhs (ORCPT ); Mon, 30 Jan 2017 12:37:48 -0500 Received: from mga02.intel.com ([134.134.136.20]:16026 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753555AbdA3Rhq (ORCPT ); Mon, 30 Jan 2017 12:37:46 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,312,1477983600"; d="scan'208";a="53810575" Subject: Re: [RFC V2 03/12] mm: Change generic FALLBACK zonelist creation process To: Anshuman Khandual , linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20170130033602.12275-1-khandual@linux.vnet.ibm.com> <20170130033602.12275-4-khandual@linux.vnet.ibm.com> Cc: mhocko@suse.com, vbabka@suse.cz, mgorman@suse.de, minchan@kernel.org, aneesh.kumar@linux.vnet.ibm.com, bsingharora@gmail.com, srikar@linux.vnet.ibm.com, haren@linux.vnet.ibm.com, jglisse@redhat.com, dan.j.williams@intel.com From: Dave Hansen Message-ID: <07bd439c-6270-b219-227b-4079d36a2788@intel.com> Date: Mon, 30 Jan 2017 09:34:27 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20170130033602.12275-4-khandual@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/29/2017 07:35 PM, Anshuman Khandual wrote: > * CDM node's zones are not part of any other node's FALLBACK zonelist > * CDM node's FALLBACK list contains it's own memory zones followed by > all system RAM zones in regular order as before > * CDM node's zones are part of it's own NOFALLBACK zonelist This seems like a sane policy for the system that you're describing. But, it's still a policy, and it's rather hard-coded into the kernel. Let's say we had a CDM node with 100x more RAM than the rest of the system and it was just as fast as the rest of the RAM. Would we still want it isolated like this? Or would we want a different policy? Why do we need this hard-coded along with the cpuset stuff later in the series. Doesn't taking a node out of the cpuset also take it out of the fallback lists? > while ((node = find_next_best_node(local_node, &used_mask)) >= 0) { > +#ifdef CONFIG_COHERENT_DEVICE > + /* > + * CDM node's own zones should not be part of any other > + * node's fallback zonelist but only it's own fallback > + * zonelist. > + */ > + if (is_cdm_node(node) && (pgdat->node_id != node)) > + continue; > +#endif On a superficial note: Isn't that #ifdef unnecessary? is_cdm_node() has a 'return 0' stub when the config option is off anyway.