This patch series introduces asynchronous writeback to the zram module.
By moving to an asynchronous model, we can perform writeback operations
more efficiently.
The series is structured as follows:
The first patch is a preparatory refactoring that moves all
writeback-related code into its own files (zram_wb.[ch]) without any
functional changes.
The second patch introduces the core infrastructure for asynchronicity,
including a dedicated kthread, a request queue, and helper functions to
manage writeback requests.
The final patch enables asynchronous writeback by switching from
submit_bio_wait() to the non-blocking submit_bio(). This patch also
includes performance benchmarks demonstrating a 27% improvement in
idle writeback speed on an Android platform.
Changes in v2:
- Rebase and spilt to a series of patchset
- Add test results
- Link to v1: https://lore.kernel.org/all/20250618132622.3730219-1-richardycc@google.com/
Richard Chang (3):
zram: refactor writeback helpers
zram: add async writeback infrastructure
zram: enable asynchronous writeback
drivers/block/zram/Makefile | 1 +
drivers/block/zram/zram_drv.c | 157 +++++++--------------
drivers/block/zram/zram_drv.h | 30 ++++
drivers/block/zram/zram_wb.c | 248 ++++++++++++++++++++++++++++++++++
drivers/block/zram/zram_wb.h | 42 ++++++
5 files changed, 371 insertions(+), 107 deletions(-)
create mode 100644 drivers/block/zram/zram_wb.c
create mode 100644 drivers/block/zram/zram_wb.h
--
2.50.1.565.gc32cd1483b-goog