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 6C5F3C83F1D for ; Sun, 13 Jul 2025 17:48:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D1D8A6B0092; Sun, 13 Jul 2025 13:48:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CF5176B0093; Sun, 13 Jul 2025 13:48:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE3BB6B0095; Sun, 13 Jul 2025 13:48:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id A8FE46B0092 for ; Sun, 13 Jul 2025 13:48:30 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 75D6BC03B3 for ; Sun, 13 Jul 2025 17:48:30 +0000 (UTC) X-FDA: 83659975980.09.3B63B1D Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2068.outbound.protection.outlook.com [40.107.244.68]) by imf06.hostedemail.com (Postfix) with ESMTP id 80193180007 for ; Sun, 13 Jul 2025 17:48:27 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=HIOFSBOQ; spf=pass (imf06.hostedemail.com: domain of shivankg@amd.com designates 40.107.244.68 as permitted sender) smtp.mailfrom=shivankg@amd.com; dmarc=pass (policy=quarantine) header.from=amd.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752428907; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jBfZ/TZ4VBwWXgzIw5njBfpLgomVCPsMziWmRrKE2V8=; b=iRMeYB+a83k46ZvsY/0iZlHQvf/Qe34MtLK/vEobQq4HzHsZmvR4+EupvxD7nqaGAZZyWk I8diARi+//m2grUlTh+CHuY9YLNdD00SWeykoCiwEP2Q2JqFKkWpKSc2aFGlCeYyoihdi/ +iVijosR3P88tCG5RJZFtOr0mdq38DI= ARC-Authentication-Results: i=2; imf06.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=HIOFSBOQ; spf=pass (imf06.hostedemail.com: domain of shivankg@amd.com designates 40.107.244.68 as permitted sender) smtp.mailfrom=shivankg@amd.com; dmarc=pass (policy=quarantine) header.from=amd.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1752428907; a=rsa-sha256; cv=pass; b=re7Vb1S6mzz1CzbFPlvwN2NaoSd96Ci99GKqGi9eeBwAZb3EXj+jVV97ou5lqyh0XKKaW+ Y3NH8JS81OWE4mEvbwLqceicjv1So7r/03Y2wFXcXUsEmtpPT8Ik3SW6pHvopD4lBR/8fK PBZJAP880BK2fSoAIVgP6c5jnwijD4s= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YnvvPwVn1ezEbH3gST2VXReK64KxocDBmKm1oQGW1OtwZUZ57p/yfAy2tjYZOiApgR/7hN4NEUQ3cTr4GF+e/sXE5cGZfAVIWBojaDzDBABinmqTK2Gfem2gKwOS2nVFiBOx/3mn87J5H8Na0pLEa70GyVsKmUnlAy27+oDldos+ZOZdnkODNJW6gdODc66GuMlx/h83hzY+vBDy6x2BehmrJYPdIzr5CSRnD7xq/UKw28Uavr7cHNmP314iWFPhObhtR8DlrS4fk+TdWxP2Ed5d9aZ8lKRx7XxJBB2aLJw/2/UC8NEgDZsgh6MkuG0EKawNWPZWMetgRrfKvCwxnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jBfZ/TZ4VBwWXgzIw5njBfpLgomVCPsMziWmRrKE2V8=; b=E3dXrOsZqbn3NJm8NDUm0hENXZFu8R4BY/27fdzR0/0PAvzEI/HA5eNMwGxnuFofleZ3XZHaIC4fp+SqWb7of5TDEdBeS9MlNg/tEyONT/z9+548pS3NksjUA3P9r/sE7oqRIqt8UFljDohSA4v//zwL/LvZtI/9UkSkaSTPEWcfx2GT4/4fxqGyEQfVRSQ4bbebJfNZ+RwI7gHxd3F2hf04YOVHGfkqLB1D/N87R/WhKyYsaab9SfaHkjtL6Mi/rGjYPGjfJtoahCC9JrQ5ALw+fio75FGq6KWcb5QOOmLFCukMGl/2m8IQy+CQiydkDcYHhtnOIzvtQyqG8mJIyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jBfZ/TZ4VBwWXgzIw5njBfpLgomVCPsMziWmRrKE2V8=; b=HIOFSBOQcCCc6TKNuNE5U6/J9qX1PLkiy0ccUtgpf3o/9YKbE3WmjhBNyqp5Nau7ONY1oz5Yb/OYS657cSRN3/NBRKQzmVjHazj1aCaGUgRkVR97v1rYTgnaDXKaYBcIxU8ifKScL4gbz7/rDHJAZLAOguSHTBVdxrste6kt6oI= Received: from SJ0PR03CA0268.namprd03.prod.outlook.com (2603:10b6:a03:3a0::33) by SJ0PR12MB7034.namprd12.prod.outlook.com (2603:10b6:a03:449::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.29; Sun, 13 Jul 2025 17:48:21 +0000 Received: from SJ5PEPF000001CB.namprd05.prod.outlook.com (2603:10b6:a03:3a0:cafe::b5) by SJ0PR03CA0268.outlook.office365.com (2603:10b6:a03:3a0::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8922.30 via Frontend Transport; Sun, 13 Jul 2025 17:48:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001CB.mail.protection.outlook.com (10.167.242.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8922.22 via Frontend Transport; Sun, 13 Jul 2025 17:48:21 +0000 Received: from kaveri.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 13 Jul 2025 12:48:05 -0500 From: Shivank Garg To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH V9 2/7] mm/filemap: Add NUMA mempolicy support to filemap_alloc_folio() Date: Sun, 13 Jul 2025 17:43:36 +0000 Message-ID: <20250713174339.13981-5-shivankg@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250713174339.13981-2-shivankg@amd.com> References: <20250713174339.13981-2-shivankg@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CB:EE_|SJ0PR12MB7034:EE_ X-MS-Office365-Filtering-Correlation-Id: 313ac2aa-23e0-42f0-5b78-08ddc2357544 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|7416014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?U5YA1zd76wql9WaDp4opB3ZInqs6GB8yMC3DxybFo3n9qWw25XD6i0pyYbWm?= =?us-ascii?Q?bcUbXajRi8suBBatXFqY7BdKXBjIFVd5Njivkt+oPiIca4JdPEh/6J1M6RCP?= =?us-ascii?Q?eTiQU/cS0VihqaLgT6dFcmoqIHQ8dXZrqYKXJHQYzVcwQmpq8avjGuoMKnsA?= =?us-ascii?Q?r8NIPN9Q9rd0mHG8P8mcsmsoT4ScTA2iW89qQD6MFU3/I0prIyfXu3alasom?= =?us-ascii?Q?wnfIJxNbLc368OJg11XqcvzPJNAJlQw/fRzTXAN+V1pueX0/Z/UDP/6wDRpB?= =?us-ascii?Q?ZdfWMM8FAYT/mEwmf5EO3BCH4jZQerIngL1Ad9EXzcY1Ihls9vUeXZowKtXH?= =?us-ascii?Q?uNXfJ3KXWLrbe3bMjS68HzcaLXXRI8aQvHhJ8sfLjDJhiC4GFLR0t7XF8ssc?= =?us-ascii?Q?YiV1hgvI4LsAHdsQL7zMPXwg3Vm+a+2DEkoPKHmjcuShXPDT4XCY0EvSYPnQ?= =?us-ascii?Q?bQPLNLjdlO9HZkyBOxlJcnsvUysY/tsClnfyRW6v8TXGCsz7T9YSCpgAubfe?= =?us-ascii?Q?J2fLgspc5E4sN2ZV/m6rnElkEpbTv0sPlvwD08Zi6ToEfKWjsq2TVobL6KbB?= =?us-ascii?Q?Acsauo8UU/VGcotjFcsCpA91roNMMnutfQZXHTOrQAeZaEVvcYbryHvTwHsv?= =?us-ascii?Q?KcQWVOLLFDC2bEsFD1hMgkvpQ0/u+iVtSKSI2EpPk++MJCmVtbdxQyjUu91+?= =?us-ascii?Q?ONjDNt4oJTqDWPHBy37bkp0waD9zDfrWlPE2zbpyNscdLRC5G87XV8ZcNUI4?= =?us-ascii?Q?z888QeVpu8plnDKpKQnG/UIq6GuHE/erEvpSJuYU+1UUr7W3YpWbMseOKqPR?= =?us-ascii?Q?p6t/Q4R2Tti3ZqSuOOC0Nb3CfwlvMSYpkwLw50b3bn0DY7raoCbGvHMkeh47?= =?us-ascii?Q?cZqRoKWHloiEwLAQ16UroJ/bWKl4k5rovhm4rxOeFl172Rnp8CUSenDoWkkA?= =?us-ascii?Q?wqkoVpl2gqPa0LCw5MA2qRYOh/LzH04uvQs3rliPjW8CpFsEHDXXx0qoCwe7?= =?us-ascii?Q?vGTCsZak0AzYvuqxn/HMN0NVB62YrJoqPAski6tQbKBihDvPfmlNmNZeNpUJ?= =?us-ascii?Q?D7i5q1b+lQKR/TPitZ1F7JgFbUVFKE16net9MMEPVgio4f+ncLSXw45JH5zk?= =?us-ascii?Q?krEjObSxdJwecf3xJtEAM99HrWzLDPdnAcy9rf9NNNfgd3qGhkN0FcYwZv1K?= =?us-ascii?Q?a1kerLSp6je7Y526QGqfJ6em6fPQuWshWVhdQrrdX7xBdtHOfEQ7HOGT4UB/?= =?us-ascii?Q?oc1XR5b71gfNZ5rLVSw5U6jJIR6v0biZMDI00yuQSXJpj4lE8PsHu1xkZ1X2?= =?us-ascii?Q?mNQu2rftt+cN/FIfWEFzxNlpVjEOxYEdmzQ3iQoB2Lg/3jKWWX3Dw1VBChy0?= =?us-ascii?Q?Yq8RAgXwo8PX909PBUZMYL/yPf+LoRlS8lPKINhXKYomiVby8WY6p3HOxB+F?= =?us-ascii?Q?MTccZQk7MVxLks7g9MMXrzNPA+Xj/p/Q6wZEN9UmXfg+P4934iJxbXLhNxY2?= =?us-ascii?Q?w3wfRYNdL9Btn6UpgXcPAzIGm1ubIXN2d88i?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(7416014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2025 17:48:21.1599 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 313ac2aa-23e0-42f0-5b78-08ddc2357544 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001CB.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7034 X-Stat-Signature: mwoszrbq17poqyew1rxaqe4fhdukw1fo X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 80193180007 X-Rspam-User: X-HE-Tag: 1752428907-625727 X-HE-Meta: U2FsdGVkX1/lgcE/efJQbRrwd388GrlkQRIQxMI7EHScEhZcqwbZv0hTtA8kM+kwin18wu8pCmX+EBFewPUEUMm2+SomZtJe+sxCi/jmLrJUetDWI0jdutnf9L9eH7VEUTx80J9W5fYpYKIy/+sp7nA833Urh3vwdQUmZCWzZ4nHCYzYwBvhBqRQwO++4niAUbtOuLwZdgdA9mM4HHSqr01BhYumkPYoL8sCczHTm93fts+tLx1MhJ2VCrwwJ1vaPAc/g0JxxG+tDcpIlYhmRFPA403bCMgr61zozXOHX6+T77WXc6xTUOoClifDVRY62nJvWhurkKFcIVcpp2IqqkjkVVerIHLXeX88qLX8a3yR/CmXqcM7NjlZnlAzM+id+6pK3/IeR71JxU02rH0r9ftXW45NLkVTxXDT0KdIEMek5zDRmulVB6/HNK4XinMqgE7TeOknlAq6SGieD8ufHD3e2+akx0UfXdn0IhHRLer62SX3MPiHNYovJ7YwgWlEv+VtYLTDQAa3Rf3DOlfn2AFYXDfzvf4cm4HpNw2Cu4IGgo8NQY8q9KuK6tr9LqSpUzOm9fDetXvK/0a7RKjinHOeAJNyJiBPjYqC17nRBDJI0fIEqVThDEnGwcWBPIiDKhW9iru+oO5YjMp6hXvVvFB+ypOdMNFjhYsXE3Icz26lQydEQO54j6FlS/qZ7nYWa6VxqrNUI57qTmM04cEqLg2rtTEIAjEVc9Jego8aFpbfCcrha26+bD87KrjX78j1WAiB/TbRMFITcLUAU2q2NlrGfX82KZaONUVS4ovPmxBJlyjOqeqXJ7mCSNPtF4HEOI7Tzlpx4oy/dpft0bZDY74j/blrnTAB9F/kJ86U5DS+QkGwPBcy2pfulgA1ttA7PiSuB6RRFl7wEAaudwWe4+XXtqOIm4SmJ4HQaeBCHQGJOxAfX605n1YVhVq5R6wNqJMaUD44Grl3oyfL0He GE//atC+ P1kRr2KTMfG/QDq5DL8+GTANByVRYl8gNseT8GCSW6IT3n90pt7MCG6ljVYcff+6h/sxyla6jTYndIaa1+oZkaH38v0Zk9cOkVjXfeatMFX0ZrzyMhK40VTqUkgFbU3S4TEdxmGZYxtAjCd/roYSI2/MGQsc2aTkrHL93l2hINvWZD47IZDBEN3zexHnhfk1m+VSbkzkI3izGgJD4XaMTWY0zsZ6c48Bl0AB9iA+W7KNDU+QKxLWA4UU7U+1kNm1nOdobUst4R+qbPJxy7+bl8ThfV+qEURzpNqVZJPt+exbBRo1QvUvMbe3h4EHPrQXqd5PyqnnSz6Rua+Zv15r0+gcMHhsN6k9yWqhRSDLcvzFAD3zf+mtLsb569iIvP3CtPQr3kIsEkcrg8avUKYwqmVPOQgL67gIKEgSnnA/Zza0DL7KfpE0x6pMPPq2MnnTDdHFR36RLoQh9XjNuXuor4jlYGo6+DXFJl0xdn2bL57KYNDrC8gzhkI/kV1gzyaMwm4aC+qCFk6DitKnKFSq8QAlMQtCHfI4LtLEQYIY8NfJ5hV71AGUKx2HWiXo+o0BMvSEuMRuHeT/1lObG8lgpX71o6bHM7FroVfX9daTDqvWsHqQBHiulu3VQJqZLpeJ+DXdfNhizgPcQGUbtPH9xn9sBCmx4FP6sU/g4m6qqAIHNTk3WwY1YKyRi4yn1ai+/2L7sPZT5sNZxW3neimKyaGtknePT+T81bDMHYZ7ZMB95h+7asIPU/lnGew92U5359XPCnPHW0c38mOsvFrWTmouvuA== 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: From: "Matthew Wilcox (Oracle)" Add a mempolicy parameter to filemap_alloc_folio() to enable NUMA-aware page cache allocations. This will be used by upcoming changes to support NUMA policies in guest-memfd, where guest_memory need to be allocated NUMA policy specified by VMM. All existing users pass NULL maintaining current behavior. Reviewed-by: Pankaj Gupta Reviewed-by: Vlastimil Babka Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Shivank Garg --- fs/bcachefs/fs-io-buffered.c | 2 +- fs/btrfs/compression.c | 4 ++-- fs/btrfs/verity.c | 2 +- fs/erofs/zdata.c | 2 +- fs/f2fs/compress.c | 2 +- include/linux/pagemap.h | 8 +++++--- mm/filemap.c | 14 +++++++++----- mm/readahead.c | 2 +- 8 files changed, 21 insertions(+), 15 deletions(-) diff --git a/fs/bcachefs/fs-io-buffered.c b/fs/bcachefs/fs-io-buffered.c index 66bacdd49f78..392344232b16 100644 --- a/fs/bcachefs/fs-io-buffered.c +++ b/fs/bcachefs/fs-io-buffered.c @@ -124,7 +124,7 @@ static int readpage_bio_extend(struct btree_trans *trans, if (folio && !xa_is_value(folio)) break; - folio = filemap_alloc_folio(readahead_gfp_mask(iter->mapping), order); + folio = filemap_alloc_folio(readahead_gfp_mask(iter->mapping), order, NULL); if (!folio) break; diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index 48d07939fee4..a0808c8f897f 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -474,8 +474,8 @@ static noinline int add_ra_bio_pages(struct inode *inode, continue; } - folio = filemap_alloc_folio(mapping_gfp_constraint(mapping, - ~__GFP_FS), 0); + folio = filemap_alloc_folio(mapping_gfp_constraint(mapping, ~__GFP_FS), + 0, NULL); if (!folio) break; diff --git a/fs/btrfs/verity.c b/fs/btrfs/verity.c index b7a96a005487..c43a789ba6d2 100644 --- a/fs/btrfs/verity.c +++ b/fs/btrfs/verity.c @@ -742,7 +742,7 @@ static struct page *btrfs_read_merkle_tree_page(struct inode *inode, } folio = filemap_alloc_folio(mapping_gfp_constraint(inode->i_mapping, ~__GFP_FS), - 0); + 0, NULL); if (!folio) return ERR_PTR(-ENOMEM); diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index e3f28a1bb945..f9ce234e1a66 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -562,7 +562,7 @@ static void z_erofs_bind_cache(struct z_erofs_frontend *fe) * Allocate a managed folio for cached I/O, or it may be * then filled with a file-backed folio for in-place I/O */ - newfolio = filemap_alloc_folio(gfp, 0); + newfolio = filemap_alloc_folio(gfp, 0, NULL); if (!newfolio) continue; newfolio->private = Z_EROFS_PREALLOCATED_FOLIO; diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index b3c1df93a163..7ef937dd7624 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -1942,7 +1942,7 @@ void f2fs_cache_compressed_page(struct f2fs_sb_info *sbi, struct page *page, return; } - cfolio = filemap_alloc_folio(__GFP_NOWARN | __GFP_IO, 0); + cfolio = filemap_alloc_folio(__GFP_NOWARN | __GFP_IO, 0, NULL); if (!cfolio) return; diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index e63fbfbd5b0f..78ea357d2077 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -646,9 +646,11 @@ static inline void *detach_page_private(struct page *page) } #ifdef CONFIG_NUMA -struct folio *filemap_alloc_folio_noprof(gfp_t gfp, unsigned int order); +struct folio *filemap_alloc_folio_noprof(gfp_t gfp, unsigned int order, + struct mempolicy *policy); #else -static inline struct folio *filemap_alloc_folio_noprof(gfp_t gfp, unsigned int order) +static inline struct folio *filemap_alloc_folio_noprof(gfp_t gfp, unsigned int order, + struct mempolicy *policy) { return folio_alloc_noprof(gfp, order); } @@ -659,7 +661,7 @@ static inline struct folio *filemap_alloc_folio_noprof(gfp_t gfp, unsigned int o static inline struct page *__page_cache_alloc(gfp_t gfp) { - return &filemap_alloc_folio(gfp, 0)->page; + return &filemap_alloc_folio(gfp, 0, NULL)->page; } static inline gfp_t readahead_gfp_mask(struct address_space *x) diff --git a/mm/filemap.c b/mm/filemap.c index bada249b9fb7..a30cd4dd085a 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -989,11 +989,16 @@ int filemap_add_folio(struct address_space *mapping, struct folio *folio, EXPORT_SYMBOL_GPL(filemap_add_folio); #ifdef CONFIG_NUMA -struct folio *filemap_alloc_folio_noprof(gfp_t gfp, unsigned int order) +struct folio *filemap_alloc_folio_noprof(gfp_t gfp, unsigned int order, + struct mempolicy *policy) { int n; struct folio *folio; + if (policy) + return folio_alloc_mpol_noprof(gfp, order, policy, + NO_INTERLEAVE_INDEX, numa_node_id()); + if (cpuset_do_page_mem_spread()) { unsigned int cpuset_mems_cookie; do { @@ -1977,7 +1982,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); + folio = filemap_alloc_folio(alloc_gfp, order, NULL); if (!folio) continue; @@ -2516,7 +2521,7 @@ static int filemap_create_folio(struct kiocb *iocb, struct folio_batch *fbatch) if (iocb->ki_flags & (IOCB_NOWAIT | IOCB_WAITQ)) return -EAGAIN; - folio = filemap_alloc_folio(mapping_gfp_mask(mapping), min_order); + folio = filemap_alloc_folio(mapping_gfp_mask(mapping), min_order, NULL); if (!folio) return -ENOMEM; if (iocb->ki_flags & IOCB_DONTCACHE) @@ -3853,8 +3858,7 @@ static struct folio *do_read_cache_folio(struct address_space *mapping, repeat: folio = filemap_get_folio(mapping, index); if (IS_ERR(folio)) { - folio = filemap_alloc_folio(gfp, - mapping_min_folio_order(mapping)); + folio = filemap_alloc_folio(gfp, mapping_min_folio_order(mapping), NULL); if (!folio) return ERR_PTR(-ENOMEM); index = mapping_align_index(mapping, index); diff --git a/mm/readahead.c b/mm/readahead.c index 20d36d6b055e..0b2aec0231e6 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -183,7 +183,7 @@ static struct folio *ractl_alloc_folio(struct readahead_control *ractl, { struct folio *folio; - folio = filemap_alloc_folio(gfp_mask, order); + folio = filemap_alloc_folio(gfp_mask, order, NULL); if (folio && ractl->dropbehind) __folio_set_dropbehind(folio); -- 2.43.0