selftests/bpf: Fix overflow tests to reflect iter size increase
authorAlan Maguire <alan.maguire@oracle.com>
Mon, 28 Sep 2020 11:31:08 +0000 (12:31 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 29 Sep 2020 01:26:58 +0000 (18:26 -0700)
bpf iter size increase to PAGE_SIZE << 3 means overflow tests assuming
page size need to be bumped also.

Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/1601292670-1616-7-git-send-email-alan.maguire@oracle.com
tools/testing/selftests/bpf/prog_tests/bpf_iter.c

index fe1a83b..ad9de13 100644 (file)
@@ -352,7 +352,7 @@ static void test_overflow(bool test_e2big_overflow, bool ret1)
        struct bpf_map_info map_info = {};
        struct bpf_iter_test_kern4 *skel;
        struct bpf_link *link;
-       __u32 page_size;
+       __u32 iter_size;
        char *buf;
 
        skel = bpf_iter_test_kern4__open();
@@ -374,19 +374,19 @@ static void test_overflow(bool test_e2big_overflow, bool ret1)
                  "map_creation failed: %s\n", strerror(errno)))
                goto free_map1;
 
-       /* bpf_seq_printf kernel buffer is one page, so one map
+       /* bpf_seq_printf kernel buffer is 8 pages, so one map
         * bpf_seq_write will mostly fill it, and the other map
         * will partially fill and then trigger overflow and need
         * bpf_seq_read restart.
         */
-       page_size = sysconf(_SC_PAGE_SIZE);
+       iter_size = sysconf(_SC_PAGE_SIZE) << 3;
 
        if (test_e2big_overflow) {
-               skel->rodata->print_len = (page_size + 8) / 8;
-               expected_read_len = 2 * (page_size + 8);
+               skel->rodata->print_len = (iter_size + 8) / 8;
+               expected_read_len = 2 * (iter_size + 8);
        } else if (!ret1) {
-               skel->rodata->print_len = (page_size - 8) / 8;
-               expected_read_len = 2 * (page_size - 8);
+               skel->rodata->print_len = (iter_size - 8) / 8;
+               expected_read_len = 2 * (iter_size - 8);
        } else {
                skel->rodata->print_len = 1;
                expected_read_len = 2 * 8;