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 7FF8FC369D5 for ; Sun, 27 Apr 2025 19:00:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7C54B6B0012; Sun, 27 Apr 2025 15:00:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 775DF6B0022; Sun, 27 Apr 2025 15:00:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5ED896B0023; Sun, 27 Apr 2025 15:00:28 -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 3812F6B0012 for ; Sun, 27 Apr 2025 15:00:28 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 76977BC1B4 for ; Sun, 27 Apr 2025 19:00:28 +0000 (UTC) X-FDA: 83380739736.16.D087F34 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by imf04.hostedemail.com (Postfix) with ESMTP id 97E4F40013 for ; Sun, 27 Apr 2025 19:00:26 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Xt9D9J6t; spf=pass (imf04.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=ryncsn@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=1745780426; h=from:from:sender:reply-to: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=IDmeL4hx/iVNmF7D4U//Rj1ZUKsUj7xb6gC03dWplSo=; b=0XXp9lit2xM6TGoL5ncf+WaIsBxMNc/j+R/07llICdfLWDMIjPF5esYkcd4kKMFAZi37P8 2UIXDfLoAXbodbhoY7960FwnoiberlOCuz3l8rwOBRxyjguzdZbTbDlqTsIbDl01ZOxFMP xjAbNjiyB1WFKs0H3KChGO4ei5apv6k= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Xt9D9J6t; spf=pass (imf04.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745780426; a=rsa-sha256; cv=none; b=LefaivW9nTj7rTHX2VjxwAI2N9Eji74ONtlE42EvBwRREKAnF1AQsyGp6OfH+82nHok5H4 5Ug3ZFgoOlCrKqGPME4qf65Noy8Djd7l4X+7qU/OivlVG3tImalcKtQ2SZEzN66X1fxCb5 kfxZn70CeCnc98dM+T4FsYT9sEY5HP8= Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-736c277331eso4751507b3a.1 for ; Sun, 27 Apr 2025 12:00:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745780425; x=1746385225; darn=kvack.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=IDmeL4hx/iVNmF7D4U//Rj1ZUKsUj7xb6gC03dWplSo=; b=Xt9D9J6tpWlDp4vzRKlxclFHrMfBbZm8XPfc6FI0fQjDNCNGu6bmVd65HvjPjO8die o1IHmwGy/ji2hN3O+RtWzDK2PW4UihFNILvC37MG5v7uh7mi6s7yTkGT3XXyON+MP0m5 F+RR89h+ZI7/rkYi5T0k2L2qlWElllD4OcgZmyCvwavfNuWG88FfviGVa8mVJ3OYafu6 gxrMslE55861sugVvqJw8DHLRa0XqFWKZPacyraPqfFabrMDnlio98piOwFGuF2nUazb ODaAGxNMmUry1On4xBkucMg7PW7TSAEL4VCFm1E2hakLahLV/cHwBIdUid0DRWHY5mhW gkmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745780425; x=1746385225; h=content-transfer-encoding:mime-version:reply-to: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=IDmeL4hx/iVNmF7D4U//Rj1ZUKsUj7xb6gC03dWplSo=; b=E7kWhSrm4QLvgmClo8R7G4VMrX7VaAiPLwwnfQuI1fdpvKuC7Fb0lRBZdGhj9wQOdD iKoBbUT13W7VXAZUlOAg8w8IgI5tXbMaCA4GatWonOCllTpM/JPQohZr6NTXD7niVE9D b3rwyjIy7xVGjllE/AFYGtxq0s6tHOfOZodht31Ow7KAUl1xTcykIQloT1x16uOlN393 m5hxj9wZam02f0PT1W624In0q0g2CNPHvRsOgTfDTV9ek9Xezafk6Sh+S0RmwonX6C91 u5xAO/0ra2VMnR4ar/2O1fzTuiSMgH15UHybBZZUUZB4cEQnSnYvMNKQRxUpud5FPfR7 k3/g== X-Gm-Message-State: AOJu0YwL6xCCx/beY3gcdo412V9BPSNldMHgXWPAxW00M9MW+APQVPtD 76jS4NMQCmC+aDkLyPBZAjmQ2WMP8iWeMPGaC1mJ+3wXGHu7e2KLQQQ4OXH/fqg= X-Gm-Gg: ASbGnctQKMrMcjEPMO6KHWAybLCF0a6tGNcGHo8gnaBFkcvkNoptSSeQ7UpxRLsR5ab 93M5eeFeOhexnfrAAGRUyPKbyCeU+2W3srQEjLE44bnNoxOJPDY+7dnDlnQL6llibbd+lfz/++2 C3dW8iKs5s9tUYIM2wg1lM8FrAobmQNCqAgKkVwMByYuYuUOOerodxwpdpC7iRdWOlcRZRapcCh Pl8fL5HzehxtJo7GH0hphbsZYT5g9vnv9UTKaGLerWoyegY5cfzIXPRolnPqU9kGrTHUY59jWHV anHSGHTu6RW6/tZ9WSR2DGa3neF8Gml8aY4kqqAPrvkoFqMnTpbvZ7Ye8AvDww== X-Google-Smtp-Source: AGHT+IFmqHyI30cpvwrLTTi9PNKbANg/76Q7YdrGeP4dTjEc5/oTjQAc7FEio1Ywcx1BN3zSAl8SqA== X-Received: by 2002:a05:6a21:6d84:b0:1f0:e6db:b382 with SMTP id adf61e73a8af0-20445d6f33amr19304516637.8.1745780424787; Sun, 27 Apr 2025 12:00:24 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([115.171.40.102]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b15faded554sm5862153a12.72.2025.04.27.12.00.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sun, 27 Apr 2025 12:00:24 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , David Hildenbrand , Hugh Dickins , Chris Li , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH 5/6] mm: move folio_index to mm/swap.h and remove no longer needed helper Date: Mon, 28 Apr 2025 02:59:07 +0800 Message-ID: <20250427185908.90450-6-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250427185908.90450-1-ryncsn@gmail.com> References: <20250427185908.90450-1-ryncsn@gmail.com> Reply-To: Kairui Song MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 97E4F40013 X-Stat-Signature: 1x3yfhs6wak7gowuz7t64brkfzk4qd15 X-HE-Tag: 1745780426-35221 X-HE-Meta: U2FsdGVkX1/owxvIiufbi0a/rfIKxz8U6rd0AOuwjafxykGOuFthsXHPVH45YL61jke1dAHtWNd9FDrbmLIRm06VcRx+CpQUe/+xEvssNPDwupKlTXNCUilu2wddYrpemJ3hpH4mSWbY6xlJuNl8eMkjU2/Nou2RLyRK0m3sq9kikwPW9svFPolO1RPi5mo00uh15sTjR8XYCwxM9KUR1s/DfFoEAKS92FKeMgR0VYUaNfrHyIRYJWNToWTy1pQmWVZhu3naD5QOVoj2Hp83GriIxHavMNjnGiGI+cuicfYIYej3qoflCjR6lOoOmeNk46qym9BfQgGm7Bgmk/GMycxxTE9h9L5AUQXfrXS6SCocwQzOr4HfegiXkNo+6YT8cL/0+bVzE0DpPV4mdT+ormK7ynAL5wlBjAiBxUVcTGjODBNWEpF4PO79ZOZ9eTd9IRgIvzRxXS85Rpe++jnZp42uGnCLPVv9adjiAv0ElMcwvyzG2RhGj61inm0e5PcIlS3KU0HqwVXm1AWFo4psIwAd0G1GvpGe+2inPhvB8e3hRT2Rv5aFl+Xkfpg6dcg6lHLDcBsP6vHlkEC5W+VI/IGApJKfDm2Mq/obSI5j5DyaFtBuor9/UScLftTh4tHAT6YtznZEp1rCtu38+CdO+njf7Sx4WlFPHPSgKKfiaegePItijsBHjdDmZ8dYYpHytuKVR2bDv6iDSm+9wpht/dxyzYlZKK1dt5cHq4KW8CUTG2dwJmab/DESfbCb/IeaM4jvOH9XHe4wiEvIihF03fdJDL7eS89AVl4OCco6Hdo4QC2PG+20yPCaXcd/nNAPC8p9NBfGHn6s33ELUWeHTJWBXUeXsRU0/fnmaHSAtly/HLAjgte9iIkcEGAZ5FdJBc/6c2vU5ppavOFrWKnw7UKXJJB403W9KoX4Bf38mS1v6Sr36BncyUnmV5G76/WmsWZQgZI1UW8Q9Idnook H0JXwDs+ Y0Q7xVJH1AKaK83OO6D0Z/pugaa6LfhhkXMesdrLZjp4m8mflY3+rOoee+XYGrgLZ5VODpFQ4VAO2Cf9H4Z9p7ZE/rffosznbPnHHEtHFsCAtEb7rR3bwKkrIuUK/DOCqUFoxyE2vKiYzZrz52J+mR41gKKoG43OLAR2t0y4lplkuZ/qGQ5wezvHi419fShUCgMKFPTwzLlO596ZjU0bMmn96ezHPz1dwHP7sW0lUcFzlavvwfVFHceLc18uXpmzFk6tgFm/Sm35iKpuJVMxMsEpMpqwjCbxFBcLsILhuEB01uu8wBS9RqDXOUfSYF7UfntSgTrV/yN0v7dGDRm/zQJH6Pgm5ujAdH0Cvr0GYvzaOPX971ZukKIIFN0S00zb5L/ClLfR7KhjBAxHzOQGb/Cn3IaTAQQMQxSJMtXS33OT4Ay/n2RI7/l88lbxlWp2rBj3piLzNd0KYUeiatU33mfTkETUAe5W1hBtLJaAo79kruXwdzKq061fpAmk7otQ7+T87lsrKXxyOs6jVLhyKEbHMSkyUbP28Nf/9kK+bXTBQb5Ad4fLyGzLLIKXAYZDrzWq+PxPupzQ0rUpAG0jV8ROIamaOHZwxVwPmWvTHoANfjfCOiIMgJwszz1EAd0vlYVR9uxazxf8/BZOhUUciAICcAQ== 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: Kairui Song There are no remaining users of folio_index() outside the mm subsystem. Move it to mm/swap.h to co-locate it with swap_cache_index(), eliminating a forward declaration, and a function call overhead. Also remove the helper that was used to fix circular header dependency issue. Signed-off-by: Kairui Song --- include/linux/pagemap.h | 20 -------------------- mm/memfd.c | 1 + mm/migrate.c | 1 + mm/swap.h | 18 ++++++++++++++++++ mm/swapfile.c | 6 ------ 5 files changed, 20 insertions(+), 26 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index a0bed4568c66..f61fdb8e165d 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -884,26 +884,6 @@ static inline struct page *grab_cache_page_nowait(struct address_space *mapping, mapping_gfp_mask(mapping)); } -extern pgoff_t __folio_swap_cache_index(struct folio *folio); - -/** - * folio_index - File index of a folio. - * @folio: The folio. - * - * For a folio which is either in the page cache or the swap cache, - * return its index within the address_space it belongs to. If you know - * the page is definitely in the page cache, you can look at the folio's - * index directly. - * - * Return: The index (offset in units of pages) of a folio in its file. - */ -static inline pgoff_t folio_index(struct folio *folio) -{ - if (unlikely(folio_test_swapcache(folio))) - return __folio_swap_cache_index(folio); - return folio->index; -} - /** * folio_next_index - Get the index of the next folio. * @folio: The current folio. diff --git a/mm/memfd.c b/mm/memfd.c index c64df1343059..ab367e61553d 100644 --- a/mm/memfd.c +++ b/mm/memfd.c @@ -20,6 +20,7 @@ #include #include #include +#include "swap.h" /* * We need a tag: a new tag would expand every xa_node by 8 bytes, diff --git a/mm/migrate.c b/mm/migrate.c index f3ee6d8d5e2e..662e5dc44b33 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -50,6 +50,7 @@ #include #include "internal.h" +#include "swap.h" bool isolate_movable_page(struct page *page, isolate_mode_t mode) { diff --git a/mm/swap.h b/mm/swap.h index 6f4a3f927edb..2f18d21c17fb 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -50,6 +50,24 @@ static inline pgoff_t swap_cache_index(swp_entry_t entry) return swp_offset(entry) & SWAP_ADDRESS_SPACE_MASK; } +/** + * folio_index - File index of a folio. + * @folio: The folio. + * + * For a folio which is either in the page cache or the swap cache, + * return its index within the address_space it belongs to. If you know + * the page is definitely in the page cache, you can look at the folio's + * index directly. + * + * Return: The index (offset in units of pages) of a folio in its file. + */ +static inline pgoff_t folio_index(struct folio *folio) +{ + if (unlikely(folio_test_swapcache(folio))) + return swap_cache_index(folio->swap); + return folio->index; +} + void show_swap_cache_info(void); void *get_shadow_from_swap_cache(swp_entry_t entry); int add_to_swap_cache(struct folio *folio, swp_entry_t entry, diff --git a/mm/swapfile.c b/mm/swapfile.c index e727021b8e2c..bf6c98009909 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -3662,12 +3662,6 @@ struct address_space *swapcache_mapping(struct folio *folio) } EXPORT_SYMBOL_GPL(swapcache_mapping); -pgoff_t __folio_swap_cache_index(struct folio *folio) -{ - return swap_cache_index(folio->swap); -} -EXPORT_SYMBOL_GPL(__folio_swap_cache_index); - /* * add_swap_count_continuation - called when a swap count is duplicated * beyond SWAP_MAP_MAX, it allocates a new page and links that to the entry's -- 2.49.0