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 7E081C4345F for ; Wed, 24 Apr 2024 08:55:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DB80F8D0002; Wed, 24 Apr 2024 04:55:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D69F18D0001; Wed, 24 Apr 2024 04:55:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C2F308D0002; Wed, 24 Apr 2024 04:55:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A48798D0001 for ; Wed, 24 Apr 2024 04:55:34 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E163980C64 for ; Wed, 24 Apr 2024 08:49:06 +0000 (UTC) X-FDA: 82043800692.11.2A89D89 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by imf28.hostedemail.com (Postfix) with ESMTP id 3E8CDC0015 for ; Wed, 24 Apr 2024 08:49:05 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="WY75/4b9"; spf=pass (imf28.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 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=1713948545; 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=/kFQR8E+rQp7uC9yW6Ow4kuJJBmzBQxe59gx0jzroTg=; b=zNYxmoOeo3Pv81zb8KJ3o73PqvldiQ+GZPFL+caHN5bifqL0pmuaz9NtHnFMn6jtORH5Ot lUny0BuSc1OmX6nGSsf0m2BcSDPqo2VdH9F/tYf5OOi7FL2x+ZkkqEmjgtn9GQHy6nz7WQ z0+XkbH2D8oO80j086J/hWQ3BLX59JU= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="WY75/4b9"; spf=pass (imf28.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 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=1713948545; a=rsa-sha256; cv=none; b=iZxC2Dbz9ZjJTeJt9a5rQu/v7wRsjYpyqWw/0nqZa1WmetRrTPLhCQI6cbd4Bik7MtJSD6 ALHkZx0+hYRgi7agJViG6MVQiYh+Fk4raj6STDNU8w8N1zeLPft18kC8nnWJXMBvdDkcVn yk+amwT/aKtCip1yUghjqKjr1QfPWHo= Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2db17e8767cso84438401fa.3 for ; Wed, 24 Apr 2024 01:49:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713948543; x=1714553343; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/kFQR8E+rQp7uC9yW6Ow4kuJJBmzBQxe59gx0jzroTg=; b=WY75/4b9SUGl8WCL11vjZOMbvJP4zwK3taoKbpuDnCwADyIVKVJZty26HgTZbqJWYx 9NlJlfF71gJ0gk3Su1RquZs+BL7E0OizjlxJnXaXVWs2Zgnsh9UAzeFNfwQUbQ5DY0dQ GD7Ub8dXe0BB1T4di2VVAZ0LP+Y5isHhw0o1LNYxf7iIsic10VtLRZ4/o8Omd1ZA4rpX yjsAovw+FjXFoTEPiAAXzIBm3vC7+HScoiGjSBjoggHGw7vtb5r67GZ1pbB5njezjlBp nQ63RE2Cjg8JF3HDMSFuuXt2kVcUU7Ieehp35dDikUxTlLoS9hm5Ts+klG06F2bbT79C JK/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713948543; x=1714553343; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/kFQR8E+rQp7uC9yW6Ow4kuJJBmzBQxe59gx0jzroTg=; b=v48SgQeIFiwMMMImmp34RUreopNf9dPgbH4gHv9oGouJpXPRSthCSFDxgOGNJ4JFqp 98UDhkxDpFl3/ABbBvYZvMsbvLwt1YZGYcd5l7so6CGpW1Vq4uwy/1Dl6UlLfwI797Vy F6uedkb28FEK8PpKqmnriaCmC1d3ZTjyvRhTVSqpuMBjwVTU5N/c9JQeWCzA09PAsD6G p/LwtU7hsnh2l5p9Ra5a9foBak2GS3JB8U9RPIuRU+n61+1TbjlvHuUJJgLRrgr1T3g3 To7cr0y2fW8bNuPRyTSc66jUEEVrhhi4jCLmNt7onBL0EeKhBkg2aazPltiqJrYv2tUP gfEA== X-Forwarded-Encrypted: i=1; AJvYcCXoCIzND6bMT3PJImcrHoTfruqFsCLTsdztYCXCasAeuMFYF8eXabbT+Id7D9Lf66qOhf8z/cjOY3Jb6bPbvP6MYkQ= X-Gm-Message-State: AOJu0YzuNfZI9FoatKuyWzpDNpbL87A2Nw3JufZcp5tkxLr2ZnPgiZ+L J7NgFU+eoJiWOZCL3N8Fz8LNyjjY7dFm78CNT6uo+9wFfcVwiZIsoWoB8aI2wFxC5+R+KmaL0JJ ggFayM/dveOoLm2N2w/EiIbIgbAU= X-Google-Smtp-Source: AGHT+IHWBLhdfxJmQz/AuelJzR0hT0UyUTcb1wFB00Jyxy3z+kUkHuir+BrO9+R3ccWtp+R2htlrw6iIzlqkMNtzqWs= X-Received: by 2002:a05:651c:49d:b0:2d8:3d69:b066 with SMTP id s29-20020a05651c049d00b002d83d69b066mr978648ljc.7.1713948543126; Wed, 24 Apr 2024 01:49:03 -0700 (PDT) MIME-Version: 1.0 References: <20240423170339.54131-1-ryncsn@gmail.com> <20240423170339.54131-8-ryncsn@gmail.com> <87sezbsdwf.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: From: Kairui Song Date: Wed, 24 Apr 2024 16:48:46 +0800 Message-ID: Subject: Re: [PATCH v2 7/8] mm: drop page_index/page_file_offset and convert swap helpers to use folio To: Matthew Wilcox Cc: "Huang, Ying" , linux-mm@kvack.org, Andrew Morton , Chris Li , Barry Song , Ryan Roberts , Neil Brown , Minchan Kim , Hugh Dickins , David Hildenbrand , Yosry Ahmed , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, Trond Myklebust , Anna Schumaker , linux-afs@lists.infradead.org, David Howells , Marc Dionne Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 3E8CDC0015 X-Stat-Signature: mmfqxi515kqz53uf8onbopobwabqyys9 X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1713948544-89740 X-HE-Meta: U2FsdGVkX19JdkVO7i4WfjwLX/zSndWeX6DrBtAYTEgCJcZMML4KUCsCVHwHkm1uUUuX2atcvCDmaOYzBnbkx54MPQ6nsjqs5GbTwO6EnHFq8+HVIFT6KC8ie9M7nfuLE2xFmuxnxAoh9xg/M5N8CEjeB2Ll9YTDS1xxGJ6p8KJ3ceg0BnS7+pqAxYTMgr4dI77QN4vyD5bGbWoDvebopVOn73VQJjQlLRKGPLyE6NFiyqV2YGrkIYrc7As7BTSRbPXNACYsG4/hzSJ/CEJ0Dz6i3Ex4WezquwSCIgh6fYtW38Vo478o6CVxE3BVkb0QqINt6ISgSuMDCX62CSmvvlDzyPD3NODzVBXwIGOpgwvjlrzkXJnRsbhaSJTesQBoAu+5Gxp3Ywkac1iiZtbwWIPMwLpoHvoJvhy0VQodP52NTbeXCJDxiZ+TJnB04HqOWVfk3hDQrcTpBGLFkUQmAJhTF+sG6M+tl88tSH0uCicTtnKehyWAfpZODzT5wexK/1uTO24ZoJrJfs6ZF0p1mQyUmq81QIz6CdWCpCBrOHXf7pegHXMe8epMmb8duRVXJ9Z+qSHYNPijU6gdqdTlhsjU8yc9AtGCP6fjbRJXMOR3PYNm1bD0f9ITYnOro8muRSnQsrhei4u1itCOO2WJ03gjSdK35adF4rcUGgI/N2ZI+rTlSs0yiUZYMHyRsHRvBiknHCnFJJiqvY814A2YCQUCdIppdtfa1aBpR6GiqL1CUfmHZ8NIaTlRUfJq9jkMI7diAUzSF6zXCfpH9FLmVLP7l/9vP8hdcXo2RzXfoVHGBTY5BtgSswxNzgwTPamvd9WbqYekcfrT3TFacHuSOUNZUo4LGwSPe+hqSBaNy/vNiunDErae0PoN6w4s+A9T4b+QQvceuAdSxCERXcVZA4uzo5DCFdBc8UtA9zIn/9ax8cXr9CFb4s0sHZQQsf70UaM1l2WVSj6teTg0Ef/ hFcJdPel 6/kjgp8+IBjwqo9nhIGpFQdr4bWc6kkmHBYPAejdzcVHERfQU32vSFlt6i8UCoh0TYvJN6FeYLWCV+0YDPF5kyiKCsw== 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: On Wed, Apr 24, 2024 at 12:06=E2=80=AFPM Matthew Wilcox wrote: > > On Wed, Apr 24, 2024 at 10:17:04AM +0800, Huang, Ying wrote: > > Kairui Song writes: > > > static inline loff_t folio_file_pos(struct folio *folio) > > > { > > > - return page_file_offset(&folio->page); > > > + if (unlikely(folio_test_swapcache(folio))) > > > + return __folio_swap_dev_pos(folio); > > > + return ((loff_t)folio->index << PAGE_SHIFT); > > > > This still looks confusing for me. The function returns the byte > > position of the folio in its file. But we returns the swap device > > position of the folio. > > > > Tried to search folio_file_pos() usage. The 2 usage in page_io.c is > > swap specific, we can use swap_dev_pos() directly. > > > > There are also other file system users (NFS and AFS) of > > folio_file_pos(), I don't know why they need to work with swap > > cache. Cced file system maintainers for help. > > Time for a history lesson! > > In d56b4ddf7781 (2012) we introduced page_file_index() and > page_file_mapping() to support swap-over-NFS. Writes to the swapfile wen= t > through ->direct_IO but reads went through ->readpage. So NFS was change= d > to remove direct references to page->mapping and page->index because > those aren't right for anon pages (or shmem pages being swapped out). > > In e1209d3a7a67 (2022), we stopped using ->readpage in favour of using > ->swap_rw. Now we don't need to use page_file_*(); we get the swap_file > and ki_pos directly in the swap_iocb. But there are still relics in NFS > that nobody has dared rip out. And there are all the copy-and-pasted > filesystems that use page_file_* because they don't know any better. > > We should delete page_file_*() and folio_file_*(). They shouldn't be > needed any more. Thanks for the explanation! I'll update the series, and just delete paeg_file_offset and folio_file_pos with more auditing, to make the code cleaner. Should I add a suggest-by for the removal?