selftests/bpf: Fix test_ksyms on non-SMP kernels
authorIlya Leoshkevich <iii@linux.ibm.com>
Thu, 10 Sep 2020 17:13:36 +0000 (19:13 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 11 Sep 2020 02:53:58 +0000 (19:53 -0700)
On non-SMP kernels __per_cpu_start is not 0, so look it up in kallsyms.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/20200910171336.3161995-1-iii@linux.ibm.com
tools/testing/selftests/bpf/prog_tests/ksyms.c

index e3d6777..b771804 100644 (file)
@@ -32,6 +32,7 @@ out:
 
 void test_ksyms(void)
 {
+       __u64 per_cpu_start_addr = kallsyms_find("__per_cpu_start");
        __u64 link_fops_addr = kallsyms_find("bpf_link_fops");
        const char *btf_path = "/sys/kernel/btf/vmlinux";
        struct test_ksyms *skel;
@@ -63,8 +64,9 @@ void test_ksyms(void)
              "got %llu, exp %llu\n", data->out__bpf_link_fops1, (__u64)0);
        CHECK(data->out__btf_size != btf_size, "btf_size",
              "got %llu, exp %llu\n", data->out__btf_size, btf_size);
-       CHECK(data->out__per_cpu_start != 0, "__per_cpu_start",
-             "got %llu, exp %llu\n", data->out__per_cpu_start, (__u64)0);
+       CHECK(data->out__per_cpu_start != per_cpu_start_addr, "__per_cpu_start",
+             "got %llu, exp %llu\n", data->out__per_cpu_start,
+             per_cpu_start_addr);
 
 cleanup:
        test_ksyms__destroy(skel);