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 B0FBAC10F05 for ; Thu, 7 Dec 2023 00:28:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B72276B0083; Wed, 6 Dec 2023 19:28:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AFABD6B0085; Wed, 6 Dec 2023 19:28:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 927BC6B0087; Wed, 6 Dec 2023 19:28:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 7A66A6B0083 for ; Wed, 6 Dec 2023 19:28:24 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 54A36120215 for ; Thu, 7 Dec 2023 00:28:24 +0000 (UTC) X-FDA: 81538135728.11.250FAFB Received: from mail-yw1-f193.google.com (mail-yw1-f193.google.com [209.85.128.193]) by imf03.hostedemail.com (Postfix) with ESMTP id 721F620008 for ; Thu, 7 Dec 2023 00:28:22 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="QWz4gOp/"; spf=pass (imf03.hostedemail.com: domain of gourry.memverge@gmail.com designates 209.85.128.193 as permitted sender) smtp.mailfrom=gourry.memverge@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701908902; a=rsa-sha256; cv=none; b=ggwkNKCCrNhF0/Xcjl+KQGyxdtyYEpPWqzn9ZyFbcHyoy/r7a8lSjYaGLGa3H6cFzpn2y3 uHieEaQCAzh68tpo6WQ0mJTGHG1SkT54LMaKeEE3mIdYj7fQ110p5IGoFi1FlMAppZ2HZd zbthSI3G9DNyQapp9sCnfBI2U+Ul38I= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="QWz4gOp/"; spf=pass (imf03.hostedemail.com: domain of gourry.memverge@gmail.com designates 209.85.128.193 as permitted sender) smtp.mailfrom=gourry.memverge@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701908902; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=LtcIT3+1Vvf1IPQzjETz2qs5AIWZRfMHd/0ujKiNxjc=; b=PnSUNNyn2VUdvUQmanDFbn2knwlyVwUdbOEeLW7G2Z+hjXlLP2rus1qtxBj6sIujlKWFbB 9cUxdRmm0v4daLA2fbSPNFAaxZwKhWs4edNTS7lmyIK4ULtUwIpOt3VFGRdBWGrjwqYiO4 y+qFIr4VziRhzzj8+Q77ZMjgseygjIk= Received: by mail-yw1-f193.google.com with SMTP id 00721157ae682-5d8d2b5d1b5so989167b3.0 for ; Wed, 06 Dec 2023 16:28:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701908901; x=1702513701; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LtcIT3+1Vvf1IPQzjETz2qs5AIWZRfMHd/0ujKiNxjc=; b=QWz4gOp/VNo4+SHaf91jG7NqS5zuS2dLnvS5OJLLTeLdsk8CoBXlHKntrsuQ8gORa8 8p1tw6tPqaRWdqNnn3QVQgZv2nGIPKGretGfeDSqDB2SeoG+tbxsH2usQUnuLXgCfGc8 l/Z+aGsrs7Zydu/qqR0LH6SiDkZ/ZzG3PJ+YFachazw915575myHgQv8zGTu/c15Gstv g2C8YcsYE/nhoFTJk1H1kPhXGNRENvsBmBD/NFc+5AzpMf/eihIvNE7WLoBFRsdN8OCz lJzwJO1zL0NzSoUzXeQ24HEA/3KpiWwqmh0hDrYBUAyF761Mci5CExh5xPKBZ4eJ6yNN kLlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701908901; x=1702513701; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LtcIT3+1Vvf1IPQzjETz2qs5AIWZRfMHd/0ujKiNxjc=; b=iPSDnq8T5eotxFMSgy+HvyL5udwf4vfbTfhWDn9ZYLCZ/aBnyahwB47IGuih99XJD6 gfO6HZBosOurw+azPu0E+GTyCt/e1gtueeE21vDOSHkUTGj1+QBXDyKB8jH7nCf5RRRP L2QRlhAtr10obA5mWJ9E9r/h+V4dVhdAbPoWXls5P/DTNgOdDob2wztm34/yGwc2voMw 2UUBB3/l4TRp2V0+z2ktkYwE+DD3s6cJK6EhWlnep65iXT9cPNLva4Pn1GE8PhIJVcVm LNxsv+uHdxEprTqwzWn1YBLQfWaFNlCLI5Zs11POXHosh/UuCb1n9h0onU+t4qQBD+tt ljkg== X-Gm-Message-State: AOJu0YyPzdzoWYcDlMkNW7T0Cxp2AaZFCjfqGEBS4CEDK989INUU0zdW LKpAqoaftKDtYkbS6VpC28VEBwZDEU9w X-Google-Smtp-Source: AGHT+IFoGq3TrZUWxjktHdZLHqPXr2V42GWf5snPEHWFcJWvB6pDjTGUOlR+5ktf6yPv5nEOg/mPRg== X-Received: by 2002:a05:690c:a06:b0:5d7:1940:8dd5 with SMTP id cg6-20020a05690c0a0600b005d719408dd5mr1208041ywb.60.1701908901467; Wed, 06 Dec 2023 16:28:21 -0800 (PST) Received: from fedora.mshome.net (pool-173-79-56-208.washdc.fios.verizon.net. [173.79.56.208]) by smtp.gmail.com with ESMTPSA id x145-20020a81a097000000b005d82fc8cc92sm19539ywg.105.2023.12.06.16.28.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Dec 2023 16:28:21 -0800 (PST) From: Gregory Price X-Google-Original-From: Gregory Price To: linux-mm@kvack.org, jgroves@micron.com, ravis.opensrc@micron.com, sthanneeru@micron.com, emirakhur@micron.com, Hasan.Maruf@amd.com Cc: 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, akpm@linux-foundation.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@memverge.com, corbet@lwn.net, rakie.kim@sk.com, hyeongtak.ji@sk.com, honggyu.kim@sk.com, vtavarespetr@micron.com, peterz@infradead.org Subject: [RFC PATCH 06/11] mm/mempolicy: allow home_node to be set by mpol_new Date: Wed, 6 Dec 2023 19:27:54 -0500 Message-Id: <20231207002759.51418-7-gregory.price@memverge.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231207002759.51418-1-gregory.price@memverge.com> References: <20231207002759.51418-1-gregory.price@memverge.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 721F620008 X-Stat-Signature: osdkdqrny75pn9hz9jimix1orqyi9moj X-Rspam-User: X-HE-Tag: 1701908902-957900 X-HE-Meta: U2FsdGVkX1/rJzYjsOW3UH7EwwzlO4Xhxzkwrox3qnv6ICLnZ2ByCz5Zcdl0F4EfpuyitnnTaPvCzT2GRikBMAyEpbOA5E4UVHcEVoXYgbdmgnR6SGk/9r4SFqyZAb3igCKMqdKWRJhwvguRAIcbovCzEZiW7beUGXv1PQCGtBOMbsEbOLEErhAeVt/PzKi9ls03eqwVHagX9xA3z4y5wtRGHDIsl5X59TZF2u20CzxUo0qNcSTEwxjcJI264AQA+0D/iC7CRnQ/zqaunhVSuw6jaXXPexz5NkXbVtYIYeMyKXfMFLqGvSda6FDilKYrq45RB47HzRhSzCNadIpOUyKtM9CVphTgHK1DehHIHP2CfbUvhp9P2A0EmqJa4ERn6jPjALIS5rjefzOa+kO8u6L0e8AReECmK3IKP1AQ5itw1I5zb3vKzCkOt7XZ+Fz58sK4++eAcVpXDjdWe6urvQw9fntrWGVKKwotY/V/TNv+2j4JLZGPVgLRhmKfxCUn+RWWDg8m9k8SrEle4y3+MQZuYtulH0Ftlut0sFbx/F+8hPErvWwP0JBvyQEdOAwKVaUb7oK4eMAScNWZOINUgF1HGyWC7YjkWxCbuM7wL7CtMOi3/wEnE14rF+C8njuhAGTKygCUEvSJrv/QC3MF4X1q2E+BPw7oxlkDUw8OOwtCBqzvvhSFVkHAwMsPgoFF8oxYXkBP8XvPv8T4jHKZdEMPIWCyFxpS3cscu9hWyvMD0VdlI6xCN3PpJWQzms/balfR6vDEwmtN7F8HCw/ATq5ItPLq/v01LLpuX1x/DvkhF44yMqwWU0ZxjDDqExi/JUhYzo3c18mfKnSzD0wR9PxRbPdgO+N8AZXrGhzzvAiHcOqvqatdSHHenkgp5vTfjDwQXM/VNhdAzPegRYaIxRVjt3gVwwOpzAQuBoCsFgVgy1fPnM4qQO9C2LfRffH7Ap/3ijaJ6KOud0M89vC uNNbszHP OSJ19jEBJnXXtgSp68Z1vv4N0TE/1JRXrKgaeSVQuZWThHVQVCstCHtfuqjUKF+OBqCBEgvIECm8mMYCQBknPKF0C0XUZVjgavIMJBoQqj+bBPbfpSAilEUirpuwXbBMXa3eOYtmPxsV/4wLCb/44QX7uR4ejBgABYh/KCJfHdAS3qTmH0w9p+0i6GuyunxcQITPzJ3hdCChYyztriVCBNCz+wCsaiJaQ8Df4nT4ndeHfhb5hYz3xKGgQnJAB1LkJoy5+y6uv+CinkLkr+41kIctlpXIMGhabnpIq3HFL/df7f0RIgwyu5bZ+pXb3YrYfJUPlx58DJa+TAF00spDf9MCXfegIN0avAFSjBg+OGeCCqHya0NxoqeZSCFZ7ibLsgcQhT5RhD+OHUT2GHLWEv9+K5/cZeNCEiMeSInqt5Uhzdo2q5VBnUiVEzWRhLzaOMspSq04fgxk4PD0nWBLby50QatqJYN3+oetvvyUO/i6Ut+Ri0hxWJPUOvq3cZvkaNIhVc8RYv5pKUS8= 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: This patch adds the plumbing into mpol_new() to allow the argument structure's home_node field to be set during mempolicy creation. The syscall sys_set_mempolicy_home_node was added to allow a home node to be registered for a vma. For set_mempolicy2 and mbind2 syscalls, it would be useful to add this as an extension to allow the user to submit a fully formed mempolicy configuration in a single call, rather than require multiple calls to configure a mempolicy. This will become particularly useful if/when pidfd interfaces to change process mempolicies from outside the task appear, as each call to change the mempolicy does an atomic swap of that policy in the task, rather than mutate the policy. Signed-off-by: Gregory Price --- mm/mempolicy.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index fecdc781b6a0..4be63547a4b3 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -311,6 +311,7 @@ static struct mempolicy *mpol_new(struct mempolicy_args *args) policy->flags = flags; policy->home_node = NUMA_NO_NODE; policy->wil.cur_weight = 0; + policy->home_node = args->home_node; return policy; } @@ -1624,6 +1625,7 @@ static long kernel_set_mempolicy(int mode, const unsigned long __user *nmask, args.mode = lmode; args.mode_flags = mode_flags; args.policy_nodes = &nodes; + args.home_node = NUMA_NO_NODE; return do_set_mempolicy(&args); } @@ -2967,6 +2969,8 @@ void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol) margs.mode = mpol->mode; margs.mode_flags = mpol->flags; margs.policy_nodes = &mpol->w.user_nodemask; + margs.home_node = NUMA_NO_NODE; + /* contextualize the tmpfs mount point mempolicy to this file */ npol = mpol_new(&margs); if (IS_ERR(npol)) @@ -3125,6 +3129,7 @@ void __init numa_policy_init(void) memset(&args, 0, sizeof(args)); args.mode = MPOL_INTERLEAVE; args.policy_nodes = &interleave_nodes; + args.home_node = NUMA_NO_NODE; if (do_set_mempolicy(&args)) pr_err("%s: interleaving failed\n", __func__); @@ -3139,6 +3144,7 @@ void numa_default_policy(void) memset(&args, 0, sizeof(args)); args.mode = MPOL_DEFAULT; + args.home_node = NUMA_NO_NODE; do_set_mempolicy(&args); } @@ -3261,6 +3267,8 @@ int mpol_parse_str(char *str, struct mempolicy **mpol) margs.mode = mode; margs.mode_flags = mode_flags; margs.policy_nodes = &nodes; + margs.home_node = NUMA_NO_NODE; + new = mpol_new(&margs); if (IS_ERR(new)) goto out; -- 2.39.1