diff options
author | Alexei Starovoitov <ast@kernel.org> | 2018-01-22 20:46:57 -0500 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2018-01-23 12:28:03 -0500 |
commit | 1a97cf1fe50340c5e758d7a74419d8f6e8b49ace (patch) | |
tree | 52f2e7bd300f04190a571c7d3cfd39ea757fac12 | |
parent | 35136920e100b85b15b2cfd1505453ba5b6c757f (diff) |
selftests/bpf: speedup test_maps
test_hashmap_walk takes very long time on debug kernel with kasan on.
Reduce the number of iterations in this test without sacrificing
test coverage.
Also add printfs as progress indicator.
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
-rw-r--r-- | tools/testing/selftests/bpf/test_maps.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tools/testing/selftests/bpf/test_maps.c b/tools/testing/selftests/bpf/test_maps.c index 040356ecc862..f0d2f09898a3 100644 --- a/tools/testing/selftests/bpf/test_maps.c +++ b/tools/testing/selftests/bpf/test_maps.c | |||
@@ -242,7 +242,7 @@ static void test_hashmap_percpu(int task, void *data) | |||
242 | 242 | ||
243 | static void test_hashmap_walk(int task, void *data) | 243 | static void test_hashmap_walk(int task, void *data) |
244 | { | 244 | { |
245 | int fd, i, max_entries = 100000; | 245 | int fd, i, max_entries = 1000; |
246 | long long key, value, next_key; | 246 | long long key, value, next_key; |
247 | bool next_key_valid = true; | 247 | bool next_key_valid = true; |
248 | 248 | ||
@@ -931,8 +931,12 @@ static void test_map_large(void) | |||
931 | close(fd); | 931 | close(fd); |
932 | } | 932 | } |
933 | 933 | ||
934 | static void run_parallel(int tasks, void (*fn)(int task, void *data), | 934 | #define run_parallel(N, FN, DATA) \ |
935 | void *data) | 935 | printf("Fork %d tasks to '" #FN "'\n", N); \ |
936 | __run_parallel(N, FN, DATA) | ||
937 | |||
938 | static void __run_parallel(int tasks, void (*fn)(int task, void *data), | ||
939 | void *data) | ||
936 | { | 940 | { |
937 | pid_t pid[tasks]; | 941 | pid_t pid[tasks]; |
938 | int i; | 942 | int i; |
@@ -972,7 +976,7 @@ static void test_map_stress(void) | |||
972 | #define DO_UPDATE 1 | 976 | #define DO_UPDATE 1 |
973 | #define DO_DELETE 0 | 977 | #define DO_DELETE 0 |
974 | 978 | ||
975 | static void do_work(int fn, void *data) | 979 | static void test_update_delete(int fn, void *data) |
976 | { | 980 | { |
977 | int do_update = ((int *)data)[1]; | 981 | int do_update = ((int *)data)[1]; |
978 | int fd = ((int *)data)[0]; | 982 | int fd = ((int *)data)[0]; |
@@ -1012,7 +1016,7 @@ static void test_map_parallel(void) | |||
1012 | */ | 1016 | */ |
1013 | data[0] = fd; | 1017 | data[0] = fd; |
1014 | data[1] = DO_UPDATE; | 1018 | data[1] = DO_UPDATE; |
1015 | run_parallel(TASKS, do_work, data); | 1019 | run_parallel(TASKS, test_update_delete, data); |
1016 | 1020 | ||
1017 | /* Check that key=0 is already there. */ | 1021 | /* Check that key=0 is already there. */ |
1018 | assert(bpf_map_update_elem(fd, &key, &value, BPF_NOEXIST) == -1 && | 1022 | assert(bpf_map_update_elem(fd, &key, &value, BPF_NOEXIST) == -1 && |
@@ -1035,7 +1039,7 @@ static void test_map_parallel(void) | |||
1035 | 1039 | ||
1036 | /* Now let's delete all elemenets in parallel. */ | 1040 | /* Now let's delete all elemenets in parallel. */ |
1037 | data[1] = DO_DELETE; | 1041 | data[1] = DO_DELETE; |
1038 | run_parallel(TASKS, do_work, data); | 1042 | run_parallel(TASKS, test_update_delete, data); |
1039 | 1043 | ||
1040 | /* Nothing should be left. */ | 1044 | /* Nothing should be left. */ |
1041 | key = -1; | 1045 | key = -1; |