From: Tal Zussman <tz2294@columbia.edu>
To: Ilya Dryomov <idryomov@gmail.com>,
Alex Markuze <amarkuze@redhat.com>,
Viacheslav Dubeyko <slava@dubeyko.com>,
Christian Brauner <brauner@kernel.org>,
Jeff Layton <jlayton@kernel.org>,
David Howells <dhowells@redhat.com>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
Zi Yan <ziy@nvidia.com>
Cc: ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org,
Sashiko <sashiko-bot@kernel.org>,
Tal Zussman <tz2294@columbia.edu>
Subject: [PATCH v5 00/10] ceph: convert writeback path to folios
Date: Wed, 02 Sep 2026 12:11:24 -0400 [thread overview]
Message-ID: <20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu> (raw)
Convert ceph's writeback path to work on folios. These conversions
eliminate the last callers of three mm compatibility APIs:
wait_on_page_writeback(), thp_size(), and thp_order(). Their removals
will be sent separately once the conversions land, per Ceph maintainer
request.
This also fixes a couple pre-existing issues discovered by Sashiko
along the way.
Some page <-> folio boundaries are deliberately left in place where
ceph borders on some gnarlier page-based APIs:
- libceph's OSD data plane is page-array based, so ceph_writeback_ctl's
pages[] and osd_data->pages[] remain struct page arrays. Folios are
converted at the array/libceph boundary.
- fscrypt's bounce page API remains page-based for some functions
(fscrypt_encrypt_pagecache_blocks(), fscrypt_free_bounce_page()).
Possibly-bounce array entries are unwrapped to their pagecache folios
via fscrypt_pagecache_folio().
This series is based on the ceph-client testing branch [1].
[1] https://github.com/ceph/ceph-client/tree/testing
---
Changes in v5:
- Rebase onto the current ceph-client testing branch
- Patches 1, 6, and 8: open-code the bounce page unwrapping, as
fscrypt_finalize_bounce_page() was removed in v7.3-rc1, per Ilya
- Link to v4: https://lore.kernel.org/r/20260817-remove-wait-on-page-writeback-v4-0-0e5e53d47eb0@columbia.edu
Changes in v4:
- Rebase onto the current ceph-client testing branch
- Drop the two mm patches removing wait_on_page_writeback(), thp_size(),
and thp_order(), per Alex
- Patch 2: wait for the pending fscache write before bumping the
writeback congestion count and allocating the OSD request, per
Sashiko
- Link to v3: https://lore.kernel.org/r/20260810-remove-wait-on-page-writeback-v3-0-dd7531704f26@columbia.edu
Changes in v3:
- Add patches 1 and 2, fixing a couple pre-existing bugs found by Sashiko
- Patch 7 (was patch 5): Rework the ceph_submit_write() error path
conversion on top of patch 1
- Patch 10 (was patch 8): Remove the BUG_ON(), per Sashiko and Matthew
- Link to v2: https://lore.kernel.org/r/20260804-remove-wait-on-page-writeback-v2-0-81f0ab065284@columbia.edu
Changes in v2:
- Propagate tags (thanks David and Matthew!)
- Rebase onto ceph-client.git testing
- Rename the series to "ceph: convert writeback path to folios"
- Patch 1: Drop the folio_test_private() check in
ceph_folio_snap_context(), per Matthew and Zi.
- Patch 4: Introduce ceph_fscrypt folio helpers and use them in
get_writepages_data_length(), per Matthew.
- Patches 5-10: new
- Link to v1: https://lore.kernel.org/r/20260802-remove-wait-on-page-writeback-v1-0-6c35d6b3ad36@columbia.edu
---
Tal Zussman (10):
ceph: fix error handling when the OSD client is stopping in ceph_submit_write()
ceph: wait for pending fscache write in write_folio_nounlock()
ceph: add ceph_folio_snap_context()
ceph: convert ceph_wait_until_current_writes_complete() to folios
ceph: convert get_writepages_data_length() to folios
ceph: convert ceph_submit_write() to folios
ceph: remove page remnants from write_folio_nounlock()
ceph: convert page cleanup loop in writepages_finish() to folios
ceph: remove ceph_fscrypt_pagecache_page() and ceph_fscrypt_page_offset()
ceph: rename ceph_check_page_before_write() to ceph_check_folio_before_write()
fs/ceph/addr.c | 164 ++++++++++++++++++++++++++++++-------------------------
fs/ceph/crypto.h | 12 ++--
2 files changed, 96 insertions(+), 80 deletions(-)
---
base-commit: 6b039a71d37a39bb90a64c4e271f90ee0588ac4a
change-id: 20260802-remove-wait-on-page-writeback-8e0cb766d4c7
Best regards,
--
Tal Zussman <tz2294@columbia.edu>
next reply other threads:[~2026-09-02 16:11 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-02 16:11 Tal Zussman [this message]
2026-09-02 16:11 ` [PATCH v5 01/10] ceph: fix error handling when the OSD client is stopping in ceph_submit_write() Tal Zussman
2026-09-02 16:11 ` [PATCH v5 02/10] ceph: wait for pending fscache write in write_folio_nounlock() Tal Zussman
2026-09-02 16:11 ` [PATCH v5 03/10] ceph: add ceph_folio_snap_context() Tal Zussman
2026-09-02 16:11 ` [PATCH v5 04/10] ceph: convert ceph_wait_until_current_writes_complete() to folios Tal Zussman
2026-09-02 16:11 ` [PATCH v5 05/10] ceph: convert get_writepages_data_length() " Tal Zussman
2026-09-02 16:11 ` [PATCH v5 06/10] ceph: convert ceph_submit_write() " Tal Zussman
2026-09-02 16:11 ` [PATCH v5 07/10] ceph: remove page remnants from write_folio_nounlock() Tal Zussman
2026-09-02 16:11 ` [PATCH v5 08/10] ceph: convert page cleanup loop in writepages_finish() to folios Tal Zussman
2026-09-02 16:11 ` [PATCH v5 09/10] ceph: remove ceph_fscrypt_pagecache_page() and ceph_fscrypt_page_offset() Tal Zussman
2026-09-02 16:11 ` [PATCH v5 10/10] ceph: rename ceph_check_page_before_write() to ceph_check_folio_before_write() Tal Zussman
2026-10-08 16:00 ` [PATCH v5 00/10] ceph: convert writeback path to folios David Howells
2026-10-10 0:16 ` Tal Zussman
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=20260902-remove-wait-on-page-writeback-v5-0-0b512e77e75b@columbia.edu \
--to=tz2294@columbia.edu \
--cc=amarkuze@redhat.com \
--cc=brauner@kernel.org \
--cc=ceph-devel@vger.kernel.org \
--cc=dhowells@redhat.com \
--cc=idryomov@gmail.com \
--cc=jlayton@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sashiko-bot@kernel.org \
--cc=slava@dubeyko.com \
--cc=willy@infradead.org \
--cc=ziy@nvidia.com \
/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
all inboxes | Powered by JetHome®