All of 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
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ 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] 6+ 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
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ 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] 6+ 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
  2026-05-25  8:38 ` [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility Vlastimil Babka
  3 siblings, 1 reply; 6+ 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] 6+ 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
  2026-05-25  8:38 ` [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility Vlastimil Babka
  3 siblings, 0 replies; 6+ 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] 6+ 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; 6+ 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] 6+ messages in thread

* Re: [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility
  2026-05-18  6:21 [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility Xuewen Wang
                   ` (2 preceding siblings ...)
  2026-05-18  6:21 ` [PATCH v2 3/3] tools/mm/slabinfo: remove redundant slab->partial assignment Xuewen Wang
@ 2026-05-25  8:38 ` Vlastimil Babka
  3 siblings, 0 replies; 6+ messages in thread
From: Vlastimil Babka @ 2026-05-25  8:38 UTC (permalink / raw)
  To: Xuewen Wang, akpm; +Cc: linux-mm, linux-kernel, Harry Yoo, Hao Li

On 5/18/26 08:21, Xuewen Wang wrote:
> 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(-)

Thanks, applied to slab/for-next

> 
> ---
> 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/
> 



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

end of thread, other threads:[~2026-05-25  8:38 UTC | newest]

Thread overview: 6+ 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
2026-05-25  8:38 ` [PATCH v2 0/3] Cleanup and fix tools/mm/slabinfo utility Vlastimil Babka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.