In the initialization of zswap, about 18MB memory will be allocated for zswap_pool. Since not all users use zswap, the memory may be wasted. Save the memory for these users by delaying the initialization of zswap to first enablement. v4->v5: Rebase on next-20220913, the previous first patch is superseded by patch ("frontswap: don't call ->init if no ops are registered"). v3->v4: Revert three patches to replace previous patch[1-2] suggested by Vitaly. v2->v3: Fix frontswap_ops NULL reported by Nathan and add init for online swap device in backend register. v1->v2: Change init_zswap to zswap_init suggested by Andrew. Liu Shixin (5): Revert "mm: mark swap_lock and swap_active_head static" Revert "frontswap: simplify frontswap_register_ops" mm/zswap: replace zswap_init_{started/failed} with zswap_init_state mm/zswap: delay the initializaton of zswap until the first enablement mm/zswap: skip confusing print info include/linux/swapfile.h | 2 ++ mm/frontswap.c | 42 ++++++++++++++++++++++ mm/swapfile.c | 4 +-- mm/zswap.c | 77 ++++++++++++++++++++++++++++++---------- 4 files changed, 104 insertions(+), 21 deletions(-) -- 2.25.1