2023-08-03 16:34:02

by Lucas Karpinski

[permalink] [raw]
Subject: [PATCH v2] selftests: cgroup: fix test_kmem_basic slab1 check

test_kmem_basic creates 100,000 negative dentries, with each one mapping
to a slab object. After memory.high is set, these are reclaimed through
the shrink_slab function call which reclaims all 100,000 entries. The
test passes the majority of the time because when slab1 is calculated,
it is often above 0, however, 0 is also an acceptable value.

Signed-off-by: Lucas Karpinski <[email protected]>
---
https://lore.kernel.org/all/m6jbt5hzq27ygt3l4xyiaxxb7i5auvb2lahbcj4yaxxigqzu5e@5rn6s2yjzv7u/
V2: Corrected title

tools/testing/selftests/cgroup/test_kmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/cgroup/test_kmem.c b/tools/testing/selftests/cgroup/test_kmem.c
index 258ddc565deb..ba0a0bfc5a98 100644
--- a/tools/testing/selftests/cgroup/test_kmem.c
+++ b/tools/testing/selftests/cgroup/test_kmem.c
@@ -71,7 +71,7 @@ static int test_kmem_basic(const char *root)

cg_write(cg, "memory.high", "1M");
slab1 = cg_read_key_long(cg, "memory.stat", "slab ");
- if (slab1 <= 0)
+ if (slab1 < 0)
goto cleanup;

current = cg_read_long(cg, "memory.current");
--
2.41.0



2023-08-03 18:51:42

by Johannes Weiner

[permalink] [raw]
Subject: Re: [PATCH v2] selftests: cgroup: fix test_kmem_basic slab1 check

On Thu, Aug 03, 2023 at 12:00:47PM -0400, Lucas Karpinski wrote:
> test_kmem_basic creates 100,000 negative dentries, with each one mapping
> to a slab object. After memory.high is set, these are reclaimed through
> the shrink_slab function call which reclaims all 100,000 entries. The
> test passes the majority of the time because when slab1 is calculated,
> it is often above 0, however, 0 is also an acceptable value.
>
> Signed-off-by: Lucas Karpinski <[email protected]>

Acked-by: Johannes Weiner <[email protected]>

> @@ -71,7 +71,7 @@ static int test_kmem_basic(const char *root)
>
> cg_write(cg, "memory.high", "1M");
> slab1 = cg_read_key_long(cg, "memory.stat", "slab ");
> - if (slab1 <= 0)
> + if (slab1 < 0)
> goto cleanup;

This conflicts with a recent patch already queued up in -mm:

selftests: cgroup: fix test_kmem_basic false positives

which adds a sleep(1) between cg_write() and cg_read_key_long().

Can you please rebase on top of

git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable

and re-send the patch with

To: Andrew Morton <[email protected]>

? Thanks