Message ID | 20250110203303.3658816-1-joshua.hahnjy@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/zswap: Remove zswap_pools_counter | expand |
On Fri, Jan 10, 2025 at 12:33 PM Joshua Hahn <joshua.hahnjy@gmail.com> wrote: > > Commit 8edc9c4 [1] reduced the number of pools used by zswap from 32 to 1. When referring to commits we use the first 12 characters in the SHA1 and the commit subject, rather than the link (although adding the link as well does not hurt). So this should be 'Commit 8edc9c4e72fe ("mm/zswap: use only one pool in zswap")'. > As such, we no longer need to have unique names for zpool (zsmalloc). More importantly, I don't think this is accurate. zswap_pools_count was introduced by commit 32a4e1690399 ("mm/zswap: provide unique zpool name") long before we increased the number of concurrent zpools to 32. It is needed because even though we used to have a single zpool per zswap_pool (as we returned to doing after [1]), we may have multiple zswap_pool's (e.g. if the compressor is changed, a new zswap_pool is created). > > Remove the atomic counter that keeps track of the number of allocated pools, > and replace the "zswap<n>" string formatting with "zswap". > > Signed-off-by: Joshua Hahn <joshua.hahnjy@gmail.com> > > [1] https://lore.kernel.org/all/20240617-zsmalloc-lock-mm-everything-v1-2-5e5081ea11b3@linux.dev/T/#u > > --- > mm/zswap.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index 5a27af8d86ea..bc43e807de29 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -210,8 +210,6 @@ static unsigned int nr_zswap_trees[MAX_SWAPFILES]; > static LIST_HEAD(zswap_pools); > /* protects zswap_pools list modification */ > static DEFINE_SPINLOCK(zswap_pools_lock); > -/* pool counter to provide unique names to zpool */ > -static atomic_t zswap_pools_count = ATOMIC_INIT(0); > > enum zswap_init_type { > ZSWAP_UNINIT, > @@ -249,7 +247,6 @@ static void __zswap_pool_empty(struct percpu_ref *ref); > static struct zswap_pool *zswap_pool_create(char *type, char *compressor) > { > struct zswap_pool *pool; > - char name[38]; /* 'zswap' + 32 char (max) num + \0 */ > gfp_t gfp = __GFP_NORETRY | __GFP_NOWARN | __GFP_KSWAPD_RECLAIM; > int ret; > > @@ -268,9 +265,7 @@ static struct zswap_pool *zswap_pool_create(char *type, char *compressor) > if (!pool) > return NULL; > > - /* unique name for each pool specifically required by zsmalloc */ > - snprintf(name, 38, "zswap%x", atomic_inc_return(&zswap_pools_count)); > - pool->zpool = zpool_create_pool(type, name, gfp); > + pool->zpool = zpool_create_pool(type, "zswap", gfp); > if (!pool->zpool) { > pr_err("%s zpool not available\n", type); > goto error; > -- > 2.43.5
diff --git a/mm/zswap.c b/mm/zswap.c index 5a27af8d86ea..bc43e807de29 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -210,8 +210,6 @@ static unsigned int nr_zswap_trees[MAX_SWAPFILES]; static LIST_HEAD(zswap_pools); /* protects zswap_pools list modification */ static DEFINE_SPINLOCK(zswap_pools_lock); -/* pool counter to provide unique names to zpool */ -static atomic_t zswap_pools_count = ATOMIC_INIT(0); enum zswap_init_type { ZSWAP_UNINIT, @@ -249,7 +247,6 @@ static void __zswap_pool_empty(struct percpu_ref *ref); static struct zswap_pool *zswap_pool_create(char *type, char *compressor) { struct zswap_pool *pool; - char name[38]; /* 'zswap' + 32 char (max) num + \0 */ gfp_t gfp = __GFP_NORETRY | __GFP_NOWARN | __GFP_KSWAPD_RECLAIM; int ret; @@ -268,9 +265,7 @@ static struct zswap_pool *zswap_pool_create(char *type, char *compressor) if (!pool) return NULL; - /* unique name for each pool specifically required by zsmalloc */ - snprintf(name, 38, "zswap%x", atomic_inc_return(&zswap_pools_count)); - pool->zpool = zpool_create_pool(type, name, gfp); + pool->zpool = zpool_create_pool(type, "zswap", gfp); if (!pool->zpool) { pr_err("%s zpool not available\n", type); goto error;
Commit 8edc9c4 [1] reduced the number of pools used by zswap from 32 to 1. As such, we no longer need to have unique names for zpool (zsmalloc). Remove the atomic counter that keeps track of the number of allocated pools, and replace the "zswap<n>" string formatting with "zswap". Signed-off-by: Joshua Hahn <joshua.hahnjy@gmail.com> [1] https://lore.kernel.org/all/20240617-zsmalloc-lock-mm-everything-v1-2-5e5081ea11b3@linux.dev/T/#u --- mm/zswap.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)