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 14802C3DA6D for ; Mon, 19 May 2025 22:33:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 45A556B008A; Mon, 19 May 2025 18:33:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 40CF56B008C; Mon, 19 May 2025 18:33:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2AE106B0093; Mon, 19 May 2025 18:33:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id ED21E6B008A for ; Mon, 19 May 2025 18:33:53 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 0A8C8BEF76 for ; Mon, 19 May 2025 22:33:53 +0000 (UTC) X-FDA: 83461111146.09.CE63AFB Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by imf03.hostedemail.com (Postfix) with ESMTP id 6267F20007 for ; Mon, 19 May 2025 22:33:51 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="JuK/LALz"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.219.42 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747694031; a=rsa-sha256; cv=none; b=fT7gPaZ/pdUAOJm4sj2ywfpCHVFPcwBuDJlYosVPnMZg61vnZp99OSDDu095dTi63V/Gw/ jIG/JEsuRX2DB0d8ZB7aCQH4n3KfSJ+3hL1jnZql8qVJFRIuS9fCG21PLp+OZO/V5BfTBA L1MTjpd+rikLVc74iO4oMfKkhJt3yJk= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="JuK/LALz"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.219.42 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747694031; 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=I6GYjk8Dr4mM5akd3epW+BXD17ctmGGIEMIRcpD2XKI=; b=YpEiexnqu7nWBC1Xygf4/X5/WYX4YlZfHxQSJpNrb8R4GA/JmD4+iCSnSSYgZidr1t9+uP AeYmbubW3AiRXZzkbQ7rI7P28eqxRejgHf5ks9Iw7jCpIhX6GgP0vwH51VLUGkFlfZKSi2 1bnZL/6dliH8xO1INodxAR7h4KwAS80= Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-6ecf99dd567so58084876d6.0 for ; Mon, 19 May 2025 15:33:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747694030; x=1748298830; 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=I6GYjk8Dr4mM5akd3epW+BXD17ctmGGIEMIRcpD2XKI=; b=JuK/LALzQ4tOjGDjrt7P3F+WRSqiEr4psry6sE+B3aKwV5FDpFjVqmKLuEwp9ZG9Oa rsG4mBvFJj4CF59yjUhUGssGkYGrOmduo9GR5Xm+KTgRXB/4Zrfql3W0/QwELHwuiOMD vbJ5hel29jhetXWj+lKz/aRDu8ffM5OnqvmxW0vFAAyzqW4Q9Gfl+1SM92M6kK05d3Eu 7d4wtYyTf9YFDtsgiySUrPcy2aOJugzwyYniE2aaSUEV6WFiJmfWypT68WU3o1AsBUQX BLe5IMVqMynkfGFqEiAGgdXuG3IywaD6RlLPpCunJOuPXe5fPKVj4TFYrnaz0CI16x6t 5D4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747694030; x=1748298830; 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=I6GYjk8Dr4mM5akd3epW+BXD17ctmGGIEMIRcpD2XKI=; b=h8S+vYQUDrnCZgipp/8gMO+Js7JLg70OkIf+8tiulH2Y3HbKRuiJZccRsdkV/tgAnL piXTjcZ65BpEHJ3/d9c3CfG+uKQrI6EpKUVHO/rtKZClNzr+gTqnPrQFmeW5rv71KwGi atNPhw7+R5iUl81HR9FI7k54FUU2Rzgb4yO2yGSczIc5IYL6B1xkBRywKMnDAjLBSatw 5EP63KBa+rFB7dcZKgrZ1Vw+NsUBAqaoBlB3TD358aoyJrbXaWjCCGpmOU36kAhiI/ke nLXiju2DOgk34jUejvS1oFnINnUySmmEnsjO5kaZALUjvRSltz98ebeHZp2u1yMw0LCr 0EEQ== X-Forwarded-Encrypted: i=1; AJvYcCU0O/QB6jV7/jT7kxZxPX2eMj8Hp2XRIqQDE4lIeJ2/vyYfNnfqslDZLBpqWzw8GqUn/5DixFFGSw==@kvack.org X-Gm-Message-State: AOJu0YyiOVJ1EIORW3xPjCKwCxl10W+IAfn4yM5dTpRxMZ2QKnvxLTsk bFcOdxrY3yBu7wJua+es1MPNYmKJh7kZpvS3wJjNj3J+koPc9iHLH+IDamP0rC/K X-Gm-Gg: ASbGnctq2g9gyETcsETGmcIo6P/zleTZ18AopJdw6juj/0ajOe1yv6pST2WrLBmU6W7 jnfWb/+95uczjWPUtcP7vokuvDeUblGQyH/O31VCkn8VntYNb3AvDJERoVjqVFzNK2tOiN+Hgxn ioCez3yubbBH2p2e52QredQy8wJTsLkMbbgYpsQg7t9MAIhV8/Uc4imkNoL5p9p6gO26DtpMeww hn5g1/O/cnLPKIkCSMBy3jiNyCFOIL64ZrrbIha9ue0CeFjDovDeCHTtvYFV1uEp7UYX4wUWIbD j6NlDfMcJJGS7zuTTdAhprv0yxKfby61EkwkgXE03ac1jk1R X-Google-Smtp-Source: AGHT+IGig5bxPGk+qAd4HDl5M5Hmea1b5/tyBwQX9Q6xIpmS8HDGuKJHgByhih/F1gdkpGOen/gW7w== X-Received: by 2002:a05:6214:2302:b0:6f8:a667:2959 with SMTP id 6a1803df08f44-6f8b08e5416mr251126186d6.36.1747694030472; Mon, 19 May 2025 15:33:50 -0700 (PDT) Received: from localhost ([2a03:2880:20ff:4::]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f8b097b69csm62531546d6.103.2025.05.19.15.33.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 May 2025 15:33:50 -0700 (PDT) From: Usama Arif To: Andrew Morton , david@redhat.com, linux-mm@kvack.org Cc: hannes@cmpxchg.org, shakeel.butt@linux.dev, riel@surriel.com, ziy@nvidia.com, laoar.shao@gmail.com, baolin.wang@linux.alibaba.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com, vbabka@suse.cz, jannh@google.com, Arnd Bergmann , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kernel-team@meta.com, Usama Arif Subject: [PATCH v3 4/7] prctl: introduce PR_THP_POLICY_SYSTEM for the process Date: Mon, 19 May 2025 23:29:56 +0100 Message-ID: <20250519223307.3601786-5-usamaarif642@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250519223307.3601786-1-usamaarif642@gmail.com> References: <20250519223307.3601786-1-usamaarif642@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 6267F20007 X-Rspam-User: X-Stat-Signature: dcfwye6xxy41ocmfzij6iswpnbobzs35 X-HE-Tag: 1747694031-41450 X-HE-Meta: U2FsdGVkX1/VU1NrdBVxw8cACthn/mN4PVzqgByHv3IBMmWmt9gw/ziCVt4FGBejMyAkY2PDEjJlUH4qjNyUCFFja6GvO70dN91aDmtemtrAxLpdHX5gh5u6/B9ikfDwygpR0drnTr6VBKql0dXNVVzTgycNaz1mGTjJtI+S14AyvVmLW7knq8RpPFrG9ikmhaLsp0GuwUZNyxQFXB9FC+pVitVf7QUZxJEluKWLwdkcuekh10NCDpWjTrG2Mfy92TzC+NcJELpxL2/REAoaFEmnh681RcArYggk7TEQc8X2sP3dyPyEjK7O7ZEhR9/L3gCDOgbIjMc1StGBDZYPSeuVXkFZe+itTcVZJLxtBxiZS6Q55dcZ8Cd2OmZiVL4uJjfFZzI/liwKs1JkR4mqDgVAfvu5AR/IW2kWQ+mOz3/xs7YqjlRtAOh+B1u9EkB0odaBgre9/i9S06tJBXQF6zL4iqtnpzrLdqCwl0ZOAgGpCa8xGGh+DR7fxik6ZotOKld2Qc9BRc8aQG9tKBbWPcbinq7R+BodX+CYOGZMk2JBAlk4FR6JUR8rizdH9H+gTpB2ktADwikXgLv/xuYcWmbtRtdxQIATGo7L4MLVZw7eCmVFspqXbKQT2Htfxr4OmwoRCoC96dA49Oje3jzf4HYXqY7JBlB7qd0WEparxCEItLmCVW6u01GOZfXGOWuqxWSb7RAOtEosUy3OZyvwTsORKRHmC2LOfT8oJpOJUPzHBNnlm4cSmPFd7uGpmvv0VEwVHfkHYWKhUp3Gw8ShGZFxMXHkMA0E3+3GDXiQMn9Mx+afwhvNU9kRUttH8Vl6diPnry14/NP2tBaK6+dHnMr39m4cfKbejdCh7s7ZbdhqvctJF7zzjSyFlxkmw0lTDwxW0f6dgr779Er5TE7Qbe61xlZ8J9atItibfZbH/NP4nA8jeuYDsIJFqHqIjA6x2X+TRQpSQLmR0Jt1ip6 yZHHqyzB ZB1BRMnT+mKHN7CY7azOtaHC1mRfdwCq6/mwMYb34PafCRxzZ7Nk+AcLExE01d3BxN0m8audwa+KcywKTy8ZPnMW48gAsBa5U68pZ0afFm8r4g7jCIm6AG7qgVLSRYLPMtXiF1sm3rHzT8OaLOKbs7KtVZKDWLhu8JSxnf3nOAC+OsY+p0apQvr1ZnQ== 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 is set via the new PR_SET_THP_POLICY prctl. This will clear VM_HUGEPAGE and VM_NOHUGEPAGE in mm->def_flags to reset VMA hugepage policy to system specific. (except in the case of s390 where pgstes are switched on for userspace process, in which case it will only clear VM_HUGEPAGE). Signed-off-by: Usama Arif --- include/uapi/linux/prctl.h | 1 + kernel/sys.c | 17 +++++++++++++++++ tools/include/uapi/linux/prctl.h | 1 + .../trace/beauty/include/uapi/linux/prctl.h | 1 + 4 files changed, 20 insertions(+) diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h index 33a6ef6a5a72..508d78bc3364 100644 --- a/include/uapi/linux/prctl.h +++ b/include/uapi/linux/prctl.h @@ -368,5 +368,6 @@ struct prctl_mm_map { #define PR_GET_THP_POLICY 79 #define PR_DEFAULT_MADV_HUGEPAGE 0 #define PR_DEFAULT_MADV_NOHUGEPAGE 1 +#define PR_THP_POLICY_SYSTEM 2 #endif /* _LINUX_PRCTL_H */ diff --git a/kernel/sys.c b/kernel/sys.c index 6bb28b3666f7..cffb60632d97 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -2668,6 +2668,8 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, error = PR_DEFAULT_MADV_HUGEPAGE; else if (mm->def_flags & VM_NOHUGEPAGE) error = PR_DEFAULT_MADV_NOHUGEPAGE; + else + error = PR_THP_POLICY_SYSTEM; mmap_write_unlock(mm); break; case PR_SET_THP_POLICY: @@ -2688,6 +2690,21 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, if (!error) process_default_madv_hugepage(mm, MADV_NOHUGEPAGE); break; + case PR_THP_POLICY_SYSTEM: +#ifdef CONFIG_S390 + /* + * When s390 switches on pgstes for its userspace + * process (for kvm), it sets VM_NOHUGEPAGE. + * Do not clear it with system policy. + */ + if (mm_has_pgste(mm)) + mm->def_flags &= ~VM_HUGEPAGE; + else + mm->def_flags &= ~(VM_HUGEPAGE | VM_NOHUGEPAGE); +#else + mm->def_flags &= ~(VM_HUGEPAGE | VM_NOHUGEPAGE); +#endif + break; default: error = -EINVAL; break; diff --git a/tools/include/uapi/linux/prctl.h b/tools/include/uapi/linux/prctl.h index e03d0ed890c5..cc209c9a8afb 100644 --- a/tools/include/uapi/linux/prctl.h +++ b/tools/include/uapi/linux/prctl.h @@ -332,5 +332,6 @@ struct prctl_mm_map { #define PR_GET_THP_POLICY 79 #define PR_THP_POLICY_DEFAULT_HUGE 0 #define PR_THP_POLICY_DEFAULT_NOHUGE 1 +#define PR_THP_POLICY_SYSTEM 2 #endif /* _LINUX_PRCTL_H */ diff --git a/tools/perf/trace/beauty/include/uapi/linux/prctl.h b/tools/perf/trace/beauty/include/uapi/linux/prctl.h index d25458f4db9e..340d5ff769a9 100644 --- a/tools/perf/trace/beauty/include/uapi/linux/prctl.h +++ b/tools/perf/trace/beauty/include/uapi/linux/prctl.h @@ -368,5 +368,6 @@ struct prctl_mm_map { #define PR_GET_THP_POLICY 79 #define PR_THP_POLICY_DEFAULT_HUGE 0 #define PR_THP_POLICY_DEFAULT_NOHUGE 1 +#define PR_THP_POLICY_SYSTEM 2 #endif /* _LINUX_PRCTL_H */ -- 2.47.1