mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
mm/zswap: remove zswap_entry_cache_{create,destroy} helper function
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>
This commit is contained in:
parent
fa1c77c13c
commit
b791912252
16
mm/zswap.c
16
mm/zswap.c
@ -272,17 +272,6 @@ static void zswap_update_total_size(void)
|
|||||||
**********************************/
|
**********************************/
|
||||||
static struct kmem_cache *zswap_entry_cache;
|
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)
|
static struct zswap_entry *zswap_entry_cache_alloc(gfp_t gfp)
|
||||||
{
|
{
|
||||||
struct zswap_entry *entry;
|
struct zswap_entry *entry;
|
||||||
@ -1489,7 +1478,8 @@ static int __init init_zswap(void)
|
|||||||
|
|
||||||
zswap_init_started = true;
|
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");
|
pr_err("entry cache creation failed\n");
|
||||||
goto cache_fail;
|
goto cache_fail;
|
||||||
}
|
}
|
||||||
@ -1538,7 +1528,7 @@ fallback_fail:
|
|||||||
hp_fail:
|
hp_fail:
|
||||||
cpuhp_remove_state(CPUHP_MM_ZSWP_MEM_PREPARE);
|
cpuhp_remove_state(CPUHP_MM_ZSWP_MEM_PREPARE);
|
||||||
dstmem_fail:
|
dstmem_fail:
|
||||||
zswap_entry_cache_destroy();
|
kmem_cache_destroy(zswap_entry_cache);
|
||||||
cache_fail:
|
cache_fail:
|
||||||
/* if built-in, we aren't unloaded on failure; don't allow use */
|
/* if built-in, we aren't unloaded on failure; don't allow use */
|
||||||
zswap_init_failed = true;
|
zswap_init_failed = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user