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 113BDC369D7 for ; Thu, 24 Apr 2025 00:02:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 489306B000A; Wed, 23 Apr 2025 20:02:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3E7656B000C; Wed, 23 Apr 2025 20:02:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 28AF36B000D; Wed, 23 Apr 2025 20:02:06 -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 0A3436B000A for ; Wed, 23 Apr 2025 20:02:06 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 6010E140779 for ; Thu, 24 Apr 2025 00:02:07 +0000 (UTC) X-FDA: 83366984694.24.E394CEC Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf08.hostedemail.com (Postfix) with ESMTP id 652A6160018 for ; Thu, 24 Apr 2025 00:02:05 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="NQAR9p/2"; dmarc=pass (policy=reject) header.from=oracle.com; spf=pass (imf08.hostedemail.com: domain of libo.chen@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=libo.chen@oracle.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745452925; a=rsa-sha256; cv=none; b=BKtX5GnT46TKSoPb0xvBbO7bTiwsbSR/SgSqhhoho2g2zrvSw8Dczd6j+lDstT+Hhd/mbC 0qWc1kOPTArnoZExuOOlA18bqnG56zUkwPhVpKhVSfmq7wpT6soHHvCJlQyZ/M3TWXfrqd I9DW1yN/O4UsBzMmXqtkqPApGzwql2c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745452925; 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=pokXBCX5Ded9Lnz+unOijz8gr7rZOR1qtecYySzC12Y=; b=LvSy8lcqNhyUzP0TQ5KYhy7RgIZzjdrKOnbsAoj6vvCxyVho8Bf2PfNp3EDIUN7Y9VYqHy WdNI2rlU/09f9N9vibklYzkwheMYC+2Bch/vHlRj++vnvf3uWPgwbMVB1gz14KEwAX3+Mj dV7r6eUviOWEpv2bCJV1g5K4xIPGKVE= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="NQAR9p/2"; dmarc=pass (policy=reject) header.from=oracle.com; spf=pass (imf08.hostedemail.com: domain of libo.chen@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=libo.chen@oracle.com Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53NLMLH2017449; Thu, 24 Apr 2025 00:01:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=corp-2023-11-20; bh=pokXB CX5Ded9Lnz+unOijz8gr7rZOR1qtecYySzC12Y=; b=NQAR9p/2W/KkC+/L86oEl gp2W1r13YQ5gUWtRnqdGRHu/EP4RnbmQcs/w4RbsnlgFTMUe7OcFHWJIpW6wd1TY zS6WIuNE4JhdpFNN+5GL11vuqnCeWkn94gm7q8ybtRzRfYO17fmKLO6EFfKsmpk/ y/kMP+QLxjHID9Lkkx/rE/r6N808PTNxf5DMebIh3Aazf5nbGDbT+37tAVzuI7xW tEALVMCnOL8NPWicfjB8svv4dxoYIB/7rxlM6hYziDaWzmvngOeeG+e7aa7Itp74 DF5tc5fUBu+asxuQb0cz1ui6IWYFBAngdFSVrCR0rMYuHouFesnqwsKSTB6iaAUV w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 466jh9jj2u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Apr 2025 00:01:54 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 53NMSOma030859; Thu, 24 Apr 2025 00:01:53 GMT Received: from pps.reinject (localhost [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 466k06jr0y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Apr 2025 00:01:53 +0000 Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 53O01oOm004345; Thu, 24 Apr 2025 00:01:52 GMT Received: from clb-2-bm-ad2.osdevelopmeniad.oraclevcn.com (clb-2-bm-ad2.allregionaliads.osdevelopmeniad.oraclevcn.com [100.100.254.172]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTP id 466k06jqsh-2; Thu, 24 Apr 2025 00:01:52 +0000 From: Libo Chen To: akpm@linux-foundation.org, rostedt@goodmis.org, peterz@infradead.org, mgorman@suse.de, mingo@redhat.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tj@kernel.org, llong@redhat.com Cc: sraithal@amd.com, venkat88@linux.ibm.com, kprateek.nayak@amd.com, raghavendra.kt@amd.com, yu.c.chen@intel.com, tim.c.chen@intel.com, vineethr@linux.ibm.com, chris.hyser@oracle.com, daniel.m.jordan@oracle.com, lorenzo.stoakes@oracle.com, mkoutny@suse.com, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 1/2] sched/numa: Skip VMA scanning on memory pinned to one NUMA node via cpuset.mems Date: Wed, 23 Apr 2025 17:01:45 -0700 Message-ID: <20250424000146.1197285-2-libo.chen@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250424000146.1197285-1-libo.chen@oracle.com> References: <20250424000146.1197285-1-libo.chen@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.680,FMLib:17.12.80.40 definitions=2025-04-23_12,2025-04-22_01,2025-02-21_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2504070000 definitions=main-2504230161 X-Proofpoint-GUID: QJa0f7b4SHhahwcbDcCBKNa-1K40sAWG X-Proofpoint-ORIG-GUID: QJa0f7b4SHhahwcbDcCBKNa-1K40sAWG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNDIzMDE2MSBTYWx0ZWRfXwDMISqLfLQot 5Y4msvxMFdbe+59/FcmyfBMPDCvmg5uq0tg8SQg5FHLqn66fO3y+IHLv61qH2ws58bGLHZJXMnv 71OKxolwbYBQzvmyFOLL+HRlTpJeZ2XCbsn37E/TwiZcgJ1IltDfks8jJKl/GTzrz/r2/40otO5 igpd3KO+8JdVLSadOQoXBO4MYj0bYx+xungzI2Zxa7myTmqgsePSlvsRmW7/7ZHoaavcZqlVDnM kKL+zEasxUu2YiEK7CmoQeXkSnSNtXdTVbHgiK+tOA+PlJdn/baI4OxnTICJA2ZSZcyU/BrI7bO f3sPjdbuGQnmEjTN4ZRfyUaNb5fd3fLCh5iLXazMj18A6X96sZl4wIw/OT3USn+NHH7r80kLCMA QKeKJUVB X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 652A6160018 X-Stat-Signature: p5873o1ng6p9r87i6rpdzwyff5cytpj3 X-Rspam-User: X-HE-Tag: 1745452925-253181 X-HE-Meta: U2FsdGVkX1+ehtYxyTsNTQvYx3aEHTSM4B5tiZcAY7IsC3Ic0jx+b7RG46+LQjr03pMhm+9ojIFJnqFmeG91+8+FkFbgyx1EjSy5QY3tdh/iwtsAKI+JLe9/aH9yCY7cIm6rfSx5jtMWrHuC407aOLiwUxm/lYbOCyCrGORR+pDokiIvth1AZ5GDHHn9f/QeCNcTptDt5CWiQFV/M/wsLtr89RMXUmVCDRAxAfh2XzXvzKrNMTsuTuyxcZKBv84PZk2fmFVu3MghUvg/3+quVTH6jPNhY749Neyvp/Hp78r9MhWprLIQA9UE9J6IST9eRxLLaQ6hJAU5u3GGbyp6p11qUL1EodPr5i078U1/lpy41S36Ro+eHH6LD7v4VWH6BjIzutlUseVQJh/0UW9rEBFeDRDOkk5c6BLtJAv346t2DJgwAHPnVKza8eMpE43UgR8ZPVOiUCSxKpwkmRyWdoGRaGjogOSfylXfI59NT3Uk2s2vVFit14H3M9eZwKH4B+fbG7/2Ke+MDdcCep9SjpJi37Lp7ZwKrjN9q1xRky7wOr1S6wN8ZIpSNWMdlC93O2d5Otg60DQxVR5wgE00IWM459sNl3tsQSMs5+VkGD3vwcYbVAG6VBuHVSZspaymMWrS6C9ovGRVBbRLLHMcHO4D21Jp3ncPaG6h0G1iagwvE158Io371hHCPJrzHX7906Wc83qhse0heK5Sb+tGgvSNBzKKhNg0lE6zKC1g8T28+JzX3xbFmD05t03PUJ2oVb090kNSMFNTGGXCYdko522mrgrDcX9KtLnxOgkdr6l2OScBbGETkgWLh0yY+FiJtGnqNi+AAFt9rDjmzho9aGqZHX+4CVMIBUr5O16EW9hHDdiEC12QPRAkoU9idEb0yKK//myP/UnSj+vtvKEmNg== 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: When the memory of the current task is pinned to one NUMA node by cgroup, there is no point in continuing the rest of VMA scanning and hinting page faults as they will just be overhead. With this change, there will be no more unnecessary PTE updates or page faults in this scenario. We have seen up to a 6x improvement on a typical java workload running on VMs with memory and CPU pinned to one NUMA node via cpuset in a two-socket AARCH64 system. With the same pinning, on a 18-cores-per-socket Intel platform, we have seen 20% improvment in a microbench that creates a 30-vCPU selftest KVM guest with 4GB memory, where each vCPU reads 4KB pages in a fixed number of loops. Signed-off-by: Libo Chen Tested-by: Chen Yu --- kernel/sched/fair.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index e43993a4e580..c9903b1b3948 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3329,6 +3329,13 @@ static void task_numa_work(struct callback_head *work) if (p->flags & PF_EXITING) return; + /* + * Memory is pinned to only one NUMA node via cpuset.mems, naturally + * no page can be migrated. + */ + if (cpusets_enabled() && nodes_weight(cpuset_current_mems_allowed) == 1) + return; + if (!mm->numa_next_scan) { mm->numa_next_scan = now + msecs_to_jiffies(sysctl_numa_balancing_scan_delay); -- 2.43.5