From patchwork Wed Nov 22 21:11:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gregory Price X-Patchwork-Id: 13465455 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 26E0DC61D97 for ; Wed, 22 Nov 2023 21:12:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8C2016B0632; Wed, 22 Nov 2023 16:12:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 871B56B0633; Wed, 22 Nov 2023 16:12:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 69D0F6B0634; Wed, 22 Nov 2023 16:12:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5DE666B0632 for ; Wed, 22 Nov 2023 16:12:11 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2EDC240501 for ; Wed, 22 Nov 2023 21:12:11 +0000 (UTC) X-FDA: 81486838062.24.5601F48 Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by imf14.hostedemail.com (Postfix) with ESMTP id 470CC100020 for ; Wed, 22 Nov 2023 21:12:09 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=YT0tcnhx; spf=pass (imf14.hostedemail.com: domain of gourry.memverge@gmail.com designates 209.85.210.194 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=1700687529; 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=UftY+9nJn82Vz5RJpbG87UiQLd2iCLBgMyI8O4iubXI=; b=eq/4dX19wL2FHSPBnPlgbfY2yjz3OCuBygCR2mJt+WJTOYH97I4lLknFa7SnwtlJtFLMvD RfCkxF4RDNaGafC7KS0V2kqxucecSLwEL8EErZhv8oy//I3rlHAvndeX+yw5OI6aBXYqL7 NIp27dRlAVduanMYog5McpWXbfTHGdQ= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=YT0tcnhx; spf=pass (imf14.hostedemail.com: domain of gourry.memverge@gmail.com designates 209.85.210.194 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=1700687529; a=rsa-sha256; cv=none; b=lDBXznbzKSl3sYyHJHWolMBqswJLRpbuduIsrqsgfRtZIh6BaaPlQ9DQx32EfmgRJ+t8oq L+VYFjWlM80QMLJLGByWvOmt1Y9fQJtwJqwi5dBHNoBVQ3LYVqNA/ivQMqKJEBWAeqaqEP +ZM1+XV2TWC//aWny3FqcTaLhRo4+1M= Received: by mail-pf1-f194.google.com with SMTP id d2e1a72fcca58-6b20577ef7bso244175b3a.3 for ; Wed, 22 Nov 2023 13:12:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700687528; x=1701292328; 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=UftY+9nJn82Vz5RJpbG87UiQLd2iCLBgMyI8O4iubXI=; b=YT0tcnhxha0mwV6ga2o7OHguSEb5NZkEeZbH6iLugoERexG/O5RLZRsUQc2rOinvHB AH8b5An+EDGAu7Np2mkHl7WDAiugXYvJxP4GaSexOFXbrjfmuZH4oPMfMZ2LhcDC7vhB AAPIceMPOm33/czGAu8IRKPUGE13VnOJWgdFtW9ykFZUSKuiPXkwU0nJ+Ma3+kVzio2X /8qDa82T/SVgMRwqdCtQr0l5LpYMDV/mx4Q6Hh2SVuuBak/ZuMs/Sfs0bEaf7XiN8C7M UX18wmkZ7tn1xglkcLXBx+7LJGZ0nViYCDeTGRQX9r3tWI6p1ZU0a8SsG11OTzn2nXrA o/+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700687528; x=1701292328; 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=UftY+9nJn82Vz5RJpbG87UiQLd2iCLBgMyI8O4iubXI=; b=vJ758Kv/m4FlNiFVP0YRQj+apUoG7II1DTh0y+EapyJ0OQePN+et8O6WOKjGzjBNDo A3mEGqAa2XMq07n+96hEqKAs6CiETQRG6Bl5xrhPByQpLjlIcTS02INYn0VIfQWOH5Ct YAsqDR1mqZis40iU48v2hhOcYQFJ5PyzEmo0+l1rRRKt2YRBxi+0H2p3O/lZe7/r/gAM 9AXZd5fuTiGwXENRpUBNvvGLzOJKyhW/b4cM0WwKxSRxVv+A4e3eT2LYTm3D0MeMFgD7 19VSSens8HK/6rD8jIZgxqKE751yuvAdXwb7cqdA+igEuOeM/WPk+7WmG52QouUzu+Lx ZYfw== X-Gm-Message-State: AOJu0Yw6OOLKwjFTSNVRj/8FxM9EDzQA6NLsHXXWFpd4fKX4SKlWFdhm XlGZ4QvAXbSpDv/Z8qXlxPLhBED33oGD X-Google-Smtp-Source: AGHT+IFApmrVmTMi/koEr4L/CLh547UBRzR9U2yTau9qj52IoeLKDXr1/nWf98+BfkPjiCFsngGxIQ== X-Received: by 2002:a05:6a00:4ac7:b0:6c2:cf23:3e21 with SMTP id ds7-20020a056a004ac700b006c2cf233e21mr4101209pfb.17.1700687527998; Wed, 22 Nov 2023 13:12:07 -0800 (PST) Received: from fedora.mshome.net ([75.167.214.230]) by smtp.gmail.com with ESMTPSA id j18-20020a635512000000b005bdbce6818esm132136pgb.30.2023.11.22.13.12.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Nov 2023 13:12:07 -0800 (PST) From: Gregory Price X-Google-Original-From: Gregory Price To: linux-mm@kvack.org 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 Subject: [RFC PATCH 01/11] mm/mempolicy: refactor do_set_mempolicy for code re-use Date: Wed, 22 Nov 2023 16:11:50 -0500 Message-Id: <20231122211200.31620-2-gregory.price@memverge.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231122211200.31620-1-gregory.price@memverge.com> References: <20231122211200.31620-1-gregory.price@memverge.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 470CC100020 X-Rspam-User: X-Stat-Signature: zyisuz4fe4buezgd7dd8hhadee1ep4ac X-Rspamd-Server: rspam01 X-HE-Tag: 1700687529-760898 X-HE-Meta: U2FsdGVkX1/Nmu4r1W3tDoPfgz17wWnA1ll3z/uO+IPBnQ563yXBepKD0a+kWBeXDAEdUdpFWk9uZX+o2yspN0oGGE12ggCW9row4wtiOxDttWnZEjjvQUIIQ09ptfIer/mhgDGbkT/P+dqld3owdk55O2tc5y7rM3Lkj699tUqUWxJbb8nFwHIYZ56VGIYL+XMFZUlQLZ7jx/N6uwJqdNtEi8pUZa5V7CO+fU9wRxhKVQcC46QST75sCoP0KQibkAHpEL0P9RVxdE8c10gc94UJfWw6yV/ucLC8rQBR4BdOEkk8TUQBTaqgJq7vC2FE8YnMic80EDd1hU5ct/DIi7ss9hHx1ahemmLEcyzsxLDJr7rrt1Qlc4oEBDylyNApFXcoQ+rROUFeM9ZqEi1qHXWDIR3fqeZ8Ulu0YL/k7ED7F08wy51iKJsRzM1WVTO3m4XL5e0FBVMF6SfetXnjVzFRp6hMSUW4rvaBWgP7Xyp/7EVnGmmHOuG7y9zcw3BpkqadxtpiCIwfp66d7mlZ8luCDeY6hcluyNTY65olltqfta3RmU7hi6oafMbeqDpNK1TySX9zBkAOLoxydXbfZD5O6qjBgAPWoNDteuwCd4LFetPxNiYQcbWv+n6X5Vx5O4sZtqrNp6WzuzulauQ5TfNkzLPzZ3Qkt7koo4Tadanah9yEIfJbJdeIBD5yKu+GxgiQa7GDLk2hevpdSMx9zUfMU5qmbd7o07IOrFEt4aZG+theGAbFgBFlRkq3NFlbLJRdUeQVrKpLHg3O7lxICFLdjHPYuv6WsZ6RrgfbfTnT29BPXDpMA4KebObvYAz9gVY1+KeVdag0Y1BJCmVWx377unJCBVsKp+c/1xWHnsurZh4w1wZWx0DM3+VtcU2gOEAC3dLquRY/CLkqkXo2MDurlDA+L+Asx/rSq0czZFddl49vJrQtDFLw62n1CCvoz+3JldwnZ/mgtqkSGpm aKh0noyh Z2mNWtIB6xerLQwc/dV0aYjVxpdC7TMJ5J9lH4LrbEiepcYp84ViT3bxkI0RATHeyX+pgurGK6tBSHRrHx7JZ2E5Y3HH7kWy1Z3H9Ru4E0bsAisFSnXDicBEedF4LA2cYrcddC42L+XEAzexcIPcTm59nBqVQ2AJCjkRKRpCUhwl5V8neyX2ciNKNC2oBSDZLzooty7iGLEXJqO0kSlnAg2AdDRdHUjzIhlp9IfBsNvPiL30A9Zt9Pp1yy07viT1jgoGQiPXgyT9/FgeteccwSFjnvBjULTGga/jtbSUIBFadh9WMmERgG2Jub9QQ1iFkilj0xTGy6UKUOAjFRCPHOpznRCwfeQFHaOKcNt9H8ku0iWu5LFVUGaO6qm/8jwazAEWsI8KjAWohVnBH79YZLC4KRnOR2oZco4BwZQJ0kvSJ/fb60F8WXN+RMnKfhnbU4NBol4L/TyIE75P7U2B3+ds3xEkrgnNv1W/Bu/2D47l7K6Dq2q/tSO0VCQ0vmHDX37SUQOkKm9rW9L4= 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: Refactors do_set_mempolicy into replace_mempolicy and do_set_mempolicy so that replace_mempolicy can be re-used with new code, not just the system call. Signed-off-by: Gregory Price --- mm/mempolicy.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 10a590ee1c89..410754d56e46 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -809,28 +809,20 @@ static int mbind_range(struct vma_iterator *vmi, struct vm_area_struct *vma, return vma_replace_policy(vma, new_pol); } -/* Set the process memory policy */ -static long do_set_mempolicy(unsigned short mode, unsigned short flags, - nodemask_t *nodes) +/* Attempt to replace mempolicy, release the old one if successful */ +static long replace_mempolicy(struct mempolicy *new, nodemask_t *nodes) { - struct mempolicy *new, *old; + struct mempolicy *old = NULL; NODEMASK_SCRATCH(scratch); int ret; if (!scratch) return -ENOMEM; - new = mpol_new(mode, flags, nodes); - if (IS_ERR(new)) { - ret = PTR_ERR(new); - goto out; - } - task_lock(current); ret = mpol_set_nodemask(new, nodes, scratch); if (ret) { task_unlock(current); - mpol_put(new); goto out; } @@ -838,14 +830,32 @@ static long do_set_mempolicy(unsigned short mode, unsigned short flags, current->mempolicy = new; if (new && new->mode == MPOL_INTERLEAVE) current->il_prev = MAX_NUMNODES-1; +out: task_unlock(current); mpol_put(old); - ret = 0; -out: + NODEMASK_SCRATCH_FREE(scratch); return ret; } +/* Set the process memory policy */ +static long do_set_mempolicy(unsigned short mode, unsigned short flags, + nodemask_t *nodes) +{ + struct mempolicy *new; + int ret; + + new = mpol_new(mode, flags, nodes); + if (IS_ERR(new)) + return PTR_ERR(new); + + ret = replace_mempolicy(new, nodes); + if (ret) + mpol_put(new); + + return ret; +} + /* * Return nodemask for policy for get_mempolicy() query *