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 02185C3ABA9 for ; Tue, 29 Apr 2025 11:50:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6C29C6B0024; Tue, 29 Apr 2025 07:50:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 622686B0025; Tue, 29 Apr 2025 07:50:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4769E6B0026; Tue, 29 Apr 2025 07:50:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 2195A6B0024 for ; Tue, 29 Apr 2025 07:50:41 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 091CC81149 for ; Tue, 29 Apr 2025 11:50:42 +0000 (UTC) X-FDA: 83386914324.04.776676D Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by imf21.hostedemail.com (Postfix) with ESMTP id 567C51C0003 for ; Tue, 29 Apr 2025 11:50:40 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LHEb5Tln; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.210.170 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745927440; 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=Gj9JA1kBvneMSULxD4kUsNOIWEoG1iJn7hfWXbxwfws=; b=eIHA+5+mrk9dk+549F1J2TKag0e/Yc/QpRXT/gbX5uYrmEIJ+Y5Maph6ycW/jcPtyBxDIy H9yi2ABU9A6FLYaYX6Rmrk4Y7a9RlPG4Xs+3ET4068yKFsX35gbV8YyZW9CF7M7DjH3lXx LQUtO5nebeW0Z09vrEJafO7K0Kbb5BE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745927440; a=rsa-sha256; cv=none; b=DxN1VTRYj0LMQ1zFG08IBu9ZPTve5zxEfTyoXXjHgLgxQ4WQsLFH+nK1vXa/hR6fb+Ai4e 32Nk7z7UOT7m8eLdqzdnwxZMDe7NKnlzupGpT0ldZeUpwDUNUqPGEGXb8gynrkQ0WQtjk+ /IMsP3NQnc6OcHUMdXtSoaL+pMvKcmM= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LHEb5Tln; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.210.170 as permitted sender) smtp.mailfrom=ryncsn@gmail.com Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-736aaeed234so4893256b3a.0 for ; Tue, 29 Apr 2025 04:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745927438; x=1746532238; 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=Gj9JA1kBvneMSULxD4kUsNOIWEoG1iJn7hfWXbxwfws=; b=LHEb5Tln2wQx1fwAu09+BNdBlC2pbP1I2uVleYhp6zP+FU4sc29FT6S3bG/rs+WPxO Yaj0AuaP4y0ChSUqe59qBvCXoj48MXxucE6NX9ypZpCcAXilc0QN3iEVX7aXAKWB270P RVXR3BkYOf0auEsZRrLwIUUcePWzl1N0CXbGeBYIiNLkS5JTYxlwPbzlDebDhC+YIP/2 aV17MiXfuv/OzaAA+HeuJXvYpyD6QoB5wRhH9hT6VI5NH5xLyX7/DjdpeOaLGH/BKgRR mVqD9bWtLg+koNAxAeRHybW+LoWuOantB86HwpJWDbuwijM5I5+sMJHpEoOwMuImAUaH cHfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745927438; x=1746532238; 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=Gj9JA1kBvneMSULxD4kUsNOIWEoG1iJn7hfWXbxwfws=; b=dZimrZEuT+gXlWcot3Nr8tSijMMTYxcqi1dO/A8Jz7VP/UPAEZbALTs47Q74CVMzHi E0xYKwXeXQoB7CRhuKbXBLjkCxjtQym9vMqhN9TEx2uNK7kc6eFabsyV7YroNLFSrz0f cQlvBg6ZdvRLzdLlWId9OQzTGesfcj46StG3PiFXLLQKvfsIVVxjpENeID9pvn+jYLNp E8IRG8u29qArE4/DEG+jJA883rHIXjnDVG8Ri4Kv5Q/o0itlInB234OWMrhI1enZt/z+ mqiqwyg/MpILLEXhhuYBOCcuYv6BRCOBpDsNsVf6DvltktKpTMqp4vHplCvFm+wsGXG8 wG+Q== X-Gm-Message-State: AOJu0Ywa5SpBeadU5JfYkc0sdo0m77FsvKtTUjYrASwr+Tu8CEzi4H+U JGQXfJ1MW2KNUvr2Zs0pa4bRldW9/vrcpVObDGNWp534FLIIaw6z6fuPCO5G X-Gm-Gg: ASbGncvY6anmTopf352nskUC5VPkKXZV4TzLxIMQwVq88W9THMwWPiDCZg5jIFxI+QM dfyWHrWOOsxOq3c4no19Zj8TJDfylaRcxgz9210c5pD3cCb9VLBEJkm93IzkBSLcJPzbH7FyZg9 YCw+vnbPI708odqtX5jyrux9q5r/EVQNNMB1EWTWZ2mcLrGFsI+nsm4I/ygpYHu96mFZrzfFe1z LHN8ZpTDKVrlqLZmKdggtr3TQ/RxmNvHwmbDAL3Ica6wnywJJCY1yxeM2ROI9ElkoRAWweRjX6N 5+5xhsFErbneTQdtO3GCPmK7WHJpclDVStuAUwBrSGFF0hjsKNFcBsYrhT9BPiUzoYMx0x0= X-Google-Smtp-Source: AGHT+IHj9qGPv/p54I4MS1ZWEdAc90KEjY3jnt+sV2pdAdAUoixcCXG6v2JruSOG9j4TkciJNOBmZw== X-Received: by 2002:a05:6a21:1789:b0:1f5:5b2a:f641 with SMTP id adf61e73a8af0-2093e123c5cmr4842650637.28.1745927438475; Tue, 29 Apr 2025 04:50:38 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([43.132.141.24]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e25aca62csm9661644b3a.167.2025.04.29.04.50.35 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 29 Apr 2025 04:50:37 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , David Hildenbrand , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH v2 5/6] mm: move folio_index to mm/swap.h and remove no longer needed helper Date: Tue, 29 Apr 2025 19:49:48 +0800 Message-ID: <20250429114949.41124-6-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250429114949.41124-1-ryncsn@gmail.com> References: <20250429114949.41124-1-ryncsn@gmail.com> Reply-To: Kairui Song MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 567C51C0003 X-Rspam-User: X-Stat-Signature: txjdyro8o7jjm3onbtqu4a853xem1gd6 X-HE-Tag: 1745927440-388208 X-HE-Meta: U2FsdGVkX1+jrjrFB/BsYeaq2nY6U6qO6c8rLiscdJUdUjTxuDDrFd+rqfv9DX7Vq4OaPwNyQI90gu57lfnbE3JBFfAPEt3/EpI735U+/q0O2SXJtq4YO3pyW2Bk1ROI233McXaTMO2fV2jwlNG85oFLvBRu9uio2Z5JYr+sjNK8CMeGFXl9D421MLL2Co7ml1ebPs+XtzV1VizO4dm1/65PhdMNPnyrgowNFAXvdGQwSr5fUqOQITfeSUEgceL48SEsBu1UIJPI7P+Mg2zbYzp05QnmZIX3Yg4En6J6ef0CgLfn7N4CB8LM+otu7ZrMj0J+YopC7n3TX9die/LaBNVQIpc/91SGxoQeSKf6G0ZCr6qwfswbodz7f+THqZfD50higgbKm6YlSdsQH0hjI+Ff+lD0cBVdO1CTXzgvThhPeugsW8ev89bMy56YEAQYka8V+fwg5G7MjXtzE9XVOxrGHZVygnWLk9otdjZy9pA9Q58WdFJSmiCFKaPVJqxJo1GoBOLtDjA4bOD/pE5OX1UQZCfLepDTMSCzhwQWb5ZL/z6d04pWp/6WOWAvz/DgL1XziUPPOsjEmSV0/MIek3cgWc2fqR+JefGbqhJ2/AhsxGhv1BQrOnrf9A/L/787mb1M5d9WWKuFifcqx2HpJS6ZyGewxBBhWpGQPKuWyLemqNPlXSrCUoYW4x9Lc1eFT9wALl5e9OckzrQkIBJ1vT/o/MOVUg4mObQeJIozaL2AGLChXFhbyR1sHo0kgXzZ0WJZnlt27afiAquhavZUCF5KsuN5pkge8j+G7lmACOcDaKeh9JUj4tapWAS+4iWp8tdTebp3ub2alhRPsX0+6ZOs3FcRcmW/uik+LxRR0I7fKccP6VQ2ZumpY5CeY69+1N179fts/JsDgd2HIzFTRBL0N29AqMHVfQLkByB6a9mMXB2NXALS4T85wMl2qk8i9ZIY9IHKo2Tal3WJWES Vm3HMt7/ KysHoHrdOKyEFMdjbgwBazUraDdjc9C6aGMFfFozlA86YjNJBFj7nPbxhKJmVuVfvppcK4UGlcd9OXwehpCDiqqSX0yLuVucgCg6bO9UtB8sIKZFzMsyuQ05VQR570sCD72aWbaTiilrUsOtcpbuF2liRc04WUL5RXVNHne+mNDu97he1TDdfG7ayobWIeka3d9hO2rqjKTEGec0i0Sp9r0OuL11I0VN7fD4yiWXlAsltfzRae7FvzK6AeI8bJRNf/c85TZqneuYarBo= 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 | 23 +++++++++++++++++++++++ mm/swapfile.c | 6 ------ 5 files changed, 25 insertions(+), 26 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 1dc3416a9c0d..47b5746d5a65 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..91439d0ce50b 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 folio 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, @@ -125,6 +143,11 @@ static inline pgoff_t swap_cache_index(swp_entry_t entry) return 0; } +static inline pgoff_t folio_index(struct folio *folio) +{ + return folio->index; +} + static inline void show_swap_cache_info(void) { } 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