On Mon, Nov 14, 2022 at 03:02:34PM +0800, Chao Yu wrote: > On 2022/10/18 4:24, Vishal Moola (Oracle) wrote: > > Converted the function to use a folio_batch instead of pagevec. This is in > > preparation for the removal of find_get_pages_range_tag(). > > > > Also modified f2fs_all_cluster_page_ready to take in a folio_batch instead > > of pagevec. This does NOT support large folios. The function currently > > Vishal, > > It looks this patch tries to revert Fengnan's change: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=01fc4b9a6ed8eacb64e5609bab7ac963e1c7e486 > > How about doing some tests to evaluate its performance effect? > > +Cc Fengnan Chang Thanks for reviewing this. I think the real solution to this is that f2fs should be using large folios. That way, the page cache will keep track of dirtiness on a per-folio basis, and if your folios are at least as large as your cluster size, you won't need to do the f2fs_prepare_compress_overwrite() dance. And you'll get at least fifteen dirty folios per call instead of fifteen dirty pages, so your costs will be much lower. Is anyone interested in doing the work to convert f2fs to support large folios? I can help, or you can look at the work done for XFS, AFS and a few other filesystems.