]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/bpf: Fix dmabuf_iter/lots_of_buffers failure with 64K page
authorYonghong Song <yonghong.song@linux.dev>
Tue, 13 Jan 2026 06:10:23 +0000 (22:10 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 13 Jan 2026 17:32:16 +0000 (09:32 -0800)
On arm64 with 64K page , I observed the following test failure:
  ...
  subtest_dmabuf_iter_check_lots_of_buffers:FAIL:total_bytes_read unexpected total_bytes_read:
      actual 4696 <= expected 65536
  #97/3    dmabuf_iter/lots_of_buffers:FAIL

With 4K page on x86, the total_bytes_read is 4593.
With 64K page on arm64, the total_byte_read is 4696.

In progs/dmabuf_iter.c, for each iteration, the output is
  BPF_SEQ_PRINTF(seq, "%lu\n%llu\n%s\n%s\n", inode, size, name, exporter);

The only difference between 4K and 64K page is 'size' in
the above BPF_SEQ_PRINTF. The 4K page will output '4096' and
the 64K page will output '65536'. So the total_bytes_read with 64K page
is slighter greater than 4K page.

Adjusting the total_bytes_read from 65536 to 4096 fixed the issue.

Cc: T.J. Mercier <tjmercier@google.com>
Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20260113061023.3798085-1-yonghong.song@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/dmabuf_iter.c

index e442be9dde7e1501b00cb2530bb4ff333c29985a..fb2cea710db3e4e484a377330a2c7365c645e7b7 100644 (file)
@@ -233,7 +233,7 @@ static void subtest_dmabuf_iter_check_lots_of_buffers(struct dmabuf_iter *skel)
        while ((bytes_read = read(iter_fd, buf, sizeof(buf))) > 0)
                total_bytes_read += bytes_read;
 
-       ASSERT_GT(total_bytes_read, getpagesize(), "total_bytes_read");
+       ASSERT_GT(total_bytes_read, 4096, "total_bytes_read");
 
        close(iter_fd);
 }