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 88B6EC7115C for ; Fri, 20 Jun 2025 14:35:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 303416B0096; Fri, 20 Jun 2025 10:35:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2B4196B0098; Fri, 20 Jun 2025 10:35:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1CBF46B0099; Fri, 20 Jun 2025 10:35:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 127786B0096 for ; Fri, 20 Jun 2025 10:35:23 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 9791D160C98 for ; Fri, 20 Jun 2025 14:35:22 +0000 (UTC) X-FDA: 83576026884.04.108787A Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf20.hostedemail.com (Postfix) with ESMTP id 042021C000D for ; Fri, 20 Jun 2025 14:35:20 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=BGgl4Ywg; dmarc=none; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750430121; a=rsa-sha256; cv=none; b=kPpaIBuzU6C+z9yh3sfoXU2OCUesVwalDeY59dDBLXSe3EeooTDhj9+A7vKDZ3BAxY7w3O r1IBwwFhalwKDCD33LkLb2ecLYkUvHUHs+J3V+gLZDQfj0D9jvvxX9OFVjG8XNgmuTxZYc r/tBGBuPJsT1eWmDzLWjL7MbvHWKUNs= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=BGgl4Ywg; dmarc=none; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750430121; 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=lZQBciVA5OeuYh81fOodmLtcu/a9Fi/yqGjigdSt1Mo=; b=3npu6ykTz64i4Y5P/JgvLjxE3gz2xYccZz+jSQPNPW2uUuI327QMnRjxEmT9Yx8cO6oP4a qcvsELzp3Qkgk8mNbAMr84jPH/6gXGv9MpQD3zgD1tV/Rg4ZvtoHdcRFiFw4xU9aRWlA0k rHrPT1DkCd6nSgV9KsrxAg1ajlgZcIE= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=lZQBciVA5OeuYh81fOodmLtcu/a9Fi/yqGjigdSt1Mo=; b=BGgl4YwgEEN+I8ASQH7sJo/B2c /XhsGsO3TF72+OIV0HR9tNfAZ+ljUT6Jcgtb9mEOGFzb96ZTz2u03RVtT2HXWKzRzgU7NClpipVOP /SGN3ap6410IbUhuzW0THqudwb6uvcoe1bikju6ejzIKmKfxG2CfptYyMOPRpxrCGmiH9Y1W6GfpY Md5fd5CxKkwOxqVBLNvuzGQrG4sqSjL1++nZBAJqtMUKwp07ru0QCV0KLRazLakI9rOBW153ul9iT /k3tvfKxxkKuUw+7bKgro5jtbJutMi8W1J+ekn+kGM7f0aglk6IbwCbguJDV8O6cJqDXd1LgJz9Hj CmZo4iXw==; Received: from willy by casper.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uScpf-0000000Cp24-1qme; Fri, 20 Jun 2025 14:35:07 +0000 From: "Matthew Wilcox (Oracle)" To: Shivank Garg , seanjc@google.com, david@redhat.com, vbabka@suse.cz, willy@infradead.org, akpm@linux-foundation.org, shuah@kernel.org, pbonzini@redhat.com, brauner@kernel.org, viro@zeniv.linux.org.uk Cc: ackerleytng@google.com, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pvorel@suse.cz, bfoster@redhat.com, tabba@google.com, vannapurve@google.com, chao.gao@intel.com, bharata@amd.com, nikunj@amd.com, michael.day@amd.com, yan.y.zhao@intel.com, Neeraj.Upadhyay@amd.com, thomas.lendacky@amd.com, michael.roth@amd.com, aik@amd.com, jgg@nvidia.com, kalyazin@amazon.com, peterx@redhat.com, jack@suse.cz, rppt@kernel.org, hch@infradead.org, cgzones@googlemail.com, ira.weiny@intel.com, rientjes@google.com, roypat@amazon.co.uk, ziy@nvidia.com, matthew.brost@intel.com, joshua.hahnjy@gmail.com, rakie.kim@sk.com, byungchul@sk.com, gourry@gourry.net, kent.overstreet@linux.dev, ying.huang@linux.alibaba.com, apopple@nvidia.com, chao.p.peng@intel.com, amit@infradead.org, ddutile@redhat.com, dan.j.williams@intel.com, ashish.kalra@amd.com, gshan@redhat.com, jgowans@amazon.com, pankaj.gupta@amd.com, papaluri@amd.com, yuzhao@google.com, suzuki.poulose@arm.com, quic_eberman@quicinc.com, aneeshkumar.kizhakeveetil@arm.com, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-coco@lists.linux.dev Subject: [PATCH 2/2] filemap: Add __filemap_get_folio_mpol() Date: Fri, 20 Jun 2025 15:34:47 +0100 Message-ID: <20250620143502.3055777-2-willy@infradead.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250618112935.7629-4-shivankg@amd.com> References: <20250618112935.7629-4-shivankg@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 042021C000D X-Stat-Signature: gbj6ym1wk53gpmjogrp7ctgyma9b17sp X-Rspam-User: X-HE-Tag: 1750430120-703558 X-HE-Meta: U2FsdGVkX19OuFqvBCkbwvQa2zwrJGiosXATqNXmLSI4cTsnoJEpQh3bt8zWlK1qIgnYLDumil6aUoK5fIKx8Ck4TccV/96+TVkn95PNmHJagHRbFCbNjFzefpOgGh4qTyPuCTRKzcvoDusxRzS5/wDe0sxI6REk5acBRfbOayxVTlT5yh2Ix6s+BoMrxPZ5bouh6efUpQ95Lq1mKi9v8yOSzhXmNO78A8NqvJhc8iFT0eK8u1LK2R2nzp3qLryiot286wzyHxFayxlYmN0IkvfZxJ9AT7tWKdAJc7dZSLEOZAFQPL0WQ+i04QziXrgrqBMpfnAcKTc7q8tqckcrU8JwpoGco0rICogzUc0f6TDxE5KogNzQyYp+xo2cOEKeOsP4q8E4Y0RcMG62dCEfheYtMxWyNWilFubCu6S8mlu0g7w7l+hxqU+aRs19ETga5s4S19TFobNMtAAQbQEp5ywXdqT9CU8b29clMBi/fGxbfEwyHVWZaOMXInTBvhu22TIBLXO7MSJeWt2MY6TzqQ3A4DGd6XO61s0AOO67tNYF6GrX/bNuWkxYukzKVvpa1Z3PUD3DZSRybTlMI1k37+gQakGUbrVQtAOGdUyw6Sez2yEhhaAEDzqfaxr02psTcROdAwtC0+MkAmoCniVsGgFmNXO6lGE9SiQ2l9WMf0ea5XS6Auu64j/Fd9i43GYFCJs8ITyFKTtcjIpk7kBiQPYAsc3vl5ibCRT8OAkgVDJe7Qj4o33j+PMDOOTYoHg7ZWU+AS/A4SEOThNFnJQqk3joF+oimIK6SL9Hv6L8aWZvJfeZPD3PT990vKHyfyVn8SiXllm1tvyXPKlvnmWkdn+KZpZgCK7G+r4uQ3sZ/aZWkVPlmj02d3C/jsxMYAZ8doV75cKNR1dr/J68w7wh/WtLhGhLctlSzNGUX2/NmrTRo23iJ2CI8J4ESLKhac2/SZVjXl66T5i7NYfceuT zgWwQlfp XQw7Fv6unI58+IUaHzJnTABaoIgE965Q2MIjXOtOFDHn0W/txn1ivimcHz1HTQKQNqnUSwuTiuuIEYk9+70W/O/yLX5QrT9jC2Y8PIM8Owl3BlIaGsnk7KY7BsCA1PJADoSvwUSCfX9NUKqCDupbnUyBDUYsSlKyVIbiAblnKK3wJypddUit0si37qS/GONmwELzLzGcQeKPHo6vssO9KhZ98IRwc2ap+kMSgFNHNU+TM2h9+l8Qah6fH2S09wjTY1+lxGf0AfJgI9CXFgLJutxe5PyA+i1D2jElm/BWwAAGtEQU031jpGT0ty85pTRoLqBvi+8ly+UkXQHQQLz6rhtiI9L0vizjLkQV0FLMRNLjTdPw= 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 allows guest_memfd to pass in a memory policy. Signed-off-by: Matthew Wilcox (Oracle) --- include/linux/pagemap.h | 10 ++++++++-- mm/filemap.c | 10 ++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index c176aeeb38db..1cfbf7b8f573 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -745,11 +745,17 @@ static inline fgf_t fgf_set_order(size_t size) } void *filemap_get_entry(struct address_space *mapping, pgoff_t index); -struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, - fgf_t fgp_flags, gfp_t gfp); +struct folio *__filemap_get_folio_mpol(struct address_space *mapping, + pgoff_t index, fgf_t fgf_flags, gfp_t gfp, struct mempolicy *); struct page *pagecache_get_page(struct address_space *mapping, pgoff_t index, fgf_t fgp_flags, gfp_t gfp); +static inline struct folio *__filemap_get_folio(struct address_space *mapping, + pgoff_t index, fgf_t fgf_flags, gfp_t gfp) +{ + return __filemap_get_folio_mpol(mapping, index, fgf_flags, gfp, NULL); +} + /** * filemap_get_folio - Find and get a folio. * @mapping: The address_space to search. diff --git a/mm/filemap.c b/mm/filemap.c index a26df313207d..597d146cbb3a 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1896,11 +1896,12 @@ void *filemap_get_entry(struct address_space *mapping, pgoff_t index) } /** - * __filemap_get_folio - Find and get a reference to a folio. + * __filemap_get_folio_mpol - Find and get a reference to a folio. * @mapping: The address_space to search. * @index: The page index. * @fgp_flags: %FGP flags modify how the folio is returned. * @gfp: Memory allocation flags to use if %FGP_CREAT is specified. + * @policy: NUMA memory allocation policy to follow. * * Looks up the page cache entry at @mapping & @index. * @@ -1911,8 +1912,9 @@ void *filemap_get_entry(struct address_space *mapping, pgoff_t index) * * Return: The found folio or an ERR_PTR() otherwise. */ -struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, - fgf_t fgp_flags, gfp_t gfp) +struct folio *__filemap_get_folio_mpol(struct address_space *mapping, + pgoff_t index, fgf_t fgp_flags, gfp_t gfp, + struct mempolicy *policy) { struct folio *folio; @@ -1982,7 +1984,7 @@ struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, err = -ENOMEM; if (order > min_order) alloc_gfp |= __GFP_NORETRY | __GFP_NOWARN; - folio = filemap_alloc_folio(alloc_gfp, order, NULL); + folio = filemap_alloc_folio(alloc_gfp, order, policy); if (!folio) continue; -- 2.47.2