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@xxxxxxxxxx/ 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