From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936967AbdJRKqr (ORCPT ); Wed, 18 Oct 2017 06:46:47 -0400 Received: from mx2.suse.de ([195.135.220.15]:46625 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933997AbdJRKqp (ORCPT ); Wed, 18 Oct 2017 06:46:45 -0400 Subject: Re: [PATCH] mm/mempolicy: add node_empty check in SYSC_migrate_pages To: Yisheng Xie , akpm@linux-foundation.org, mhocko@suse.com, mingo@kernel.org, rientjes@google.com, n-horiguchi@ah.jp.nec.com, salls@cs.ucsb.edu Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, will.deacon@arm.com, tanxiaojun@huawei.com, Linux API References: <1508290660-60619-1-git-send-email-xieyisheng1@huawei.com> <7086c6ea-b721-684e-fe3d-ff59ae1d78ed@suse.cz> <20aac66a-7252-947c-355b-6da4be671dcf@huawei.com> From: Vlastimil Babka Message-ID: Date: Wed, 18 Oct 2017 12:46:41 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20aac66a-7252-947c-355b-6da4be671dcf@huawei.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/18/2017 11:34 AM, Yisheng Xie wrote: >>> For MAX_NUMNODES is 4, so 0x10 nodemask will tread as empty set which makes >>> nodes_subset(*new, node_states[N_MEMORY]) >> >> According to manpage of migrate_pages: >> >> EINVAL The value specified by maxnode exceeds a kernel-imposed >> limit. Or, old_nodes or new_nodes specifies one or more node IDs that >> are greater than the maximum supported node ID. Or, none of the node >> IDs specified by new_nodes are on-line and allowed by the process's >> current cpuset context, or none of the specified nodes contain memory. >> >> if maxnode parameter is 64, but MAX_NUMNODES ("kernel-imposed limit") is >> 4, we should get EINVAL just because of that. I don't see such check in >> the migrate_pages implementation though. > > Yes, that is what manpage said, but I have a question about this: if user > set maxnode exceeds a kernel-imposed and try to access node without enough > privilege, which errors values we should return ? For I have seen that all > of the ltp migrate_pages01 will set maxnode to 64 in my system. Hm I don't think it matters much and don't know if there's some commonly used priority. Personally I would do the checks resulting in EINVAL first, before EPERM, but if the code is structured differently, it may stay as it is.