From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF505C61D97 for ; Wed, 22 Nov 2023 21:33:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 25E056B011B; Wed, 22 Nov 2023 16:33:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 20E0E6B0514; Wed, 22 Nov 2023 16:33:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0FD6C6B0519; Wed, 22 Nov 2023 16:33:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 000526B011B for ; Wed, 22 Nov 2023 16:33:56 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id CFF9B8166E for ; Wed, 22 Nov 2023 21:33:56 +0000 (UTC) X-FDA: 81486892872.04.0D879D4 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf20.hostedemail.com (Postfix) with ESMTP id B0FC21C001E for ; Wed, 22 Nov 2023 21:33:53 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=a9T8JgpH; dmarc=none; spf=pass (imf20.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700688834; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Mt84CK3SfwBCiLh2LelSk0vRPyiHnZgfpc6l+0AG1Go=; b=eglOe1DNW/kONeEx0WCDh0EHr0XzEr5VFKnnqfu0AXTqxstSnAfF9o11i1VkHq/A4RDUow SaYHnoAl/ctyBoG/s4kOY2QfMBAQBGDmBLkqsUpn9UHMMv8QnZSda0tDWENcE/c/jRbyS3 L5KM5z1+Z6NrtTiQyR7Vgw7jUREMgSY= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=a9T8JgpH; dmarc=none; spf=pass (imf20.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700688834; a=rsa-sha256; cv=none; b=LPBHIFj15sGz0wN8F5dn+WA/K+9P2jHuDBtIXfsWtFX1C4DUXXIk1hud1kU+qpB7EutRSt esUCB8dQtWm3erVhJXRhOyDaMix8ITbbEoPdM5OsxbZksBtKI+JCAj9sovqwkEOb0ftCjB sR0MwdA1946cT44cvdcy1CMzHKycdP4= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 81B61CE214E; Wed, 22 Nov 2023 21:33:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 216ECC433C7; Wed, 22 Nov 2023 21:33:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1700688829; bh=CCGiBp6ijIbiQN49IM0yNAMFM6x8RmE/GApUZ80sKhk=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=a9T8JgpHz5rCww2lmiWFAgJiYQz4lQnKLd+N/wJREBIzFj2s77dIv23vFbVfIT9GL dYS5ISI7BaGwajylptbeE4CbFzWkGsDed74VdXV5ZAH6c7ZfBstkSddhZsFb82ORIs +7sOq27xvaEWQzLNx0SteALC+cjD+zL6q9xcPca4= Date: Wed, 22 Nov 2023 13:33:48 -0800 From: Andrew Morton To: Gregory Price Cc: linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, arnd@arndb.de, tglx@linutronix.de, luto@kernel.org, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, mhocko@kernel.org, tj@kernel.org, ying.huang@intel.com, Gregory Price Subject: Re: [RFC PATCH 00/11] mm/mempolicy: Make task->mempolicy externally modifiable via syscall and procfs Message-Id: <20231122133348.d27c09a90bce755dc1c0f251@linux-foundation.org> In-Reply-To: <20231122211200.31620-1-gregory.price@memverge.com> References: <20231122211200.31620-1-gregory.price@memverge.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: B0FC21C001E X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: xwkofbmam6ghbr7uqr7y15bezome73ok X-HE-Tag: 1700688833-750407 X-HE-Meta: U2FsdGVkX1/zGzcE3tJk2Tei/EjzYjlVwGpOKpage6RsAeEa24/CQvtROID0e5+22kQjEGfolbJ6m9xfAAHXoBLrMWCZVuDANtA+VJAn/JT3KMmV+8F4qH2qQAHQS/HQ7vcQCQzrQRphDr2RMzt2cVH917SzdU0ulIkNiFLmpIfYFJ1KHrpNi4T/p6MQx1kxVtjzSn3cLVFZl8STqB75DCdKXUd/Om/nJQ0CTyYG7sIDKiM8I3N/laYNFr0dDLV98FwZaZbn8gaORda1ee+oPtH7fZ8jH1Gtg9iMXGuAMRYvnuodNu4NQyCpUf0PEzHuDUZzekrz3Y6XtroazhR9c/qrYl2rdRIaM1EHSWDmhflTNFzz2LTZ7WEISJuKGeuPieCnNdXrYUHb1fzwr2YzUKBSUcarr/LehypSO54/sSQ9L2bXaDEdMZaja8ey++VnhkPU+QBdh7qiUn9NNWbD1lXhUuyfIw+5bF0AJ/sDjMiQ+vBfYlveWe+a2rAhwP+XD1apx5XojcjKCekoZmOv4DbG3kNBsmC0XNgR4+c5ZkXXbaEX9mMvkUQLhTHuViCmLemaaOX3M1YG7aUmiLPVuogXUIam2s1ly98Kw7uW67ypYmf4kLrcp93bGM+dTKH6ok4y6LC/wb3rqX3u9waxcgloEQi+ygre4Ac6BYpc5XQpivGj19Nb3JyPKjYUPvj7cIzo9QJfNf+jyLkHpcTX11oDYMX7SIPutTtdSDQKy3S8iPXUyFsrceWgOPtixTjFz1kTCYvKK0Mbywnk3SWNDi3AJo3V+Qp5AigwbOyRLLUXZ7Gj8CC0uT+SH+MTtm6/ASvlBeL44W4F5SL1E0Cfc19wjPThVaa8pJtgiSI1R8ioKNhJULlabMKJGp68tqHbt0PNoYQ13KnBTz7XepcnveNUdLLhk1gO4Y+A/Jbl65n8eDSiYrH5QsalwM/Sc9Ya9fS2bc4auGoPIZPqYev pla3rOui c5S0Fo13nZHEgs/YmQ2TKuQzKH/yNQg8ZLA6lGVb4EQUghg1tJs6KAm6FzPmTswGfFX5OFMuLqBJo6/X0WBa93wVQNUkCPSborKU5bCYDXPqwlvLPqRuS9Fo1pkbiJm6zJP/7tXTu5kAUQJAoOuj05yYFKgWh+lUxIWSLBU3YR6cum1xyYzlJcJz8KNwRWjRlPyxVGv1CxeQwnRjhqZMBtbT0PLlQbBF/s5qfJFi6sfBWYt2gUolimKIF5gIF6ddnKHmTY+YWhVkN0BpU8/HvHvXX2O9mRBKVS6lHY+eP2VdodBGEQYkVFCiNle25fnXTbJmo X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, 22 Nov 2023 16:11:49 -0500 Gregory Price wrote: > The patch set changes task->mempolicy to be modifiable by tasks other > than just current. > > The ultimate goal is to make mempolicy more flexible and extensible, > such as adding interleave weights (which may need to change at runtime > due to hotplug events). Making mempolicy externally modifiable allows > for userland daemons to make runtime performance adjustments to running > tasks without that software needing to be made numa-aware. Please add to this [0/N] a full description of the security aspect: who can modify whose mempolicy, along with a full description of the reasoning behind this decision. > 3. Add external interfaces which allow for a task mempolicy to be > modified by another task. This is implemented in 4 syscalls > and a procfs interface: > sys_set_task_mempolicy > sys_get_task_mempolicy > sys_set_task_mempolicy_home_node > sys_task_mbind > /proc/[pid]/mempolicy Why is the procfs interface needed? Doesn't it simply duplicate the syscall interface? Please update [0/N] with a description of this decision. > The new syscalls are the same as their current-task counterparts, > except that they take a pid as an argument. The exception is > task_mbind, which required a new struct due to the number of args. > > The /proc/pid/mempolicy re-uses the interface mpol_parse_str format > to enable get/set of mempolicy via procsfs. > > mpol_parse_str format: > [=][:] > > Example usage: > > echo "default" > /proc/pid/mempolicy > echo "prefer=relative:0" > /proc/pid/mempolicy > echo "interleave:0-3" > /proc/pid/mempolicy What do we get when we read from this? Please add to changelog. > Changing the mempolicy does not induce memory migrations via the > procfs interface (which is the exact same behavior as set_mempolicy). >