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 051E1C4167B for ; Wed, 21 Dec 2022 18:10:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8428E8E0005; Wed, 21 Dec 2022 13:10:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6D7208E0001; Wed, 21 Dec 2022 13:10:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5764D8E0003; Wed, 21 Dec 2022 13:10:03 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 3F4488E0001 for ; Wed, 21 Dec 2022 13:10:03 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 0BB801A0CF5 for ; Wed, 21 Dec 2022 18:10:03 +0000 (UTC) X-FDA: 80267102286.04.54DDE7D Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by imf29.hostedemail.com (Postfix) with ESMTP id 360AA12000B for ; Wed, 21 Dec 2022 18:09:59 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=nkDePdtC; spf=pass (imf29.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1671646200; a=rsa-sha256; cv=none; b=XthaCWCkAIYvmOX35eLeHcbfvdjXoUT4LOgDtTneZngVYkjb0z5jlqU/i5DBGgSRh3XhEq N1h4l0EHCHohyV/QlUnfD4sIJ7i1Fo/bb7j9Nb1huvMYI/2Ypd6hBl1TAxLGciydfc/MxF vpZTHjoJTTl5kGFQq5dgKU4PlvAOHRk= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=nkDePdtC; spf=pass (imf29.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=vishal.moola@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=1671646200; 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=3PmJb6CIEqNY6rS2poozpptUa/GTiPJRR/qxOS9Vnc0=; b=vroqs2ajFPZYd/2geuXX9+lp0GMNApB7yuQ5f/GAlWMtLVki205BWrzVe8dQYgEG5ymb7v 4NgeKB3U77ACekGebXnpsH5pY0NAh9E0EiSs8aty6Th4Yyi4xb42wunWxQjzNtAKDt3YVj A8kEhiHdjkpB+kDThAHQAd2zBhG8y7Y= Received: by mail-pj1-f42.google.com with SMTP id n65-20020a17090a2cc700b0021bc5ef7a14so2885523pjd.0 for ; Wed, 21 Dec 2022 10:09:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=3PmJb6CIEqNY6rS2poozpptUa/GTiPJRR/qxOS9Vnc0=; b=nkDePdtCIPB0JT+k15LKJQpvT/NCX++WS8dNEXwSceLOrvzJbV5KnFSi/Q69IbR9m3 pz0bbEASdkL5ZdY4gNIep4yTOxDqQn+6P2mNirIanQro8qY4+EtQs7/dTqDX5lFIhZ/n TAj3GOz59idRv9VjUz6+R5EikvGTM60+tFyZa7Efn6m94pwClx9r/IkHOqsvbxOBTehN 2j8mpE/fJEO71UEk6LCm68MCU5C3Szk13jN/lj+xzg73aRLX4FQNK8M1K67QCFEsH8Ww rfmAhg4rTRNPdQSkZ0GXgSLs9nXLKoZKuvw6ULiCzpmc618r3bMtR9tPRASbUks1tuQx uUKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=3PmJb6CIEqNY6rS2poozpptUa/GTiPJRR/qxOS9Vnc0=; b=8D9ilH+L/2n+meDUIcqSoAbNv7Qq74x8oneLMXTSwXaptLno2ocA7KqqK2kc0LY/yc Cg3o8GkeV/XzJZf7csep45MUi4osc03kVv4RG2o/29Eh9z3FhrsA4cvQ1bnD4SGqzLjP nVgvzdn1+Iba1MuaAzGnVWrIXz3xidweTzuHtWWTyQsSNO/BtxYsVeQvOdHkXcFdUxRG PeLWAI/3YEhd2eJ0ekqLfJ2FCxh5VYjsnb4s8o6KofFXAMZsw7OSCK+tC3yLJNzxyk0T mybw30h1Zoqzlzc30V4gr3VQvZUQiF5pQ0UVYPr2Lspz8B2KyHQiR2CMNF3Z/GKdHd4V Z41g== X-Gm-Message-State: AFqh2ko3NWBK65jbck9ifT+KP3FjyfKGSeyBofDELFF9v8mtAV7prdZ7 YmNgiS9L0HErZLxxPjCnoEScLDOcMqIWZQ== X-Google-Smtp-Source: AMrXdXtca0fMprEg2pyoicfMqzT5In5Towl3radcXSD/IZnbSgXS2K9Z4XEmJtw7RR7DJxDDggCraQ== X-Received: by 2002:a17:90a:fd09:b0:219:c40:e3c with SMTP id cv9-20020a17090afd0900b002190c400e3cmr2632387pjb.33.1671646198887; Wed, 21 Dec 2022 10:09:58 -0800 (PST) Received: from fedora.hsd1.ca.comcast.net ([2601:644:8002:1c20::a55d]) by smtp.googlemail.com with ESMTPSA id e26-20020a63745a000000b00477bfac06b7sm10110732pgn.34.2022.12.21.10.09.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Dec 2022 10:09:58 -0800 (PST) From: "Vishal Moola (Oracle)" To: linux-mm@kvack.org Cc: damon@lists.linux.dev, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, sj@kernel.org, willy@infradead.org, "Vishal Moola (Oracle)" Subject: [PATCH v4 1/4] mm/memory: Add vm_normal_folio() Date: Wed, 21 Dec 2022 10:08:45 -0800 Message-Id: <20221221180848.20774-2-vishal.moola@gmail.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221180848.20774-1-vishal.moola@gmail.com> References: <20221221180848.20774-1-vishal.moola@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 360AA12000B X-Stat-Signature: xjtu3mhtsomhabiq1dmhndb7xs93szhs X-HE-Tag: 1671646199-39642 X-HE-Meta: U2FsdGVkX1+/WckILo5WorPABQKEr5iRKXVOn2d0R0AZrt7uDnjXYtPlvMDYXGebTjsKM2BmWLY+fU/rAoq34POG0j2+5jMU4QpD4/WYeEvY9TEePaQwTPETEdZltmWnoXFvog8MadKGYgISer72HjgaajSuAP6TAchk2WOzAlw7R2AZvtSm+XupXlZEsCu7M7VP7T8HkgPMAlEXffJem1NY0nFFkz6JQKx7Fx/MN1S2EuNyL1TiC6g1bNtNpmB4mpCpWFtYUnMSwEcLEMw/AV//D5tJSiyfinPbxOZyXLVELi7Wf6sz2rpi2RHf1B98AP6QPBuCFGKDId8zLXxO7gPQiX4lvqFzdDDUKikWBBCeAIIfb6/SkL6aPFEiDbEHyq6FJvO/TEh94QiluJdlYS3TfMjd1CRUyPe3kQtIIUzOZR+s1o4dt9LnZiTsRzgFe6iteQM8yyQZKYwDlg/1Q9sjHisXa1K9lDs7msMwGCBdO74tJwpTTP2UDgJsTJxMhyXy/B7sDPJhJNpJ6xuI+RAotNA6Qtbeuh5zsB8YuJWYITpZq+fUFAVRndUoVXliqo0G6WUUJfX1ClBd/ossl8zBnsR9z3FkTfEkXXMqQdTJo0HUy2mjKNqIZtUR8HIhSna5B0NE3AUC7A+5ZZhXj51LrUKH4D3K4skAGAOjnXoP3BPfmntFZ86LCGZiyle7PJxLJRSFkWZ1tt/iaOEDCOJe5tXtj+8yEaRs8PfyEEE1iLCJJ0sZdBovqSo1uPmkfLuxwVngn6VoeeSTj7U12snzLObZzkW80u4XBQHTOBNENuOVxCZK41n5+46kynPm6ZWAAlBaS7StaZdMgVOKvkyNsXcPGqzAS88HV2aBOUnWl3/PLjbcCkpe8Bha701Yx508FxVpRGendKRVCEtq0Xb5F9P83ohxmWyidvkEUdM7qtH/15hgbNHlTxJMY03cD7sUpEWTD2AWMvNPegP FjSxstw3 QZAXcJcb0fEp51nBXkmAn7n3SDieDJFCu+YEVTnAxKQPARvfJni9lG3spFK+dePWNWeBTu/3pH7bfm34PSGLooqmmf13nAiUXenDobKJdr5qq8asKMM3sYGUBvQGOEO4mieTaVzFusfzUTtWFbvSEVc+s2hswFxFvzzIoCpHZ+ibFStzNzOuMB2eO3UXsYFU0CXcS3UaHmxSXqZ1pwV9LBWHI+5SzZq73mg5Opbez9j3sRlsT6fifVq3dg2CnxBoJzUwTj6IX1FvpZRhV1K14OueqxQ== 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: Introduce a wrapper function called vm_normal_folio(). This function calls vm_normal_page() and returns the folio of the page found, or null if no page is found. This function allows callers to get a folio from a pte, which will eventually allow them to completely replace their struct page variables with struct folio instead. Signed-off-by: Vishal Moola (Oracle) Reviewed-by: Matthew Wilcox (Oracle) --- include/linux/mm.h | 2 ++ mm/memory.c | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index ff46dcab2004..d29bfae4b71f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1968,6 +1968,8 @@ static inline bool can_do_mlock(void) { return false; } extern int user_shm_lock(size_t, struct ucounts *); extern void user_shm_unlock(size_t, struct ucounts *); +struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr, + pte_t pte); struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, pte_t pte); struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr, diff --git a/mm/memory.c b/mm/memory.c index 37d1763c4d47..4000e9f017e0 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -625,6 +625,16 @@ struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, return pfn_to_page(pfn); } +struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr, + pte_t pte) +{ + struct page *page = vm_normal_page(vma, addr, pte); + + if (page) + return page_folio(page); + return NULL; +} + #ifdef CONFIG_TRANSPARENT_HUGEPAGE struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr, pmd_t pmd) -- 2.38.1