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 4F879CD128D for ; Fri, 29 Mar 2024 06:57:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9B3646B0083; Fri, 29 Mar 2024 02:57:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8EE3B6B0088; Fri, 29 Mar 2024 02:57:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7DB656B0089; Fri, 29 Mar 2024 02:57:05 -0400 (EDT) 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 61DDC6B0083 for ; Fri, 29 Mar 2024 02:57:05 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2771D411A8 for ; Fri, 29 Mar 2024 06:57:05 +0000 (UTC) X-FDA: 81949169610.18.CD7ED15 Received: from out30-119.freemail.mail.aliyun.com (out30-119.freemail.mail.aliyun.com [115.124.30.119]) by imf17.hostedemail.com (Postfix) with ESMTP id 130DF4000C for ; Fri, 29 Mar 2024 06:57:02 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=sW0ssREe; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf17.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.119 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711695423; 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=AwEXLIJvfOIlKePIj3JTyBX7Gpl2aDHZTADkmkUue0Y=; b=jKYwMuulUavof4eo/n+V0aAYY0daqy0bo+mPGuPxcYRi8HH2ZQVfLMSTYZ0C5brAdRwCHj q60rFBBvb51vmdVZYb9gDReXbT9cnEiw4/B8W3I3wHv6SZapDYtV3C6fBGvMIKWAzONO6b HjRqv/owLpvinHgpLKY0fcUIbfQXnEc= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=sW0ssREe; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf17.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.119 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711695423; a=rsa-sha256; cv=none; b=p1YfYRDsWKjCQoC2EUNfGZPh1uRPVaavE15nheYQnjQycEbb24QFdZT/Cvpy+Onvr7gXqd k0Yh/drJhq5jjLmDdOMZo6I1xE1kqc1M93ZC6Muts7ra3UIEiNE59NOYoauFtD7wtoyxsY yPqUfyVBEe0cipYTytf6Xhp2ezJ3xTs= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1711695419; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=AwEXLIJvfOIlKePIj3JTyBX7Gpl2aDHZTADkmkUue0Y=; b=sW0ssREev2SrPO2U1eU6UcsIUzNnzMJG2hi2FSIfo658iANI40VjAZKaQtTlujsMNAiD8kyom5VxkgUrTYNAu8Un3XIpnCDNQ4+S4De0FBgakPl8iCsD3VJx17IcJJcuhX4ziY8NtgHs7FKNLtPTZJp1G3Iwn+Sjn0wtHjzxowU= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R311e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045176;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=11;SR=0;TI=SMTPD_---0W3VqFSX_1711695417; Received: from localhost(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0W3VqFSX_1711695417) by smtp.aliyun-inc.com; Fri, 29 Mar 2024 14:56:58 +0800 From: Baolin Wang To: akpm@linux-foundation.org Cc: david@redhat.com, mgorman@techsingularity.net, wangkefeng.wang@huawei.com, jhubbard@nvidia.com, ying.huang@intel.com, 21cnbao@gmail.com, ryan.roberts@arm.com, baolin.wang@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] mm: factor out the numa mapping rebuilding into a new helper Date: Fri, 29 Mar 2024 14:56:45 +0800 Message-Id: <8bc2586bdd8dbbe6d83c09b77b360ec8fcac3736.1711683069.git.baolin.wang@linux.alibaba.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 130DF4000C X-Stat-Signature: eydxeq6dqy41swu7y561csfgn79cinwh X-Rspam-User: X-HE-Tag: 1711695422-882142 X-HE-Meta: U2FsdGVkX18/dGEnIGWnOOpOwGqqYncdMY+OiW47FfbadJoRKcJ4ppi3jDbF9mjmu0OKa6jeNMIUr418868It54x755MYvS6RYFT8cnI8f8MyomWMkPMzIqziYbuLuFpRviuXIiY5OVReo6QYVTZz3t58zVoZZvVBWp1jrujK+2s7UeuUIO+k181pPDlQJM4OM7Uwwu2pLI8Pktx8O6BusvpGzopjU5QMRzNfWPQqmDfIAtQ5aInRmKSSCGHiaPE0DAbKMYX5zP0RvyXpDCHskmA/DUjnw1wWTcvUOTS7aTyKWXY9QtQZD5r+akE3Ba1hKnaphm253H5WpP60Qab4Aq+Ij70OcfNR9iUxrzbqdtrTieSVZuKzIPR6Sa5YDmhpSRJvzYwdGktT3p9JN9lRNMOKGfzLiefLdlczEglQM6BtyTFAbfa0dNWzUyRG8lWK/NQN4apfapfiy1jY8FV/sxGH7HYtaV6DbzTiJ3UNyJ/zx8aSNGGMZ5RujVWlh/xuroWidzP6nEkiGMZROAIAAv/cv/NOvkarJTfdgRLLboRmAI54LDoE8jliOR4jMh8cZMgx2p3RpL9401OzPWH5o8hs+ZyssSPlXtwhqDGlTDYt5FnWbaQQ5ao7LpHy9PdjuObgX8+NKsKk4hV75Q7VdTEv5uckqjg7vBDqq3M5UW1g/1YzZOT+kOe6KaYHEv+jTSuxkOu2FdypU+E3q8VS/bN40je6xcXTZSXPYlZ1Vj9+XpENzOpXa6tmt9BhJ4N5wp2/9aUmq5GF8zhPUJHcppN4LXlKMFsYqy6YuzJznfeNRZn4/Y/4+T1S3y/ESY+nrTJ8UAK97MWkjNhnRlNnblVHCCPcH9/wexbOm0A1IAIrww+0k8uoM96gbrwuGtDeW1q8CO6BSqe5E6HoksHMWMxTOhmJqzI 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: To support large folio's numa balancing, factor out the numa mapping rebuilding into a new helper as a preparation. Signed-off-by: Baolin Wang --- mm/memory.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 62ee4a15092a..c30fb4b95e15 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -5054,6 +5054,20 @@ int numa_migrate_prep(struct folio *folio, struct vm_fault *vmf, return mpol_misplaced(folio, vmf, addr); } +static void numa_rebuild_single_mapping(struct vm_fault *vmf, struct vm_area_struct *vma, + bool writable) +{ + pte_t pte, old_pte; + + old_pte = ptep_modify_prot_start(vma, vmf->address, vmf->pte); + pte = pte_modify(old_pte, vma->vm_page_prot); + pte = pte_mkyoung(pte); + if (writable) + pte = pte_mkwrite(pte, vma); + ptep_modify_prot_commit(vma, vmf->address, vmf->pte, old_pte, pte); + update_mmu_cache_range(vmf, vma, vmf->address, vmf->pte, 1); +} + static vm_fault_t do_numa_page(struct vm_fault *vmf) { struct vm_area_struct *vma = vmf->vma; @@ -5159,13 +5173,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) * Make it present again, depending on how arch implements * non-accessible ptes, some can allow access by kernel mode. */ - old_pte = ptep_modify_prot_start(vma, vmf->address, vmf->pte); - pte = pte_modify(old_pte, vma->vm_page_prot); - pte = pte_mkyoung(pte); - if (writable) - pte = pte_mkwrite(pte, vma); - ptep_modify_prot_commit(vma, vmf->address, vmf->pte, old_pte, pte); - update_mmu_cache_range(vmf, vma, vmf->address, vmf->pte, 1); + numa_rebuild_single_mapping(vmf, vma, writable); pte_unmap_unlock(vmf->pte, vmf->ptl); goto out; } -- 2.39.3