From: Lance Yang <lance.yang@linux.dev>
To: Zi Yan <ziy@nvidia.com>
Cc: linux-mm@kvack.org, David Hildenbrand <david@kernel.org>,
Dev Jain <dev.jain@arm.com>, Usama Arif <usama.arif@linux.dev>,
Gregory Price <gourry@gourry.net>,
linux-kernel@vger.kernel.org, Muchun Song <muchun.song@linux.dev>,
Gao Xiang <xiang@kernel.org>, Chao Yu <chao@kernel.org>,
Ryan Roberts <ryan.roberts@arm.com>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
Jan Kara <jack@suse.cz>, Mike Rapoport <rppt@kernel.org>,
Nico Pache <nico.pache@linux.dev>,
Baolin Wang <baolin.wang@linux.alibaba.com>,
Lorenzo Stoakes <ljs@kernel.org>, Michal Hocko <mhocko@suse.com>,
Qi Zheng <qi.zheng@linux.dev>, Yue Hu <zbestahu@gmail.com>,
Jeffle Xu <jefflexu@linux.alibaba.com>,
Sandeep Dhavale <dhavale@google.com>,
Shakeel Butt <shakeel.butt@linux.dev>,
Alistair Popple <apopple@nvidia.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Hongbo Li <hongbohbli@tencent.com>,
Kairui Song <kasong@tencent.com>,
"Liam R. Howlett" <liam@infradead.org>,
Chunhai Guo <guochunhai@vivo.com>,
linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org,
Ying Huang <ying.huang@linux.alibaba.com>,
Barry Song <baohua@kernel.org>,
Suren Baghdasaryan <surenb@google.com>,
Vlastimil Babka <vbabka@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH v5 08/17] erofs: mm/pagemap: add readahead_folio_last() to avoid folio->private
Date: Mon, 21 Sep 2026 16:20:01 +0800 [thread overview]
Message-ID: <86f06c26-5318-4196-b792-0662ad64f2bf@linux.dev> (raw)
In-Reply-To: <20260920-remove-pg_private-v5-8-bb68b6a21869@nvidia.com>
On 2026/9/21 10:28, Zi Yan wrote:
> erofs needs to traverse readahead folios in reverse order to achieve
> maximum performance by
> 1. reading all folios from readahead_folio();
> 2. storing the prior folio pointer in folio->private;
> 3. traverse from the last folio to the first one.
>
> Add readahead_folio_last() to achieve the same function without using
> folio->private. __readahead_advance() helper shares readahead_control
> adjustment code among __readahead_folio(), readahead_folio_last(), and
> __readahead_batch() by checking new private member, _forward, of
> readahead_control.
>
> It prepares for a future commit that replaces PG_private checks with
> !folio->private checks. After switching the checks, erofs's use of
> folio->private without bumping folio refcount can cause unexpected
> outcomes, e.g., in filemap_release_folio(), try_to_free_buffers() becomes
> reachable.
>
> No functional change intended.
>
> Assisted-by: LLM
> To: Gao Xiang <xiang@kernel.org>
> To: Chao Yu <chao@kernel.org>
> To: "Matthew Wilcox (Oracle)" <willy@infradead.org>
> To: Jan Kara <jack@suse.cz>
> Cc: Yue Hu <zbestahu@gmail.com>
> Cc: Jeffle Xu <jefflexu@linux.alibaba.com>
> Cc: Sandeep Dhavale <dhavale@google.com>
> Cc: Hongbo Li <hongbohbli@tencent.com>
> Cc: Chunhai Guo <guochunhai@vivo.com>
> Cc: linux-erofs@lists.ozlabs.org
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-fsdevel@vger.kernel.org
> Cc: linux-mm@kvack.org
> Acked-by: David Hildenbrand (Arm) <david@kernel.org>
> Signed-off-by: Zi Yan <ziy@nvidia.com>
> ---
Nothing jumped out at me, feel free to add:
Reviewed-by: Lance Yang <lance.yang@linux.dev>
next prev parent reply other threads:[~2026-09-21 8:22 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-21 2:27 [PATCH v5 00/17] Remove PG_private by using page/folio->private checks instead Zi Yan
2026-09-21 2:27 ` Zi Yan
2026-09-21 2:27 ` [f2fs-dev] " Zi Yan via Linux-f2fs-devel
2026-09-21 2:27 ` [PATCH v5 01/17] mm/zsmalloc: replace PG_private with pointer comparison Zi Yan
2026-09-21 6:02 ` Lance Yang
2026-09-21 2:27 ` [PATCH v5 02/17] perf/ring_buffer: stop using PG_private as AUX page high-order marker Zi Yan
2026-09-21 2:38 ` sashiko-bot
2026-09-21 6:19 ` Lance Yang
2026-09-21 2:27 ` [PATCH v5 03/17] xen/grant-table: stop setting PG_private on pages for grant mapping Zi Yan
2026-09-21 7:00 ` Lance Yang
2026-09-21 2:28 ` [PATCH v5 04/17] fscrypt: stop setting PG_private on bounce page Zi Yan
2026-09-21 7:03 ` Lance Yang
2026-09-21 2:28 ` [PATCH v5 05/17] mm/hugetlb: use direct assignment instead of folio_change_private() Zi Yan
2026-09-21 7:11 ` Lance Yang
2026-09-21 2:28 ` [f2fs-dev] [PATCH v5 06/17] f2fs: stop using PG_private Zi Yan via Linux-f2fs-devel
2026-09-21 2:28 ` Zi Yan
2026-09-21 7:24 ` [f2fs-dev] " Lance Yang
2026-09-21 7:24 ` Lance Yang
2026-09-21 2:28 ` [f2fs-dev] [PATCH v5 07/17] f2fs: convert the ->private flag helpers to folio-only Zi Yan via Linux-f2fs-devel
2026-09-21 2:28 ` Zi Yan
2026-09-21 7:39 ` [f2fs-dev] " Lance Yang
2026-09-21 7:39 ` Lance Yang
2026-09-30 8:19 ` [f2fs-dev] " Chao Yu via Linux-f2fs-devel
2026-09-30 8:19 ` Chao Yu
2026-09-21 2:28 ` [PATCH v5 08/17] erofs: mm/pagemap: add readahead_folio_last() to avoid folio->private Zi Yan
2026-09-21 8:20 ` Lance Yang [this message]
2026-09-21 2:28 ` [PATCH v5 09/17] erofs: use folio_attach/detach_private() instead of direct assignment Zi Yan
2026-09-21 8:45 ` Lance Yang
2026-09-21 2:28 ` [PATCH v5 10/17] mm/page-flags: check page/folio->private instead of PG_private Zi Yan
2026-09-21 2:44 ` sashiko-bot
2026-09-21 15:38 ` Zi Yan
2026-09-22 1:23 ` Zi Yan
2026-09-21 9:22 ` David Hildenbrand (Arm)
2026-09-21 2:28 ` [PATCH v5 11/17] treewide: remove folio_set/clear_private() usage Zi Yan
2026-09-21 2:28 ` [PATCH v5 12/17] ceph: replace PagePrivate() with page_private() Zi Yan
2026-09-21 2:28 ` [PATCH v5 13/17] md: Use folio_alloc_buffers() Zi Yan
2026-09-21 9:23 ` David Hildenbrand (Arm)
2026-09-21 2:28 ` [PATCH v5 14/17] md: Use folio APIs in free_page() Zi Yan
2026-09-21 2:28 ` [PATCH v5 15/17] md: Remove the last use of page_buffers() Zi Yan
2026-09-21 2:28 ` [PATCH v5 16/17] treewide: remove PagePrivate() and PG_private from comments and docs Zi Yan
2026-09-21 2:28 ` Zi Yan
2026-09-21 2:28 ` [PATCH v5 17/17] mm/page-flags: remove PG_private Zi Yan
2026-09-21 2:55 ` sashiko-bot
2026-09-21 15:36 ` Zi Yan
2026-09-21 4:08 ` [PATCH v5 00/17] Remove PG_private by using page/folio->private checks instead Andrew Morton
2026-09-21 4:08 ` Andrew Morton
2026-09-21 4:08 ` [f2fs-dev] " Andrew Morton
2026-09-22 4:16 ` Nanzhe Zhao
2026-09-22 4:16 ` Nanzhe Zhao
2026-09-22 4:16 ` [f2fs-dev] " Nanzhe Zhao
2026-09-22 15:31 ` Jaegeuk Kim
2026-09-22 15:31 ` Jaegeuk Kim
2026-09-22 15:31 ` Jaegeuk Kim via Linux-f2fs-devel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86f06c26-5318-4196-b792-0662ad64f2bf@linux.dev \
--to=lance.yang@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=chao@kernel.org \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=dhavale@google.com \
--cc=gourry@gourry.net \
--cc=guochunhai@vivo.com \
--cc=hannes@cmpxchg.org \
--cc=hongbohbli@tencent.com \
--cc=jack@suse.cz \
--cc=jefflexu@linux.alibaba.com \
--cc=kasong@tencent.com \
--cc=liam@infradead.org \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=muchun.song@linux.dev \
--cc=nico.pache@linux.dev \
--cc=qi.zheng@linux.dev \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=shakeel.butt@linux.dev \
--cc=surenb@google.com \
--cc=usama.arif@linux.dev \
--cc=vbabka@kernel.org \
--cc=willy@infradead.org \
--cc=xiang@kernel.org \
--cc=ying.huang@linux.alibaba.com \
--cc=zbestahu@gmail.com \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.