mbox series

[00/15] Many folio conversions for ceph

Message ID 20230825201225.348148-1-willy@infradead.org
Headers show
Series Many folio conversions for ceph | expand

Message

Matthew Wilcox Aug. 25, 2023, 8:12 p.m. UTC
I know David is working to make ceph large-folio-aware from the bottom up.
Here's my attempt at making the top (ie the part of ceph that interacts
with the page cache) folio-aware.  Mostly this is just phasing out use
of struct page in favour of struct folio and using the new APIs.

The fscrypt interaction still needs a bit of work, but it should be a
little easier now.  There's still some weirdness in how ceph interacts
with the page cache; for example it holds folios locked while doing
writeback instead of dropping the folio lock after setting the writeback
flag.  I'm not sure why it does that, but I don't want to try fixing that
as part of this series.

I don't have a ceph setup, so these patches are only compile tested.
I really want to be rid of some compat code, and cecph is sometimes the
last user (or really close to being the last user).

Matthew Wilcox (Oracle) (15):
  ceph: Convert ceph_writepages_start() to use folios a little more
  ceph: Convert ceph_page_mkwrite() to use a folio
  mm: Delete page_mkwrite_check_truncate()
  ceph: Add a migrate_folio method
  ceph: Remove ceph_writepage()
  ceph: Convert ceph_find_incompatible() to take a folio
  ceph: Convert writepage_nounlock() to take a folio
  ceph: Convert writepages_finish() to use a folio
  ceph: Use a folio in ceph_filemap_fault()
  ceph: Convert ceph_read_iter() to use a folio to read inline data
  ceph: Convert __ceph_do_getattr() to take a folio
  ceph: Convert ceph_fill_inode() to take a folio
  ceph: Convert ceph_fill_inline_data() to take a folio
  ceph: Convert ceph_set_page_fscache() to ceph_folio_start_fscache()
  netfs: Remove unused functions

 .../filesystems/caching/netfs-api.rst         |  30 +-
 fs/ceph/addr.c                                | 351 ++++++++----------
 fs/ceph/file.c                                |  20 +-
 fs/ceph/inode.c                               |  14 +-
 fs/ceph/mds_client.h                          |   2 +-
 fs/ceph/super.h                               |   8 +-
 include/linux/netfs.h                         |  15 -
 include/linux/pagemap.h                       |  28 --
 8 files changed, 197 insertions(+), 271 deletions(-)

Comments

Matthew Wilcox Nov. 17, 2023, 3:37 p.m. UTC | #1
On Fri, Aug 25, 2023 at 09:12:10PM +0100, Matthew Wilcox (Oracle) wrote:
> I know David is working to make ceph large-folio-aware from the bottom up.
> Here's my attempt at making the top (ie the part of ceph that interacts
> with the page cache) folio-aware.  Mostly this is just phasing out use
> of struct page in favour of struct folio and using the new APIs.
> 
> The fscrypt interaction still needs a bit of work, but it should be a
> little easier now.  There's still some weirdness in how ceph interacts
> with the page cache; for example it holds folios locked while doing
> writeback instead of dropping the folio lock after setting the writeback
> flag.  I'm not sure why it does that, but I don't want to try fixing that
> as part of this series.
> 
> I don't have a ceph setup, so these patches are only compile tested.
> I really want to be rid of some compat code, and cecph is sometimes the
> last user (or really close to being the last user).

Any progress on merging these?  It's making other patches I'm working on
more difficult to have these patches outstanding.
Xiubo Li Nov. 20, 2023, 12:32 a.m. UTC | #2
On 11/17/23 23:37, Matthew Wilcox wrote:
> On Fri, Aug 25, 2023 at 09:12:10PM +0100, Matthew Wilcox (Oracle) wrote:
>> I know David is working to make ceph large-folio-aware from the bottom up.
>> Here's my attempt at making the top (ie the part of ceph that interacts
>> with the page cache) folio-aware.  Mostly this is just phasing out use
>> of struct page in favour of struct folio and using the new APIs.
>>
>> The fscrypt interaction still needs a bit of work, but it should be a
>> little easier now.  There's still some weirdness in how ceph interacts
>> with the page cache; for example it holds folios locked while doing
>> writeback instead of dropping the folio lock after setting the writeback
>> flag.  I'm not sure why it does that, but I don't want to try fixing that
>> as part of this series.
>>
>> I don't have a ceph setup, so these patches are only compile tested.
>> I really want to be rid of some compat code, and cecph is sometimes the
>> last user (or really close to being the last user).
> Any progress on merging these?  It's making other patches I'm working on
> more difficult to have these patches outstanding.
>
Hi Willy,

I had one comment on the [01/15], could you confirm that ?

Thanks

- Xiubo