mbox series

[00/11] fuse: convert to using folios and iomap

Message ID cover.1724791233.git.josef@toxicpanda.com (mailing list archive)
Headers show
Series fuse: convert to using folios and iomap | expand

Message

Josef Bacik Aug. 27, 2024, 8:45 p.m. UTC
Hello,

This is a prep series for my work to enable large folios on fuse.  It has two
dependencies, one is Joanne's writeback clean patches

https://lore.kernel.org/linux-fsdevel/20240826211908.75190-1-joannelkoong@gmail.com/

and an iomap patch to allow us to pass the file through the buffered write path

https://lore.kernel.org/linux-fsdevel/7f55c7c32275004ba00cddf862d970e6e633f750.1724755651.git.josef@toxicpanda.com/

I've run these through an fstests run with passthrough_hp --direct-io,
everything looks good.

The last remaining bit that needs to be made to use folios is the splice/pipe
code, which I need to be a lot more careful about.  The next step is to plumb
through the ability to handle large folios.  But this is a decent start and
removes the bulk of FUSE's use of struct page, and is relatively safe and
straightforward.  Thanks,

Josef

Josef Bacik (11):
  fuse: convert readahead to use folios
  fuse: convert fuse_send_write_pages to use folios
  fuse: convert fuse_fill_write_pages to use folios
  fuse: convert fuse_page_mkwrite to use folios
  fuse: use kiocb_modified in buffered write path
  fuse: use iomap for writeback cache buffered writes
  fuse: convert fuse_do_readpage to use folios
  fuse: convert fuse_writepage_need_send to take a folio
  fuse: use the folio based vmstat helpers
  fuse: convert fuse_retrieve to use folios
  fuse: convert fuse_notify_store to use folios

 fs/fuse/dev.c  |  38 ++++---
 fs/fuse/file.c | 296 +++++++++++++++++++++++++------------------------
 2 files changed, 172 insertions(+), 162 deletions(-)

Comments

Bernd Schubert Aug. 27, 2024, 9:36 p.m. UTC | #1
Hi Josef,

On 8/27/24 22:45, Josef Bacik wrote:
> Hello,
> 
> This is a prep series for my work to enable large folios on fuse.  It has two
> dependencies, one is Joanne's writeback clean patches
> 
> https://lore.kernel.org/linux-fsdevel/20240826211908.75190-1-joannelkoong@gmail.com/
> 
> and an iomap patch to allow us to pass the file through the buffered write path
> 
> https://lore.kernel.org/linux-fsdevel/7f55c7c32275004ba00cddf862d970e6e633f750.1724755651.git.josef@toxicpanda.com/
> 
> I've run these through an fstests run with passthrough_hp --direct-io,
> everything looks good.

why with --direct-io? It is not exactly O_DIRECT, but also not that far
away - don't you want to stress read-ahead and page cache usage on write?
I typically run with/without --direct-io, but disable passthrough.


Thanks,
Bernd
Josef Bacik Aug. 27, 2024, 10:18 p.m. UTC | #2
On Tue, Aug 27, 2024 at 11:36:56PM +0200, Bernd Schubert wrote:
> Hi Josef,
> 
> On 8/27/24 22:45, Josef Bacik wrote:
> > Hello,
> > 
> > This is a prep series for my work to enable large folios on fuse.  It has two
> > dependencies, one is Joanne's writeback clean patches
> > 
> > https://lore.kernel.org/linux-fsdevel/20240826211908.75190-1-joannelkoong@gmail.com/
> > 
> > and an iomap patch to allow us to pass the file through the buffered write path
> > 
> > https://lore.kernel.org/linux-fsdevel/7f55c7c32275004ba00cddf862d970e6e633f750.1724755651.git.josef@toxicpanda.com/
> > 
> > I've run these through an fstests run with passthrough_hp --direct-io,
> > everything looks good.
> 
> why with --direct-io? It is not exactly O_DIRECT, but also not that far
> away - don't you want to stress read-ahead and page cache usage on write?
> I typically run with/without --direct-io, but disable passthrough.
> 

I got distracted halfway through writing this email, I meant to write "with
passthrough_hp with and without --direct-io".  I have to run with --direct-io
otherwise generic/097 hangs because of a fio bug (I really need to go fix that).
Thanks,

Josef