mm/zswap: remove zswap_entry_cache_{create,destroy} helper function
authorLiu Shixin <liushixin2@huawei.com>
Mon, 3 Apr 2023 12:13:16 +0000 (20:13 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 18 Apr 2023 23:29:48 +0000 (16:29 -0700)
Patch series "Delay the initialization of zswap", v9.

In the initialization of zswap, about 18MB memory will be allocated for
zswap_pool.  Since some users may not use zswap, the zswap_pool is wasted.
Save memory by delaying the initialization of zswap until enabled.

This patch (of 3):

Remove zswap_entry_cache_create and zswap_entry_cache_destroy and use
kmem_cache_* function directly.

Link: https://lkml.kernel.org/r/20230411093632.822290-1-liushixin2@huawei.com
Link: https://lkml.kernel.org/r/20230403121318.1876082-1-liushixin2@huawei.com
Link: https://lkml.kernel.org/r/20230403121318.1876082-2-liushixin2@huawei.com
Signed-off-by: Liu Shixin <liushixin2@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Dan Streetman <ddstreet@ieee.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Seth Jennings <sjenning@redhat.com>
Cc: Vitaly Wool <vitaly.wool@konsulko.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/zswap.c

index 2f0ebd8..6d2b879 100644 (file)
@@ -272,17 +272,6 @@ static void zswap_update_total_size(void)
 **********************************/
 static struct kmem_cache *zswap_entry_cache;
 
-static int __init zswap_entry_cache_create(void)
-{
-       zswap_entry_cache = KMEM_CACHE(zswap_entry, 0);
-       return zswap_entry_cache == NULL;
-}
-
-static void __init zswap_entry_cache_destroy(void)
-{
-       kmem_cache_destroy(zswap_entry_cache);
-}
-
 static struct zswap_entry *zswap_entry_cache_alloc(gfp_t gfp)
 {
        struct zswap_entry *entry;
@@ -1489,7 +1478,8 @@ static int __init init_zswap(void)
 
        zswap_init_started = true;
 
-       if (zswap_entry_cache_create()) {
+       zswap_entry_cache = KMEM_CACHE(zswap_entry, 0);
+       if (!zswap_entry_cache) {
                pr_err("entry cache creation failed\n");
                goto cache_fail;
        }
@@ -1538,7 +1528,7 @@ fallback_fail:
 hp_fail:
        cpuhp_remove_state(CPUHP_MM_ZSWP_MEM_PREPARE);
 dstmem_fail:
-       zswap_entry_cache_destroy();
+       kmem_cache_destroy(zswap_entry_cache);
 cache_fail:
        /* if built-in, we aren't unloaded on failure; don't allow use */
        zswap_init_failed = true;