[PATCH] selftests/bpf: Fix kmem_cache iterator draining

T.J. Mercier posted 1 patch 9 months, 2 weeks ago
tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] selftests/bpf: Fix kmem_cache iterator draining
Posted by T.J. Mercier 9 months, 2 weeks ago
The closing parentheses around the read syscall is misplaced, causing
single byte reads from the iterator instead of buf sized reads. While
the end result is the same, many more read calls than necessary are
performed.

$ tools/testing/selftests/bpf/vmtest.sh  "./test_progs -t kmem_cache_iter"
145/1   kmem_cache_iter/check_task_struct:OK
145/2   kmem_cache_iter/check_slabinfo:OK
145/3   kmem_cache_iter/open_coded_iter:OK
145     kmem_cache_iter:OK
Summary: 1/3 PASSED, 0 SKIPPED, 0 FAILED

Fixes: a496d0cdc84d ("selftests/bpf: Add a test for kmem_cache_iter")
Signed-off-by: T.J. Mercier <tjmercier@google.com>
---
 tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c b/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
index 8e13a3416a21..1de14b111931 100644
--- a/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
+++ b/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
@@ -104,7 +104,7 @@ void test_kmem_cache_iter(void)
 		goto destroy;
 
 	memset(buf, 0, sizeof(buf));
-	while (read(iter_fd, buf, sizeof(buf) > 0)) {
+	while (read(iter_fd, buf, sizeof(buf)) > 0) {
 		/* Read out all contents */
 		printf("%s", buf);
 	}

base-commit: b4432656b36e5cc1d50a1f2dc15357543add530e
-- 
2.49.0.906.g1f30a19c02-goog
Re: [PATCH] selftests/bpf: Fix kmem_cache iterator draining
Posted by Namhyung Kim 9 months, 2 weeks ago
Hello,

On Mon, Apr 28, 2025 at 06:02:54PM +0000, T.J. Mercier wrote:
> The closing parentheses around the read syscall is misplaced, causing
> single byte reads from the iterator instead of buf sized reads. While
> the end result is the same, many more read calls than necessary are
> performed.
> 
> $ tools/testing/selftests/bpf/vmtest.sh  "./test_progs -t kmem_cache_iter"
> 145/1   kmem_cache_iter/check_task_struct:OK
> 145/2   kmem_cache_iter/check_slabinfo:OK
> 145/3   kmem_cache_iter/open_coded_iter:OK
> 145     kmem_cache_iter:OK
> Summary: 1/3 PASSED, 0 SKIPPED, 0 FAILED
> 
> Fixes: a496d0cdc84d ("selftests/bpf: Add a test for kmem_cache_iter")
> Signed-off-by: T.J. Mercier <tjmercier@google.com>

Oops, thanks for fixing this.

Acked-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

> ---
>  tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c b/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
> index 8e13a3416a21..1de14b111931 100644
> --- a/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
> +++ b/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
> @@ -104,7 +104,7 @@ void test_kmem_cache_iter(void)
>  		goto destroy;
>  
>  	memset(buf, 0, sizeof(buf));
> -	while (read(iter_fd, buf, sizeof(buf) > 0)) {
> +	while (read(iter_fd, buf, sizeof(buf)) > 0) {
>  		/* Read out all contents */
>  		printf("%s", buf);
>  	}
> 
> base-commit: b4432656b36e5cc1d50a1f2dc15357543add530e
> -- 
> 2.49.0.906.g1f30a19c02-goog
>
Re: [PATCH] selftests/bpf: Fix kmem_cache iterator draining
Posted by T.J. Mercier 9 months, 2 weeks ago
On Mon, Apr 28, 2025 at 1:06 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> Hello,
>
> On Mon, Apr 28, 2025 at 06:02:54PM +0000, T.J. Mercier wrote:
> > The closing parentheses around the read syscall is misplaced, causing
> > single byte reads from the iterator instead of buf sized reads. While
> > the end result is the same, many more read calls than necessary are
> > performed.
> >
> > $ tools/testing/selftests/bpf/vmtest.sh  "./test_progs -t kmem_cache_iter"
> > 145/1   kmem_cache_iter/check_task_struct:OK
> > 145/2   kmem_cache_iter/check_slabinfo:OK
> > 145/3   kmem_cache_iter/open_coded_iter:OK
> > 145     kmem_cache_iter:OK
> > Summary: 1/3 PASSED, 0 SKIPPED, 0 FAILED
> >
> > Fixes: a496d0cdc84d ("selftests/bpf: Add a test for kmem_cache_iter")
> > Signed-off-by: T.J. Mercier <tjmercier@google.com>
>
> Oops, thanks for fixing this.
>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
>
> Thanks,
> Namhyung

No worries, thanks! It's been helpful reading through this code.

> > ---
> >  tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c b/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
> > index 8e13a3416a21..1de14b111931 100644
> > --- a/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
> > +++ b/tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c
> > @@ -104,7 +104,7 @@ void test_kmem_cache_iter(void)
> >               goto destroy;
> >
> >       memset(buf, 0, sizeof(buf));
> > -     while (read(iter_fd, buf, sizeof(buf) > 0)) {
> > +     while (read(iter_fd, buf, sizeof(buf)) > 0) {
> >               /* Read out all contents */
> >               printf("%s", buf);
> >       }
> >
> > base-commit: b4432656b36e5cc1d50a1f2dc15357543add530e
> > --
> > 2.49.0.906.g1f30a19c02-goog
> >
Re: [PATCH] selftests/bpf: Fix kmem_cache iterator draining
Posted by Song Liu 9 months, 2 weeks ago
On Mon, Apr 28, 2025 at 11:03 AM T.J. Mercier <tjmercier@google.com> wrote:
>
> The closing parentheses around the read syscall is misplaced, causing
> single byte reads from the iterator instead of buf sized reads. While
> the end result is the same, many more read calls than necessary are
> performed.
>
> $ tools/testing/selftests/bpf/vmtest.sh  "./test_progs -t kmem_cache_iter"
> 145/1   kmem_cache_iter/check_task_struct:OK
> 145/2   kmem_cache_iter/check_slabinfo:OK
> 145/3   kmem_cache_iter/open_coded_iter:OK
> 145     kmem_cache_iter:OK
> Summary: 1/3 PASSED, 0 SKIPPED, 0 FAILED
>
> Fixes: a496d0cdc84d ("selftests/bpf: Add a test for kmem_cache_iter")
> Signed-off-by: T.J. Mercier <tjmercier@google.com>

Acked-by: Song Liu <song@kernel.org>