linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
From: Qu Wenruo via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
To: Matthew Wilcox <willy@infradead.org>, Li Zetao <lizetao1@huawei.com>
Cc: josef@toxicpanda.com, linux-f2fs-devel@lists.sourceforge.net,
	clm@fb.com, terrelln@fb.com, dsterba@suse.com,
	linux-btrfs@vger.kernel.org
Subject: Re: [f2fs-dev] [PATCH 02/14] btrfs: convert get_next_extent_buffer() to take a folio
Date: Thu, 22 Aug 2024 20:28:09 +0930	[thread overview]
Message-ID: <0f643b0f-f1c2-48b7-99d5-809b8b7f0aac@gmx.com> (raw)
In-Reply-To: <Zsaq_QkyQIhGsvTj@casper.infradead.org>



在 2024/8/22 12:35, Matthew Wilcox 写道:
> On Thu, Aug 22, 2024 at 09:37:02AM +0800, Li Zetao wrote:
>>   static struct extent_buffer *get_next_extent_buffer(
>> -		const struct btrfs_fs_info *fs_info, struct page *page, u64 bytenr)
>> +		const struct btrfs_fs_info *fs_info, struct folio *folio, u64 bytenr)
>>   {
>>   	struct extent_buffer *gang[GANG_LOOKUP_SIZE];
>>   	struct extent_buffer *found = NULL;
>> -	u64 page_start = page_offset(page);
>> -	u64 cur = page_start;
>> +	u64 folio_start = folio_pos(folio);
>> +	u64 cur = folio_start;
>>
>> -	ASSERT(in_range(bytenr, page_start, PAGE_SIZE));
>> +	ASSERT(in_range(bytenr, folio_start, PAGE_SIZE));
>>   	lockdep_assert_held(&fs_info->buffer_lock);
>>
>> -	while (cur < page_start + PAGE_SIZE) {
>> +	while (cur < folio_start + PAGE_SIZE) {
>
> Presumably we want to support large folios in btrfs at some point?

Yes, and we're already working towards that direction.

> I certainly want to remove CONFIG_READ_ONLY_THP_FOR_FS soon and that'll
> be a bit of a regression for btrfs if it doesn't have large folio
> support.  So shouldn't we also s/PAGE_SIZE/folio_size(folio)/ ?

AFAIK we're only going to support larger folios to support larger than
PAGE_SIZE sector size so far.
So every folio is still in a fixed size (sector size, >= PAGE_SIZE).

Not familiar with transparent huge page, I thought transparent huge page
is transparent to fs.

Or do we need some special handling?
My uneducated guess is, we will get a larger folio passed to readpage
call back directly?
It's straightforward enough to read all contents for a larger folio,
it's no different to subpage handling.

But what will happen if some writes happened to that larger folio?
Do MM layer detects that and split the folios? Or the fs has to go the
subpage routine (with an extra structure recording all the subpage flags
bitmap)?

Thanks,
Qu


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

  reply	other threads:[~2024-08-22 10:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-22  1:37 [f2fs-dev] [PATCH -next 00/14] btrfs: Cleaned up folio->page conversion Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 01/14] btrfs: convert clear_page_extent_mapped() to take a folio Li Zetao via Linux-f2fs-devel
2024-08-22  3:02   ` Matthew Wilcox
2024-08-22  1:37 ` [f2fs-dev] [PATCH 02/14] btrfs: convert get_next_extent_buffer() " Li Zetao via Linux-f2fs-devel
2024-08-22  3:05   ` Matthew Wilcox
2024-08-22 10:58     ` Qu Wenruo via Linux-f2fs-devel [this message]
2024-08-22 12:07       ` Matthew Wilcox
2024-08-22 22:25         ` Qu Wenruo via Linux-f2fs-devel
2024-08-23  2:13           ` Qu Wenruo via Linux-f2fs-devel
2024-08-23 15:38             ` Matthew Wilcox
2024-08-23 21:32               ` Qu Wenruo via Linux-f2fs-devel
2024-08-26 14:13               ` Josef Bacik
2024-08-26 16:56                 ` Matthew Wilcox
2024-08-26 21:32                   ` Josef Bacik
2024-08-23 15:17         ` Josef Bacik
2024-08-22 11:01     ` Qu Wenruo via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 03/14] btrfs: convert try_release_subpage_extent_buffer() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 04/14] btrfs: convert try_release_extent_buffer() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 05/14] btrfs: convert read_key_bytes() " Li Zetao via Linux-f2fs-devel
2024-08-22  3:28   ` Matthew Wilcox
2024-08-22  1:37 ` [f2fs-dev] [PATCH 06/14] btrfs: convert submit_eb_subpage() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 07/14] btrfs: convert submit_eb_page() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 08/14] btrfs: convert try_release_extent_state() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 09/14] btrfs: convert try_release_extent_mapping() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 10/14] btrfs: convert zlib_decompress() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 11/14] btrfs: convert lzo_decompress() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 12/14] btrfs: convert zstd_decompress() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 13/14] btrfs: convert btrfs_decompress() " Li Zetao via Linux-f2fs-devel
2024-08-22  1:37 ` [f2fs-dev] [PATCH 14/14] btrfs: convert copy_inline_to_page() to use folio Li Zetao via Linux-f2fs-devel
2024-08-23 19:50 ` [f2fs-dev] [PATCH -next 00/14] btrfs: Cleaned up folio->page conversion Josef Bacik
2024-08-23 21:15   ` Josef Bacik
2024-08-26 14:08     ` Josef Bacik
2024-08-28 13:08       ` Li Zetao via Linux-f2fs-devel
2024-09-25  3:41 ` patchwork-bot+f2fs--- 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=0f643b0f-f1c2-48b7-99d5-809b8b7f0aac@gmx.com \
    --to=linux-f2fs-devel@lists.sourceforge.net \
    --cc=clm@fb.com \
    --cc=dsterba@suse.com \
    --cc=josef@toxicpanda.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=lizetao1@huawei.com \
    --cc=quwenruo.btrfs@gmx.com \
    --cc=terrelln@fb.com \
    --cc=willy@infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).