Re: [PATCH 00/35] nilfs2: Folio conversions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 7, 2023 at 2:39 AM Matthew Wilcox (Oracle) wrote:
>
> This patch series does most of the page->folio conversions needed in
> nilfs2.  I haven't done the work to support large folios in nilfs2;
> I don't know if that conversion will be worth the effort.  There are
> still a few page uses left, but the infrastructure isn't quite there to
> get rid of them yet.
>
> Arguably, this is two separate series; the first takes care of the file
> paths and the second takes care of directories.  I've tried my best to
> include large folio support in the directory code because it'll be needed
> for large block size devices.  It also tries to stay as close as possible
> to the current ext2 code (so it also includes kmap_local support).
>
> These patches are only compile-tested.  xfstests doesn't seem to know
> about nilfs2.
>
> Matthew Wilcox (Oracle) (35):
>   nilfs2: Add nilfs_end_folio_io()
>   nilfs2: Convert nilfs_abort_logs to use folios
>   nilfs2: Convert nilfs_segctor_complete_write to use folios
>   nilfs2: Convert nilfs_forget_buffer to use a folio
>   nilfs2: Convert to nilfs_folio_buffers_clean()
>   nilfs2: Convert nilfs_writepage() to use a folio
>   nilfs2: Convert nilfs_mdt_write_page() to use a folio
>   nilfs2: Convert to nilfs_clear_folio_dirty()
>   nilfs2: Convert to __nilfs_clear_folio_dirty()
>   nilfs2: Convert nilfs_segctor_prepare_write to use folios
>   nilfs2: Convert nilfs_page_mkwrite() to use a folio
>   nilfs2: Convert nilfs_mdt_create_block to use a folio
>   nilfs2: Convert nilfs_mdt_submit_block to use a folio
>   nilfs2: Convert nilfs_gccache_submit_read_data to use a folio
>   nilfs2: Convert nilfs_btnode_create_block to use a folio
>   nilfs2: Convert nilfs_btnode_submit_block to use a folio
>   nilfs2: Convert nilfs_btnode_delete to use a folio
>   nilfs2: Convert nilfs_btnode_prepare_change_key to use a folio
>   nilfs2: Convert nilfs_btnode_commit_change_key to use a folio
>   nilfs2: Convert nilfs_btnode_abort_change_key to use a folio
>   nilfs2: Remove page_address() from nilfs_set_link
>   nilfs2: Remove page_address() from nilfs_add_link
>   nilfs2: Remove page_address() from nilfs_delete_entry
>   nilfs2: Return the mapped address from nilfs_get_page()
>   nilfs2: Pass the mapped address to nilfs_check_page()
>   nilfs2: Switch to kmap_local for directory handling
>   nilfs2: Add nilfs_get_folio()
>   nilfs2: Convert nilfs_readdir to use a folio
>   nilfs2: Convert nilfs_find_entry to use a folio
>   nilfs2: Convert nilfs_rename() to use folios
>   nilfs2: Convert nilfs_add_link() to use a folio
>   nilfs2: Convert nilfs_empty_dir() to use a folio
>   nilfs2: Convert nilfs_make_empty() to use a folio
>   nilfs2: Convert nilfs_prepare_chunk() and nilfs_commit_chunk() to
>     folios
>   nilfs2: Convert nilfs_page_bug() to nilfs_folio_bug()
>
>  fs/nilfs2/btnode.c  |  62 +++++------
>  fs/nilfs2/dir.c     | 248 ++++++++++++++++++++------------------------
>  fs/nilfs2/file.c    |  28 ++---
>  fs/nilfs2/gcinode.c |   4 +-
>  fs/nilfs2/inode.c   |  11 +-
>  fs/nilfs2/mdt.c     |  23 ++--
>  fs/nilfs2/namei.c   |  33 +++---
>  fs/nilfs2/nilfs.h   |  20 ++--
>  fs/nilfs2/page.c    |  93 +++++++++--------
>  fs/nilfs2/page.h    |  12 +--
>  fs/nilfs2/segment.c | 157 ++++++++++++++--------------
>  11 files changed, 338 insertions(+), 353 deletions(-)
>
> --
> 2.42.0
>

Matthew, thank you so much for this hard work.
Even if full support for large folios cannot be achieved at this time
due to limitations in the nilfs2 implementation, I appreciate that you
are moving forward with the conversion work that should be done.

I haven't reviewed each patch yet, but at least this series can be
built without problems in my environment too, and so far it is working
fine including GC and stress tests.

I will review all the patches, but since there are so many, I will not
add LGTM replies to each one, but will only reply to those that have
comments (if any).

Many thanks,
Ryusuke Konishi




[Index of Archives]     [Linux Filesystem Development]     [Linux BTRFS]     [Linux CIFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux