Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility
@ 2026-05-18  6:21 Xuewen Wang
  2026-05-18  6:21 ` [PATCH v2 1/3] tools/mm/slabinfo: Fix trace disable logic inversion Xuewen Wang
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Xuewen Wang @ 2026-05-18  6:21 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, linux-kernel, Xuewen Wang

This series fixes one bug and cleans up two code quality issues in tools/mm/slabinfo:

1. Fix trace disable logic inversion: when the user intends to disable
   tracing (!tracing) and it is currently enabled (s->trace),
   set_obj() was called with 1 instead of 0, which is opposite to
   the intended behavior. All other options (sanity_checks, red_zone,
   poison, store_user) in the same function use 0 for the disable
   case.

2. Remove dead assignment in get_obj_and_str(): `x = NULL` sets the
   local parameter variable instead of `*x`, which is a no-op since
   `*x` was already set to NULL on the line above.

3. Remove redundant slab->partial assignment in read_slab_dir():
   slab->partial is assigned by get_obj("partial") and then
   immediately overwritten by get_obj_and_str("partial", &t).

Xuewen Wang (3):
  tools/mm/slabinfo: Fix trace disable logic inversion
  tools/mm/slabinfo: remove dead assignment in get_obj_and_str()
  tools/mm/slabinfo: remove redundant slab->partial assignment

 tools/mm/slabinfo.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

---
Changes in v2:
- Fix author email mismatch
- Add Fixes tag for the bug fix (patch 1)
- Remove unnecessary braces in patch 2 per reviewer suggestion

Patches 1/3 and 3/3 carry Reviewed-by tag from SeongJae Park.

v1:
    https://lore.kernel.org/all/20260515065325.4009527-1-18810879172@163.com/

-- 
2.25.1



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/3] tools/mm/slabinfo: Fix trace disable logic inversion
  2026-05-18  6:21 [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility Xuewen Wang
@ 2026-05-18  6:21 ` Xuewen Wang
  2026-05-18  6:21 ` [PATCH v2 2/3] tools/mm/slabinfo: remove dead assignment in get_obj_and_str() Xuewen Wang
  2026-05-18  6:21 ` [PATCH v2 3/3] tools/mm/slabinfo: remove redundant slab->partial assignment Xuewen Wang
  2 siblings, 0 replies; 5+ messages in thread
From: Xuewen Wang @ 2026-05-18  6:21 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, linux-kernel, Xuewen Wang, stable, SeongJae Park

The disable trace path in slab_debug() had a logic error where it would
set trace=1 instead of trace=0. This made trace functionality permanently
enabled once turned on for any slab cache.

Fixes: a87615b8f9e2 ("SLUB: slabinfo upgrade")
Cc: stable@vger.kernel.org
Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Xuewen Wang <wangxuewen@kylinos.cn>
---
 tools/mm/slabinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/mm/slabinfo.c b/tools/mm/slabinfo.c
index 54c7265ab52d..39f7eae7eecd 100644
--- a/tools/mm/slabinfo.c
+++ b/tools/mm/slabinfo.c
@@ -798,7 +798,7 @@ static void slab_debug(struct slabinfo *s)
 			fprintf(stderr, "%s can only enable trace for one slab at a time\n", s->name);
 	}
 	if (!tracing && s->trace)
-		set_obj(s, "trace", 1);
+		set_obj(s, "trace", 0);
 }
 
 static void totals(void)
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/3] tools/mm/slabinfo: remove dead assignment in get_obj_and_str()
  2026-05-18  6:21 [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility Xuewen Wang
  2026-05-18  6:21 ` [PATCH v2 1/3] tools/mm/slabinfo: Fix trace disable logic inversion Xuewen Wang
@ 2026-05-18  6:21 ` Xuewen Wang
  2026-05-19  0:32   ` SeongJae Park
  2026-05-18  6:21 ` [PATCH v2 3/3] tools/mm/slabinfo: remove redundant slab->partial assignment Xuewen Wang
  2 siblings, 1 reply; 5+ messages in thread
From: Xuewen Wang @ 2026-05-18  6:21 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, linux-kernel, Xuewen Wang

The assignment `x = NULL` sets the local parameter variable instead of
`*x`, which is a no-op since `*x` was already set to NULL on the line
above. Remove the dead assignment.

Signed-off-by: Xuewen Wang <wangxuewen@kylinos.cn>
---
 tools/mm/slabinfo.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tools/mm/slabinfo.c b/tools/mm/slabinfo.c
index 39f7eae7eecd..685bcdd03568 100644
--- a/tools/mm/slabinfo.c
+++ b/tools/mm/slabinfo.c
@@ -193,10 +193,9 @@ static unsigned long get_obj_and_str(const char *name, char **x)
 
 	*x = NULL;
 
-	if (!read_obj(name)) {
-		x = NULL;
+	if (!read_obj(name))
 		return 0;
-	}
+
 	result = strtoul(buffer, &p, 10);
 	while (*p == ' ')
 		p++;
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 3/3] tools/mm/slabinfo: remove redundant slab->partial assignment
  2026-05-18  6:21 [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility Xuewen Wang
  2026-05-18  6:21 ` [PATCH v2 1/3] tools/mm/slabinfo: Fix trace disable logic inversion Xuewen Wang
  2026-05-18  6:21 ` [PATCH v2 2/3] tools/mm/slabinfo: remove dead assignment in get_obj_and_str() Xuewen Wang
@ 2026-05-18  6:21 ` Xuewen Wang
  2 siblings, 0 replies; 5+ messages in thread
From: Xuewen Wang @ 2026-05-18  6:21 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, linux-kernel, Xuewen Wang, SeongJae Park

slab->partial is assigned by get_obj("partial") and then immediately
overwritten by get_obj_and_str("partial", &t). Remove the first
redundant assignment.

Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Xuewen Wang <wangxuewen@kylinos.cn>
---
 tools/mm/slabinfo.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/mm/slabinfo.c b/tools/mm/slabinfo.c
index 685bcdd03568..87570c22b151 100644
--- a/tools/mm/slabinfo.c
+++ b/tools/mm/slabinfo.c
@@ -1265,7 +1265,6 @@ static void read_slab_dir(void)
 			slab->objects_total = get_obj("objects_total");
 			slab->objs_per_slab = get_obj("objs_per_slab");
 			slab->order = get_obj("order");
-			slab->partial = get_obj("partial");
 			slab->partial = get_obj_and_str("partial", &t);
 			decode_numa_list(slab->numa_partial, t);
 			free(t);
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 2/3] tools/mm/slabinfo: remove dead assignment in get_obj_and_str()
  2026-05-18  6:21 ` [PATCH v2 2/3] tools/mm/slabinfo: remove dead assignment in get_obj_and_str() Xuewen Wang
@ 2026-05-19  0:32   ` SeongJae Park
  0 siblings, 0 replies; 5+ messages in thread
From: SeongJae Park @ 2026-05-19  0:32 UTC (permalink / raw)
  To: Xuewen Wang; +Cc: SeongJae Park, akpm, linux-mm, linux-kernel

On Mon, 18 May 2026 14:21:58 +0800 Xuewen Wang <wangxuewen@kylinos.cn> wrote:

> The assignment `x = NULL` sets the local parameter variable instead of
> `*x`, which is a no-op since `*x` was already set to NULL on the line
> above. Remove the dead assignment.
> 
> Signed-off-by: Xuewen Wang <wangxuewen@kylinos.cn>

Reviewed-by: SeongJae Park <sj@kernel.org>


Thanks,
SJ

[...]


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-05-19  0:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-18  6:21 [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility Xuewen Wang
2026-05-18  6:21 ` [PATCH v2 1/3] tools/mm/slabinfo: Fix trace disable logic inversion Xuewen Wang
2026-05-18  6:21 ` [PATCH v2 2/3] tools/mm/slabinfo: remove dead assignment in get_obj_and_str() Xuewen Wang
2026-05-19  0:32   ` SeongJae Park
2026-05-18  6:21 ` [PATCH v2 3/3] tools/mm/slabinfo: remove redundant slab->partial assignment Xuewen Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox