From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754331AbdBGSHe (ORCPT ); Tue, 7 Feb 2017 13:07:34 -0500 Received: from mga07.intel.com ([134.134.136.100]:7726 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753587AbdBGSHc (ORCPT ); Tue, 7 Feb 2017 13:07:32 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,346,1477983600"; d="scan'208";a="62272136" Subject: Re: [RFC V2 12/12] mm: Tag VMA with VM_CDM flag explicitly during mbind(MPOL_BIND) To: Anshuman Khandual , linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20170130033602.12275-1-khandual@linux.vnet.ibm.com> <20170130033602.12275-13-khandual@linux.vnet.ibm.com> <26a17cd1-dd50-43b9-03b1-dd967466a273@intel.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: Date: Tue, 7 Feb 2017 10:07:28 -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: 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/30/2017 08:36 PM, Anshuman Khandual wrote: > On 01/30/2017 11:24 PM, Dave Hansen wrote: >> On 01/29/2017 07:35 PM, Anshuman Khandual wrote: >>> + if ((new_pol->mode == MPOL_BIND) >>> + && nodemask_has_cdm(new_pol->v.nodes)) >>> + set_vm_cdm(vma); >> So, if you did: >> >> mbind(addr, PAGE_SIZE, MPOL_BIND, all_nodes, ...); >> mbind(addr, PAGE_SIZE, MPOL_BIND, one_non_cdm_node, ...); >> >> You end up with a VMA that can never have KSM done on it, etc... Even >> though there's no good reason for it. I guess /proc/$pid/smaps might be >> able to help us figure out what was going on here, but that still seems >> like an awful lot of damage. > > Agreed, this VMA should not remain tagged after the second call. It does > not make sense. For this kind of scenarios we can re-evaluate the VMA > tag every time the nodemask change is attempted. But if we are looking for > some runtime re-evaluation then we need to steal some cycles are during > general VMA processing opportunity points like merging and split to do > the necessary re-evaluation. Should do we do these kind two kinds of > re-evaluation to be more optimal ? I'm still unconvinced that you *need* detection like this. Scanning big VMAs is going to be really painful. I thought I asked before but I can't find it in this thread. But, we have explicit interfaces for disabling KSM and khugepaged. Why do we need implicit ones like this in addition to those?