Commit d3f7b166 authored by Yucong Sun's avatar Yucong Sun Committed by Andrii Nakryiko

selfetest/bpf: Make some tests serial

Change tests that often fails in parallel execution mode to serial.
Signed-off-by: default avatarYucong Sun <sunyucong@gmail.com>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211006185619.364369-15-fallentree@fb.com
parent 5db02dd7
...@@ -179,7 +179,7 @@ static void do_bpf_iter_setsockopt(struct bpf_iter_setsockopt *iter_skel, ...@@ -179,7 +179,7 @@ static void do_bpf_iter_setsockopt(struct bpf_iter_setsockopt *iter_skel,
free_fds(est_fds, nr_est); free_fds(est_fds, nr_est);
} }
void test_bpf_iter_setsockopt(void) void serial_test_bpf_iter_setsockopt(void)
{ {
struct bpf_iter_setsockopt *iter_skel = NULL; struct bpf_iter_setsockopt *iter_skel = NULL;
struct bpf_cubic *cubic_skel = NULL; struct bpf_cubic *cubic_skel = NULL;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#define nr_iters 2 #define nr_iters 2
void test_bpf_obj_id(void) void serial_test_bpf_obj_id(void)
{ {
const __u64 array_magic_value = 0xfaceb00c; const __u64 array_magic_value = 0xfaceb00c;
const __u32 array_key = 0; const __u32 array_key = 0;
......
...@@ -363,7 +363,7 @@ static void test_shared(int parent_cgroup_fd, int child_cgroup_fd) ...@@ -363,7 +363,7 @@ static void test_shared(int parent_cgroup_fd, int child_cgroup_fd)
cg_storage_multi_shared__destroy(obj); cg_storage_multi_shared__destroy(obj);
} }
void test_cg_storage_multi(void) void serial_test_cg_storage_multi(void)
{ {
int parent_cgroup_fd = -1, child_cgroup_fd = -1; int parent_cgroup_fd = -1, child_cgroup_fd = -1;
......
...@@ -21,7 +21,7 @@ static int prog_load(void) ...@@ -21,7 +21,7 @@ static int prog_load(void)
bpf_log_buf, BPF_LOG_BUF_SIZE); bpf_log_buf, BPF_LOG_BUF_SIZE);
} }
void test_cgroup_attach_autodetach(void) void serial_test_cgroup_attach_autodetach(void)
{ {
__u32 duration = 0, prog_cnt = 4, attach_flags; __u32 duration = 0, prog_cnt = 4, attach_flags;
int allow_prog[2] = {-1}; int allow_prog[2] = {-1};
......
...@@ -74,7 +74,7 @@ static int prog_load_cnt(int verdict, int val) ...@@ -74,7 +74,7 @@ static int prog_load_cnt(int verdict, int val)
return ret; return ret;
} }
void test_cgroup_attach_multi(void) void serial_test_cgroup_attach_multi(void)
{ {
__u32 prog_ids[4], prog_cnt = 0, attach_flags, saved_prog_id; __u32 prog_ids[4], prog_cnt = 0, attach_flags, saved_prog_id;
int cg1 = 0, cg2 = 0, cg3 = 0, cg4 = 0, cg5 = 0, key = 0; int cg1 = 0, cg2 = 0, cg3 = 0, cg4 = 0, cg5 = 0, key = 0;
......
...@@ -23,7 +23,7 @@ static int prog_load(int verdict) ...@@ -23,7 +23,7 @@ static int prog_load(int verdict)
bpf_log_buf, BPF_LOG_BUF_SIZE); bpf_log_buf, BPF_LOG_BUF_SIZE);
} }
void test_cgroup_attach_override(void) void serial_test_cgroup_attach_override(void)
{ {
int drop_prog = -1, allow_prog = -1, foo = -1, bar = -1; int drop_prog = -1, allow_prog = -1, foo = -1, bar = -1;
__u32 duration = 0; __u32 duration = 0;
......
...@@ -24,7 +24,7 @@ int ping_and_check(int exp_calls, int exp_alt_calls) ...@@ -24,7 +24,7 @@ int ping_and_check(int exp_calls, int exp_alt_calls)
return 0; return 0;
} }
void test_cgroup_link(void) void serial_test_cgroup_link(void)
{ {
struct { struct {
const char *path; const char *path;
......
...@@ -195,7 +195,7 @@ static void test_check_mtu_tc(__u32 mtu, __u32 ifindex) ...@@ -195,7 +195,7 @@ static void test_check_mtu_tc(__u32 mtu, __u32 ifindex)
test_check_mtu__destroy(skel); test_check_mtu__destroy(skel);
} }
void test_check_mtu(void) void serial_test_check_mtu(void)
{ {
__u32 mtu_lo; __u32 mtu_lo;
......
...@@ -380,7 +380,8 @@ static void test_func_map_prog_compatibility(void) ...@@ -380,7 +380,8 @@ static void test_func_map_prog_compatibility(void)
"./test_attach_probe.o"); "./test_attach_probe.o");
} }
void test_fexit_bpf2bpf(void) /* NOTE: affect other tests, must run in serial mode */
void serial_test_fexit_bpf2bpf(void)
{ {
if (test__start_subtest("target_no_callees")) if (test__start_subtest("target_no_callees"))
test_target_no_callees(); test_target_no_callees();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#include <test_progs.h> #include <test_progs.h>
#include <network_helpers.h> #include <network_helpers.h>
void test_flow_dissector_load_bytes(void) void serial_test_flow_dissector_load_bytes(void)
{ {
struct bpf_flow_keys flow_keys; struct bpf_flow_keys flow_keys;
__u32 duration = 0, retval, size; __u32 duration = 0, retval, size;
......
...@@ -628,7 +628,7 @@ static void run_tests(int netns) ...@@ -628,7 +628,7 @@ static void run_tests(int netns)
} }
} }
void test_flow_dissector_reattach(void) void serial_test_flow_dissector_reattach(void)
{ {
int err, new_net, saved_net; int err, new_net, saved_net;
......
...@@ -73,7 +73,7 @@ static void close_perf_events(void) ...@@ -73,7 +73,7 @@ static void close_perf_events(void)
free(pfd_array); free(pfd_array);
} }
void test_get_branch_snapshot(void) void serial_test_get_branch_snapshot(void)
{ {
struct get_branch_snapshot *skel = NULL; struct get_branch_snapshot *skel = NULL;
int err; int err;
......
...@@ -48,7 +48,8 @@ static void on_sample(void *ctx, int cpu, void *data, __u32 size) ...@@ -48,7 +48,8 @@ static void on_sample(void *ctx, int cpu, void *data, __u32 size)
*(bool *)ctx = true; *(bool *)ctx = true;
} }
void test_kfree_skb(void) /* TODO: fix kernel panic caused by this test in parallel mode */
void serial_test_kfree_skb(void)
{ {
struct __sk_buff skb = {}; struct __sk_buff skb = {};
struct bpf_prog_test_run_attr tattr = { struct bpf_prog_test_run_attr tattr = {
......
...@@ -541,7 +541,7 @@ static void run_test(struct migrate_reuseport_test_case *test_case, ...@@ -541,7 +541,7 @@ static void run_test(struct migrate_reuseport_test_case *test_case,
} }
} }
void test_migrate_reuseport(void) void serial_test_migrate_reuseport(void)
{ {
struct test_migrate_reuseport *skel; struct test_migrate_reuseport *skel;
int i; int i;
......
...@@ -53,7 +53,8 @@ static void run_test(__u32 input_retval, __u16 want_side_effect, __s16 want_ret) ...@@ -53,7 +53,8 @@ static void run_test(__u32 input_retval, __u16 want_side_effect, __s16 want_ret)
modify_return__destroy(skel); modify_return__destroy(skel);
} }
void test_modify_return(void) /* TODO: conflict with get_func_ip_test */
void serial_test_modify_return(void)
{ {
run_test(0 /* input_retval */, run_test(0 /* input_retval */,
1 /* want_side_effect */, 1 /* want_side_effect */,
......
...@@ -78,7 +78,8 @@ static void test_ns_current_pid_tgid_new_ns(void) ...@@ -78,7 +78,8 @@ static void test_ns_current_pid_tgid_new_ns(void)
return; return;
} }
void test_ns_current_pid_tgid(void) /* TODO: use a different tracepoint */
void serial_test_ns_current_pid_tgid(void)
{ {
if (test__start_subtest("ns_current_pid_tgid_root_ns")) if (test__start_subtest("ns_current_pid_tgid_root_ns"))
test_current_pid_tgid(NULL); test_current_pid_tgid(NULL);
......
...@@ -43,7 +43,7 @@ int trigger_on_cpu(int cpu) ...@@ -43,7 +43,7 @@ int trigger_on_cpu(int cpu)
return 0; return 0;
} }
void test_perf_buffer(void) void serial_test_perf_buffer(void)
{ {
int err, on_len, nr_on_cpus = 0, nr_cpus, i; int err, on_len, nr_on_cpus = 0, nr_cpus, i;
struct perf_buffer_opts pb_opts = {}; struct perf_buffer_opts pb_opts = {};
......
...@@ -23,7 +23,8 @@ static void burn_cpu(void) ...@@ -23,7 +23,8 @@ static void burn_cpu(void)
++j; ++j;
} }
void test_perf_link(void) /* TODO: often fails in concurrent mode */
void serial_test_perf_link(void)
{ {
struct test_perf_link *skel = NULL; struct test_perf_link *skel = NULL;
struct perf_event_attr attr; struct perf_event_attr attr;
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <test_progs.h> #include <test_progs.h>
void test_probe_user(void) /* TODO: corrupts other tests uses connect() */
void serial_test_probe_user(void)
{ {
const char *prog_name = "handle_sys_connect"; const char *prog_name = "handle_sys_connect";
const char *obj_file = "./test_probe_user.o"; const char *obj_file = "./test_probe_user.o";
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
#include <test_progs.h> #include <test_progs.h>
#include <linux/nbd.h> #include <linux/nbd.h>
void test_raw_tp_writable_test_run(void) /* NOTE: conflict with other tests. */
void serial_test_raw_tp_writable_test_run(void)
{ {
__u32 duration = 0; __u32 duration = 0;
char error[4096]; char error[4096];
......
...@@ -858,7 +858,7 @@ void test_map_type(enum bpf_map_type mt) ...@@ -858,7 +858,7 @@ void test_map_type(enum bpf_map_type mt)
cleanup(); cleanup();
} }
void test_select_reuseport(void) void serial_test_select_reuseport(void)
{ {
saved_tcp_fo = read_int_sysctl(TCP_FO_SYSCTL); saved_tcp_fo = read_int_sysctl(TCP_FO_SYSCTL);
if (saved_tcp_fo < 0) if (saved_tcp_fo < 0)
......
...@@ -25,7 +25,8 @@ static void *worker(void *p) ...@@ -25,7 +25,8 @@ static void *worker(void *p)
return NULL; return NULL;
} }
void test_send_signal_sched_switch(void) /* NOTE: cause events loss */
void serial_test_send_signal_sched_switch(void)
{ {
struct test_send_signal_kern *skel; struct test_send_signal_kern *skel;
pthread_t threads[THREAD_COUNT]; pthread_t threads[THREAD_COUNT];
......
...@@ -105,7 +105,7 @@ static void do_test(void) ...@@ -105,7 +105,7 @@ static void do_test(void)
close(listen_fd); close(listen_fd);
} }
void test_sk_storage_tracing(void) void serial_test_sk_storage_tracing(void)
{ {
struct test_sk_storage_trace_itself *skel_itself; struct test_sk_storage_trace_itself *skel_itself;
int err; int err;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
/* Demonstrate that bpf_snprintf_btf succeeds and that various data types /* Demonstrate that bpf_snprintf_btf succeeds and that various data types
* are formatted correctly. * are formatted correctly.
*/ */
void test_snprintf_btf(void) void serial_test_snprintf_btf(void)
{ {
struct netif_receive_skb *skel; struct netif_receive_skb *skel;
struct netif_receive_skb__bss *bss; struct netif_receive_skb__bss *bss;
......
...@@ -329,7 +329,7 @@ static void test(void) ...@@ -329,7 +329,7 @@ static void test(void)
close(listen_fd); close(listen_fd);
} }
void test_sock_fields(void) void serial_test_sock_fields(void)
{ {
struct bpf_link *egress_link = NULL, *ingress_link = NULL; struct bpf_link *egress_link = NULL, *ingress_link = NULL;
int parent_cg_fd = -1, child_cg_fd = -1; int parent_cg_fd = -1, child_cg_fd = -1;
......
...@@ -2037,7 +2037,7 @@ static void run_tests(struct test_sockmap_listen *skel, struct bpf_map *map, ...@@ -2037,7 +2037,7 @@ static void run_tests(struct test_sockmap_listen *skel, struct bpf_map *map,
test_udp_unix_redir(skel, map, family); test_udp_unix_redir(skel, map, family);
} }
void test_sockmap_listen(void) void serial_test_sockmap_listen(void)
{ {
struct test_sockmap_listen *skel; struct test_sockmap_listen *skel;
......
...@@ -39,7 +39,8 @@ static int timer(struct timer *timer_skel) ...@@ -39,7 +39,8 @@ static int timer(struct timer *timer_skel)
return 0; return 0;
} }
void test_timer(void) /* TODO: use pid filtering */
void serial_test_timer(void)
{ {
struct timer *timer_skel = NULL; struct timer *timer_skel = NULL;
int err; int err;
......
...@@ -52,7 +52,7 @@ static int timer_mim(struct timer_mim *timer_skel) ...@@ -52,7 +52,7 @@ static int timer_mim(struct timer_mim *timer_skel)
return 0; return 0;
} }
void test_timer_mim(void) void serial_test_timer_mim(void)
{ {
struct timer_mim_reject *timer_reject_skel = NULL; struct timer_mim_reject *timer_reject_skel = NULL;
libbpf_print_fn_t old_print_fn = NULL; libbpf_print_fn_t old_print_fn = NULL;
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <test_progs.h> #include <test_progs.h>
void test_tp_attach_query(void) void serial_test_tp_attach_query(void)
{ {
const int num_progs = 3; const int num_progs = 3;
int i, j, bytes, efd, err, prog_fd[num_progs], pmu_fd[num_progs]; int i, j, bytes, efd, err, prog_fd[num_progs], pmu_fd[num_progs];
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#define TRACEBUF "/sys/kernel/debug/tracing/trace_pipe" #define TRACEBUF "/sys/kernel/debug/tracing/trace_pipe"
#define SEARCHMSG "testing,testing" #define SEARCHMSG "testing,testing"
void test_trace_printk(void) void serial_test_trace_printk(void)
{ {
int err = 0, iter = 0, found = 0; int err = 0, iter = 0, found = 0;
struct trace_printk__bss *bss; struct trace_printk__bss *bss;
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#define TRACEBUF "/sys/kernel/debug/tracing/trace_pipe" #define TRACEBUF "/sys/kernel/debug/tracing/trace_pipe"
#define SEARCHMSG "1,2,3,4,5,6,7,8,9,10" #define SEARCHMSG "1,2,3,4,5,6,7,8,9,10"
void test_trace_vprintk(void) void serial_test_trace_vprintk(void)
{ {
int err = 0, iter = 0, found = 0; int err = 0, iter = 0, found = 0;
struct trace_vprintk__bss *bss; struct trace_vprintk__bss *bss;
......
...@@ -41,7 +41,8 @@ static struct bpf_link *load(struct bpf_object *obj, const char *name) ...@@ -41,7 +41,8 @@ static struct bpf_link *load(struct bpf_object *obj, const char *name)
return bpf_program__attach_trace(prog); return bpf_program__attach_trace(prog);
} }
void test_trampoline_count(void) /* TODO: use different target function to run in concurrent mode */
void serial_test_trampoline_count(void)
{ {
const char *fentry_name = "fentry/__set_task_comm"; const char *fentry_name = "fentry/__set_task_comm";
const char *fexit_name = "fexit/__set_task_comm"; const char *fexit_name = "fexit/__set_task_comm";
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#define IFINDEX_LO 1 #define IFINDEX_LO 1
#define XDP_FLAGS_REPLACE (1U << 4) #define XDP_FLAGS_REPLACE (1U << 4)
void test_xdp_attach(void) void serial_test_xdp_attach(void)
{ {
__u32 duration = 0, id1, id2, id0 = 0, len; __u32 duration = 0, id1, id2, id0 = 0, len;
struct bpf_object *obj1, *obj2, *obj3; struct bpf_object *obj1, *obj2, *obj3;
......
...@@ -519,7 +519,7 @@ static struct bond_test_case bond_test_cases[] = { ...@@ -519,7 +519,7 @@ static struct bond_test_case bond_test_cases[] = {
{ "xdp_bonding_xor_layer34", BOND_MODE_XOR, BOND_XMIT_POLICY_LAYER34, }, { "xdp_bonding_xor_layer34", BOND_MODE_XOR, BOND_XMIT_POLICY_LAYER34, },
}; };
void test_xdp_bonding(void) void serial_test_xdp_bonding(void)
{ {
libbpf_print_fn_t old_print_fn; libbpf_print_fn_t old_print_fn;
struct skeletons skeletons = {}; struct skeletons skeletons = {};
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#define IFINDEX_LO 1 #define IFINDEX_LO 1
void test_xdp_cpumap_attach(void) void serial_test_xdp_cpumap_attach(void)
{ {
struct test_xdp_with_cpumap_helpers *skel; struct test_xdp_with_cpumap_helpers *skel;
struct bpf_prog_info info = {}; struct bpf_prog_info info = {};
......
...@@ -72,7 +72,7 @@ void test_neg_xdp_devmap_helpers(void) ...@@ -72,7 +72,7 @@ void test_neg_xdp_devmap_helpers(void)
} }
void test_xdp_devmap_attach(void) void serial_test_xdp_devmap_attach(void)
{ {
if (test__start_subtest("DEVMAP with programs in entries")) if (test__start_subtest("DEVMAP with programs in entries"))
test_xdp_with_devmap_helpers(); test_xdp_with_devmap_helpers();
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#define IFINDEX_LO 1 #define IFINDEX_LO 1
void test_xdp_info(void) void serial_test_xdp_info(void)
{ {
__u32 len = sizeof(struct bpf_prog_info), duration = 0, prog_id; __u32 len = sizeof(struct bpf_prog_info), duration = 0, prog_id;
const char *file = "./xdp_dummy.o"; const char *file = "./xdp_dummy.o";
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#define IFINDEX_LO 1 #define IFINDEX_LO 1
void test_xdp_link(void) void serial_test_xdp_link(void)
{ {
__u32 duration = 0, id1, id2, id0 = 0, prog_fd1, prog_fd2, err; __u32 duration = 0, id1, id2, id0 = 0, prog_fd1, prog_fd2, err;
DECLARE_LIBBPF_OPTS(bpf_xdp_set_link_opts, opts, .old_fd = -1); DECLARE_LIBBPF_OPTS(bpf_xdp_set_link_opts, opts, .old_fd = -1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment