Re: [PATCH] fs/writeback: convert wbc_account_cgroup_owner to take a folio

From: Chao Yu
Date: Fri Oct 11 2024 - 04:57:15 EST


On 2024/10/1 6:58, Jaegeuk Kim wrote:
On 09/26, Matthew Wilcox wrote:
On Thu, Sep 26, 2024 at 04:01:21PM +0200, Pankaj Raghav (Samsung) wrote:
Convert wbc_account_cgroup_owner() to take a folio instead of a page,
and convert all callers to pass a folio directly except f2fs.

Convert the page to folio for all the callers from f2fs as they were the
only callers calling wbc_account_cgroup_owner() with a page. As f2fs is
already in the process of converting to folios, these call sites might
also soon be calling wbc_account_cgroup_owner() with a folio directly in
the future.

I was hoping for more from f2fs. I still don't have an answer from them
whether they're going to support large folios. There's all kinds of
crud already in these functions like:

f2fs_set_bio_crypt_ctx(bio, fio->page->mapping->host,
page_folio(fio->page)->index, fio, GFP_NOIO);

and this patch is making it worse, not better. A series of patches
which at least started to spread folios throughout f2fs would be better.
I think that struct f2fs_io_info should have its page converted to
a folio, for example. Although maybe not; perhaps this structure can
carry data which doesn't belong to a folio that came from the page cache.
It's very hard to tell because f2fs is so mind-numbingly complex and
riddled with stupid abstraction layers.

Hah, I don't think it's too complex at all tho, there's a somewhat complexity to
support file-based encryption, compression, and fsverity, which are useful

I agree w/ Jaegeuk.

for Android users. Well, I don't see any strong needs to support large folio,
but some requests exist which was why we had to do some conversion.


But I don't know what the f2fs maintainers have planned. And they won't
tell me despite many times of asking.

I supported large folio in f2fs by using a hacking way /w iomap fwk, it can
only be enabled in very limited condition, after some seqread tests, I can
see performance gain in server environment, but none in android device, and
in addition, there is a memory leak bug which can cause out-of-memory issue.
Unlucky, I have no slots to dig into these issues recently.

Thanks,