Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: Josef Bacik <josef@toxicpanda.com>,
	linux-btrfs@vger.kernel.org, kernel-team@fb.com
Subject: Re: [PATCH 00/46] btrfs: convert most of the data path to use folios
Date: Sat, 27 Jul 2024 08:27:53 +0930	[thread overview]
Message-ID: <b98b2b61-8b56-4a92-8de8-a75a645c3dc3@gmx.com> (raw)
In-Reply-To: <cover.1722022376.git.josef@toxicpanda.com>



在 2024/7/27 05:05, Josef Bacik 写道:
> Hello,
>
> Willy indicated that he wants to get rid of page->index in the next merge
> window, so I went to look at what that would entail for btrfs, and I got a
> little carried away.
>
> This patch series does in fact accomplish that, but it takes almost the entirety
> of the data write path and makes it work with only folios.  I was going to
> convert everything, but there's some weird gaps that need to be handled in their
> own chunk.
>
> 1. Scrub.  We're still passing around page pointers.  Not a huge deal, it was
>     just another 10ish patches just for that work, so I decided against it.
>
> 2. Buffered writes.  Again, I did most of this work and it wasn't bad, but then
>     I realized that the free space cache uses some of this code, and I really
>     don't want to convert that code, I want to delete it, so I'll do that first.

Totally agree, v1 is better to be deprecated.

>
> 3. Metadata.  Qu has been doing this consistently and I didn't want to get in
>     the way of his work so I just left most of that.

I guess there are still metadata codes switching between page and folios.

I'm totally fine if you feel like to convert them to use folios.
The only focus for me is to enable larger folios.
So the conversion part is totally fine.

>
> This has run through the CI and didn't cause any issues.  I've made everything
> as easy to review as possible and as small as possible.  My eyes started to
> glaze over a little bit with the changelogs, so let me know if there's anything
> you want changed.  Thanks,

Just give us some time to review the whole series though, the pure
amount of patches is already making my eyes glazing.

Thanks,
Qu

>
> Josef
>
> Josef Bacik (46):
>    btrfs: convert btrfs_readahead to only use folio
>    btrfs: convert btrfs_read_folio to only use a folio
>    btrfs: convert end_page_read to take a folio
>    btrfs: convert begin_page_folio to take a folio instead
>    btrfs: convert submit_extent_page to use a folio
>    btrfs: convert btrfs_do_readpage to only use a folio
>    btrfs: update the writepage tracepoint to take a folio
>    btrfs: convert __extent_writepage_io to take a folio
>    btrfs: convert extent_write_locked_range to use folios
>    btrfs: convert __extent_writepage to be completely folio based
>    btrfs: convert add_ra_bio_pages to use only folios
>    btrfs: utilize folio more in btrfs_page_mkwrite
>    btrfs: convert can_finish_ordered_extent to use a folio
>    btrfs: convert btrfs_finish_ordered_extent to take a folio
>    btrfs: convert btrfs_mark_ordered_io_finished to take a folio
>    btrfs: convert writepage_delalloc to take a folio
>    btrfs: convert find_lock_delalloc_range to use a folio
>    btrfs: convert lock_delalloc_pages to take a folio
>    btrfs: convert __unlock_for_delalloc to take a folio
>    btrfs: convert __process_pages_contig to take a folio
>    btrfs: convert process_one_page to operate only on folios
>    btrfs: convert extent_clear_unlock_delalloc to take a folio
>    btrfs: convert extent_write_locked_range to take a folio
>    btrfs: convert run_delalloc_cow to take a folio
>    btrfs: convert cow_file_range_inline to take a folio
>    btrfs: convert cow_file_range to take a folio
>    btrfs: convert fallback_to_cow to take a folio
>    btrfs: convert run_delalloc_nocow to take a folio
>    btrfs: convert btrfs_cleanup_ordered_extents to use folios
>    btrfs: convert btrfs_cleanup_ordered_extents to take a folio
>    btrfs: convert run_delalloc_compressed to take a folio
>    btrfs: convert btrfs_run_delalloc_range to take a folio
>    btrfs: convert async_chunk to hold a folio
>    btrfs: convert submit_uncompressed_range to take a folio
>    btrfs: convert btrfs_writepage_fixup_worker to use a folio
>    btrfs: convert btrfs_writepage_cow_fixup to use folio
>    btrfs: convert btrfs_writepage_fixup to use a folio
>    btrfs: convert uncompress_inline to take a folio
>    btrfs: convert read_inline_extent to use a folio
>    btrfs: convert btrfs_get_extent to take a folio
>    btrfs: convert __get_extent_map to take a folio
>    btrfs: convert find_next_dirty_byte to take a folio
>    btrfs: convert wait_subpage_spinlock to only use a folio
>    btrfs: convert btrfs_set_range_writeback to use a folio
>    btrfs: convert insert_inline_extent to use a folio
>    btrfs: convert extent_range_clear_dirty_for_io to use a folio
>
>   fs/btrfs/btrfs_inode.h           |   6 +-
>   fs/btrfs/compression.c           |  62 +++--
>   fs/btrfs/extent_io.c             | 436 +++++++++++++++----------------
>   fs/btrfs/extent_io.h             |   6 +-
>   fs/btrfs/file.c                  |  24 +-
>   fs/btrfs/inode.c                 | 342 ++++++++++++------------
>   fs/btrfs/ordered-data.c          |  28 +-
>   fs/btrfs/ordered-data.h          |   6 +-
>   fs/btrfs/tests/extent-io-tests.c |  10 +-
>   include/trace/events/btrfs.h     |  10 +-
>   10 files changed, 467 insertions(+), 463 deletions(-)
>

  parent reply	other threads:[~2024-07-26 22:58 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-26 19:35 [PATCH 00/46] btrfs: convert most of the data path to use folios Josef Bacik
2024-07-26 19:35 ` [PATCH 01/46] btrfs: convert btrfs_readahead to only use folio Josef Bacik
2024-07-26 19:35 ` [PATCH 02/46] btrfs: convert btrfs_read_folio to only use a folio Josef Bacik
2024-07-26 19:35 ` [PATCH 03/46] btrfs: convert end_page_read to take " Josef Bacik
2024-07-26 19:35 ` [PATCH 04/46] btrfs: convert begin_page_folio to take a folio instead Josef Bacik
2024-07-26 19:35 ` [PATCH 05/46] btrfs: convert submit_extent_page to use a folio Josef Bacik
2024-07-26 19:35 ` [PATCH 06/46] btrfs: convert btrfs_do_readpage to only " Josef Bacik
2024-07-26 19:35 ` [PATCH 07/46] btrfs: update the writepage tracepoint to take " Josef Bacik
2024-07-26 19:35 ` [PATCH 08/46] btrfs: convert __extent_writepage_io " Josef Bacik
2024-07-26 19:35 ` [PATCH 09/46] btrfs: convert extent_write_locked_range to use folios Josef Bacik
2024-07-26 19:35 ` [PATCH 10/46] btrfs: convert __extent_writepage to be completely folio based Josef Bacik
2024-07-26 19:35 ` [PATCH 11/46] btrfs: convert add_ra_bio_pages to use only folios Josef Bacik
2024-07-26 19:35 ` [PATCH 12/46] btrfs: utilize folio more in btrfs_page_mkwrite Josef Bacik
2024-07-26 19:36 ` [PATCH 13/46] btrfs: convert can_finish_ordered_extent to use a folio Josef Bacik
2024-07-26 19:36 ` [PATCH 14/46] btrfs: convert btrfs_finish_ordered_extent to take " Josef Bacik
2024-07-26 19:36 ` [PATCH 15/46] btrfs: convert btrfs_mark_ordered_io_finished " Josef Bacik
2024-07-26 19:36 ` [PATCH 16/46] btrfs: convert writepage_delalloc " Josef Bacik
2024-07-26 19:36 ` [PATCH 17/46] btrfs: convert find_lock_delalloc_range to use " Josef Bacik
2024-07-26 19:36 ` [PATCH 18/46] btrfs: convert lock_delalloc_pages to take " Josef Bacik
2024-07-26 19:36 ` [PATCH 19/46] btrfs: convert __unlock_for_delalloc " Josef Bacik
2024-07-26 19:36 ` [PATCH 20/46] btrfs: convert __process_pages_contig " Josef Bacik
2024-07-26 19:36 ` [PATCH 21/46] btrfs: convert process_one_page to operate only on folios Josef Bacik
2024-07-26 19:36 ` [PATCH 22/46] btrfs: convert extent_clear_unlock_delalloc to take a folio Josef Bacik
2024-07-26 19:36 ` [PATCH 23/46] btrfs: convert extent_write_locked_range " Josef Bacik
2024-07-26 19:36 ` [PATCH 24/46] btrfs: convert run_delalloc_cow " Josef Bacik
2024-07-26 19:36 ` [PATCH 25/46] btrfs: convert cow_file_range_inline " Josef Bacik
2024-07-26 19:36 ` [PATCH 26/46] btrfs: convert cow_file_range " Josef Bacik
2024-07-26 19:36 ` [PATCH 27/46] btrfs: convert fallback_to_cow " Josef Bacik
2024-07-26 19:36 ` [PATCH 28/46] btrfs: convert run_delalloc_nocow " Josef Bacik
2024-07-26 19:36 ` [PATCH 29/46] btrfs: convert btrfs_cleanup_ordered_extents to use folios Josef Bacik
2024-07-26 19:36 ` [PATCH 30/46] btrfs: convert btrfs_cleanup_ordered_extents to take a folio Josef Bacik
2024-07-26 19:36 ` [PATCH 31/46] btrfs: convert run_delalloc_compressed " Josef Bacik
2024-07-26 19:36 ` [PATCH 32/46] btrfs: convert btrfs_run_delalloc_range " Josef Bacik
2024-07-26 19:36 ` [PATCH 33/46] btrfs: convert async_chunk to hold " Josef Bacik
2024-07-26 19:36 ` [PATCH 34/46] btrfs: convert submit_uncompressed_range to take " Josef Bacik
2024-07-26 19:36 ` [PATCH 35/46] btrfs: convert btrfs_writepage_fixup_worker to use " Josef Bacik
2024-07-26 19:36 ` [PATCH 36/46] btrfs: convert btrfs_writepage_cow_fixup to use folio Josef Bacik
2024-07-26 19:36 ` [PATCH 37/46] btrfs: convert btrfs_writepage_fixup to use a folio Josef Bacik
2024-07-26 19:36 ` [PATCH 38/46] btrfs: convert uncompress_inline to take " Josef Bacik
2024-07-26 19:36 ` [PATCH 39/46] btrfs: convert read_inline_extent to use " Josef Bacik
2024-07-26 19:36 ` [PATCH 40/46] btrfs: convert btrfs_get_extent to take " Josef Bacik
2024-07-26 19:36 ` [PATCH 41/46] btrfs: convert __get_extent_map " Josef Bacik
2024-07-26 19:36 ` [PATCH 42/46] btrfs: convert find_next_dirty_byte " Josef Bacik
2024-07-26 19:36 ` [PATCH 43/46] btrfs: convert wait_subpage_spinlock to only use " Josef Bacik
2024-07-26 19:36 ` [PATCH 44/46] btrfs: convert btrfs_set_range_writeback to " Josef Bacik
2024-07-26 19:36 ` [PATCH 45/46] btrfs: convert insert_inline_extent " Josef Bacik
2024-07-26 19:36 ` [PATCH 46/46] btrfs: convert extent_range_clear_dirty_for_io " Josef Bacik
2024-07-26 22:57 ` Qu Wenruo [this message]
2024-07-27  0:55   ` [PATCH 00/46] btrfs: convert most of the data path to use folios Neal Gompa
2024-07-29 14:43     ` Josef Bacik
2024-07-29 20:32 ` David Sterba

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=b98b2b61-8b56-4a92-8de8-a75a645c3dc3@gmx.com \
    --to=quwenruo.btrfs@gmx.com \
    --cc=josef@toxicpanda.com \
    --cc=kernel-team@fb.com \
    --cc=linux-btrfs@vger.kernel.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