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. 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 (6): Revert "frontswap: remove support for multiple ops" 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/frontswap.h | 3 +- include/linux/swapfile.h | 2 + mm/frontswap.c | 91 +++++++++++++++++++++++++++++++++------ mm/swapfile.c | 4 +- mm/zswap.c | 85 +++++++++++++++++++++++++----------- 5 files changed, 145 insertions(+), 40 deletions(-) -- 2.25.1