From: Josef Bacik <josef@toxicpanda.com>
To: linux-fsdevel@vger.kernel.org, amir73il@gmail.com,
miklos@szeredi.hu, kernel-team@fb.com
Subject: [PATCH v4 00/10] fuse: folio conversions
Date: Mon, 30 Sep 2024 09:45:08 -0400 [thread overview]
Message-ID: <cover.1727703714.git.josef@toxicpanda.com> (raw)
v3: https://lore.kernel.org/linux-fsdevel/cover.1727469663.git.josef@toxicpanda.com/
v2: https://lore.kernel.org/linux-fsdevel/cover.1724879414.git.josef@toxicpanda.com/
v1: https://lore.kernel.org/linux-fsdevel/cover.1724791233.git.josef@toxicpanda.com/
v3->v4:
- Added Joanne's Reviewed-by's.
- Renamed fuse_do_readpage to fuse_do_readfolio, and updated the comment to be
more clear about why we were waiting on writeback, per Joanne's comments.
- Used filemap_get_folio instead of the __ variant in fuse_retrieve, per
Joanne's comments.
v2->v3:
- Discussions with Willy at Plumbers helped clarify expectations around large
folio usage, he had already converted the generic_perform_write to deal with
large folios, so I dropped the iomap conversion since it's a bit overkill for
FUSE's buffered use case.
- Rebased onto linus + fuse/for-next. I had to combine the branches because
fuse/for-next is behind linus and there are fixes from Jann and Willy that
aren't in the FUSE tree.
- Pushed a new GH branch since I had to combine everything
https://github.com/josefbacik/linux/tree/fuse-folio-prep
v1->v2:
- Fixed my fstests setup to use --nopassthrough so my code actually got tested
this time.
- Fixed a bug where we double put on the folio in readpages, because previous
behavior was the reference was maintained until the endio, but
readahead_folio() drops the reference on the folio, so we need to not call put
in the endio anymore.
- Fixed the IS_ERR inversion pointed out by Joanne.
- Made the various adjustments pointed out by Willy.
- Updated the Kconfig per hch's suggestion.
- Pushed to my GH tree since there are dependencies to make it easier to see
what the code is https://github.com/josefbacik/linux/tree/fuse-iomap
--- Original email ---
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 (10):
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: 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 | 164 +++++++++++++++++++++++++++++--------------------
2 files changed, 117 insertions(+), 85 deletions(-)
--
2.43.0
next reply other threads:[~2024-09-30 13:45 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-30 13:45 Josef Bacik [this message]
2024-09-30 13:45 ` [PATCH v4 01/10] fuse: convert readahead to use folios Josef Bacik
2024-09-30 13:45 ` [PATCH v4 02/10] fuse: convert fuse_send_write_pages " Josef Bacik
2024-09-30 13:45 ` [PATCH v4 03/10] fuse: convert fuse_fill_write_pages " Josef Bacik
2024-09-30 13:45 ` [PATCH v4 04/10] fuse: convert fuse_page_mkwrite " Josef Bacik
2024-09-30 13:45 ` [PATCH v4 05/10] fuse: use kiocb_modified in buffered write path Josef Bacik
2024-09-30 13:45 ` [PATCH v4 06/10] fuse: convert fuse_do_readpage to use folios Josef Bacik
2024-10-01 16:54 ` Joanne Koong
2024-10-01 20:19 ` Josef Bacik
2024-09-30 13:45 ` [PATCH v4 07/10] fuse: convert fuse_writepage_need_send to take a folio Josef Bacik
2024-09-30 13:45 ` [PATCH v4 08/10] fuse: use the folio based vmstat helpers Josef Bacik
2024-09-30 13:45 ` [PATCH v4 09/10] fuse: convert fuse_retrieve to use folios Josef Bacik
2024-09-30 13:45 ` [PATCH v4 10/10] fuse: convert fuse_notify_store " Josef Bacik
2024-10-18 9:59 ` [PATCH v4 00/10] fuse: folio conversions Miklos Szeredi
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=cover.1727703714.git.josef@toxicpanda.com \
--to=josef@toxicpanda.com \
--cc=amir73il@gmail.com \
--cc=kernel-team@fb.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
/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).