* [PATCH bpf-next v2 1/4] selftests: bpf: add "alu32" to .gitignore
2019-02-11 12:01 [PATCH bpf-next v2 0/4] selftests: bpf: improve bpf object file rules Jiong Wang
@ 2019-02-11 12:01 ` Jiong Wang
2019-02-11 12:01 ` [PATCH bpf-next v2 2/4] selftests: bpf: extend sub-register mode compilation to all bpf object files Jiong Wang
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Jiong Wang @ 2019-02-11 12:01 UTC (permalink / raw)
To: alexei.starovoitov, daniel; +Cc: netdev, oss-drivers, Jiong Wang
"alu32" is a build dir and contains various files for BPF sub-register
code-gen testing.
This patch tells git to ignore it.
Suggested-by: Yonghong Song <yhs@fb.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
---
tools/testing/selftests/bpf/.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore
index dd093bd..e47168d 100644
--- a/tools/testing/selftests/bpf/.gitignore
+++ b/tools/testing/selftests/bpf/.gitignore
@@ -29,3 +29,4 @@ test_netcnt
test_section_names
test_tcpnotify_user
test_libbpf
+alu32
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH bpf-next v2 2/4] selftests: bpf: extend sub-register mode compilation to all bpf object files
2019-02-11 12:01 [PATCH bpf-next v2 0/4] selftests: bpf: improve bpf object file rules Jiong Wang
2019-02-11 12:01 ` [PATCH bpf-next v2 1/4] selftests: bpf: add "alu32" to .gitignore Jiong Wang
@ 2019-02-11 12:01 ` Jiong Wang
2019-02-11 12:01 ` [PATCH bpf-next v2 3/4] selftests: bpf: centre kernel bpf objects under new subdir "progs" Jiong Wang
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Jiong Wang @ 2019-02-11 12:01 UTC (permalink / raw)
To: alexei.starovoitov, daniel; +Cc: netdev, oss-drivers, Jiong Wang
At the moment, we only do extra sub-register mode compilation on bpf object
files used by "test_progs". These object files are really loaded and
executed.
This patch further extends sub-register mode compilation to all bpf object
files, even those without corresponding runtime tests. Because this could
help testing LLVM sub-register code-gen, kernel bpf selftest has much more
C testcases with reasonable size and complexity compared with LLVM
testsuite which only contains unit tests.
There were some file duplication inside BPF_OBJ_FILES_DUAL_COMPILE which
is removed now.
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
---
tools/testing/selftests/bpf/Makefile | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index c7e1e32..f2c1147 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -36,20 +36,14 @@ BPF_OBJ_FILES = \
get_cgroup_id_kern.o socket_cookie_prog.o test_select_reuseport_kern.o \
test_skb_cgroup_id_kern.o bpf_flow.o netcnt_prog.o test_xdp_vlan.o \
xdp_dummy.o test_map_in_map.o test_spin_lock.o test_map_lock.o \
- test_sock_fields_kern.o
-
-# Objects are built with default compilation flags and with sub-register
-# code-gen enabled.
-BPF_OBJ_FILES_DUAL_COMPILE = \
- test_pkt_access.o test_pkt_access.o test_xdp.o test_adjust_tail.o \
- test_l4lb.o test_l4lb_noinline.o test_xdp_noinline.o test_tcp_estats.o \
+ test_pkt_access.o test_xdp.o test_adjust_tail.o test_l4lb.o \
+ test_l4lb_noinline.o test_xdp_noinline.o test_tcp_estats.o \
test_obj_id.o test_pkt_md_access.o test_tracepoint.o \
- test_stacktrace_map.o test_stacktrace_map.o test_stacktrace_build_id.o \
- test_stacktrace_build_id.o test_get_stack_rawtp.o \
- test_get_stack_rawtp.o test_tracepoint.o test_sk_lookup_kern.o \
- test_queue_map.o test_stack_map.o
+ test_stacktrace_map.o test_stacktrace_build_id.o \
+ test_get_stack_rawtp.o test_sk_lookup_kern.o test_queue_map.o \
+ test_stack_map.o test_sock_fields_kern.o
-TEST_GEN_FILES = $(BPF_OBJ_FILES) $(BPF_OBJ_FILES_DUAL_COMPILE)
+TEST_GEN_FILES = $(BPF_OBJ_FILES)
# Also test sub-register code-gen if LLVM + kernel both has eBPF v3 processor
# support which is the first version to contain both ALU32 and JMP32
@@ -59,7 +53,7 @@ SUBREG_CODEGEN := $(shell echo "int cal(int a) { return a > 0; }" | \
$(LLC) -mattr=+alu32 -mcpu=probe 2>&1 | \
grep 'if w')
ifneq ($(SUBREG_CODEGEN),)
-TEST_GEN_FILES += $(patsubst %.o,alu32/%.o, $(BPF_OBJ_FILES_DUAL_COMPILE))
+TEST_GEN_FILES += $(patsubst %.o,alu32/%.o, $(BPF_OBJ_FILES))
endif
# Order correspond to 'make run_tests' order
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH bpf-next v2 3/4] selftests: bpf: centre kernel bpf objects under new subdir "progs"
2019-02-11 12:01 [PATCH bpf-next v2 0/4] selftests: bpf: improve bpf object file rules Jiong Wang
2019-02-11 12:01 ` [PATCH bpf-next v2 1/4] selftests: bpf: add "alu32" to .gitignore Jiong Wang
2019-02-11 12:01 ` [PATCH bpf-next v2 2/4] selftests: bpf: extend sub-register mode compilation to all bpf object files Jiong Wang
@ 2019-02-11 12:01 ` Jiong Wang
2019-02-11 12:01 ` [PATCH bpf-next v2 4/4] selftests: bpf: relax sub-register mode compilation criteria Jiong Wang
2019-02-12 4:34 ` [PATCH bpf-next v2 0/4] selftests: bpf: improve bpf object file rules Alexei Starovoitov
4 siblings, 0 replies; 6+ messages in thread
From: Jiong Wang @ 2019-02-11 12:01 UTC (permalink / raw)
To: alexei.starovoitov, daniel; +Cc: netdev, oss-drivers, Jiong Wang
At the moment, all kernel bpf objects are listed under BPF_OBJ_FILES.
Listing them manually sometimes causing patch conflict when people are
adding new testcases simultaneously.
It is better to centre all the related source files under a subdir
"progs", then auto-generate the object file list.
Suggested-by: Alexei Starovoitov <ast@kernel.org>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
---
tools/testing/selftests/bpf/Makefile | 26 +++++-----------------
tools/testing/selftests/bpf/{ => progs}/bpf_flow.c | 0
.../selftests/bpf/{ => progs}/connect4_prog.c | 0
.../selftests/bpf/{ => progs}/connect6_prog.c | 0
.../testing/selftests/bpf/{ => progs}/dev_cgroup.c | 0
.../selftests/bpf/{ => progs}/get_cgroup_id_kern.c | 0
.../selftests/bpf/{ => progs}/netcnt_prog.c | 0
.../selftests/bpf/{ => progs}/sample_map_ret0.c | 0
.../selftests/bpf/{ => progs}/sample_ret0.c | 0
.../selftests/bpf/{ => progs}/sendmsg4_prog.c | 0
.../selftests/bpf/{ => progs}/sendmsg6_prog.c | 0
.../selftests/bpf/{ => progs}/socket_cookie_prog.c | 0
.../selftests/bpf/{ => progs}/sockmap_parse_prog.c | 0
.../bpf/{ => progs}/sockmap_tcp_msg_prog.c | 0
.../bpf/{ => progs}/sockmap_verdict_prog.c | 0
.../selftests/bpf/{ => progs}/test_adjust_tail.c | 0
.../selftests/bpf/{ => progs}/test_btf_haskv.c | 0
.../selftests/bpf/{ => progs}/test_btf_nokv.c | 0
.../bpf/{ => progs}/test_get_stack_rawtp.c | 0
.../testing/selftests/bpf/{ => progs}/test_l4lb.c | 0
.../selftests/bpf/{ => progs}/test_l4lb_noinline.c | 0
.../bpf/{ => progs}/test_lirc_mode2_kern.c | 0
.../selftests/bpf/{ => progs}/test_lwt_seg6local.c | 0
.../selftests/bpf/{ => progs}/test_map_in_map.c | 0
.../selftests/bpf/{ => progs}/test_map_lock.c | 0
.../selftests/bpf/{ => progs}/test_obj_id.c | 0
.../selftests/bpf/{ => progs}/test_pkt_access.c | 0
.../selftests/bpf/{ => progs}/test_pkt_md_access.c | 0
.../selftests/bpf/{ => progs}/test_queue_map.c | 0
.../bpf/{ => progs}/test_select_reuseport_kern.c | 0
.../bpf/{ => progs}/test_sk_lookup_kern.c | 0
.../bpf/{ => progs}/test_skb_cgroup_id_kern.c | 0
.../bpf/{ => progs}/test_sock_fields_kern.c | 0
.../selftests/bpf/{ => progs}/test_sockhash_kern.c | 0
.../selftests/bpf/{ => progs}/test_sockmap_kern.c | 0
.../selftests/bpf/{ => progs}/test_spin_lock.c | 0
.../selftests/bpf/{ => progs}/test_stack_map.c | 0
.../bpf/{ => progs}/test_stacktrace_build_id.c | 0
.../bpf/{ => progs}/test_stacktrace_map.c | 0
.../selftests/bpf/{ => progs}/test_tcp_estats.c | 0
.../selftests/bpf/{ => progs}/test_tcpbpf_kern.c | 0
.../bpf/{ => progs}/test_tcpnotify_kern.c | 0
.../selftests/bpf/{ => progs}/test_tracepoint.c | 0
.../selftests/bpf/{ => progs}/test_tunnel_kern.c | 0
tools/testing/selftests/bpf/{ => progs}/test_xdp.c | 0
.../selftests/bpf/{ => progs}/test_xdp_meta.c | 0
.../selftests/bpf/{ => progs}/test_xdp_noinline.c | 0
.../selftests/bpf/{ => progs}/test_xdp_redirect.c | 0
.../selftests/bpf/{ => progs}/test_xdp_vlan.c | 0
.../testing/selftests/bpf/{ => progs}/xdp_dummy.c | 0
50 files changed, 5 insertions(+), 21 deletions(-)
rename tools/testing/selftests/bpf/{ => progs}/bpf_flow.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/connect4_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/connect6_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/dev_cgroup.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/get_cgroup_id_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/netcnt_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/sample_map_ret0.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/sample_ret0.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/sendmsg4_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/sendmsg6_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/socket_cookie_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/sockmap_parse_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/sockmap_tcp_msg_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/sockmap_verdict_prog.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_adjust_tail.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_btf_haskv.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_btf_nokv.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_get_stack_rawtp.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_l4lb.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_l4lb_noinline.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_lirc_mode2_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_lwt_seg6local.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_map_in_map.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_map_lock.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_obj_id.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_pkt_access.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_pkt_md_access.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_queue_map.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_select_reuseport_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_sk_lookup_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_skb_cgroup_id_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_sock_fields_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_sockhash_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_sockmap_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_spin_lock.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_stack_map.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_stacktrace_build_id.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_stacktrace_map.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_tcp_estats.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_tcpbpf_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_tcpnotify_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_tracepoint.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_tunnel_kern.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_xdp.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_xdp_meta.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_xdp_noinline.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_xdp_redirect.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/test_xdp_vlan.c (100%)
rename tools/testing/selftests/bpf/{ => progs}/xdp_dummy.c (100%)
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index f2c1147..575746e 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -25,24 +25,7 @@ TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test
test_socket_cookie test_cgroup_storage test_select_reuseport test_section_names \
test_netcnt test_tcpnotify_user test_sock_fields
-BPF_OBJ_FILES = \
- test_xdp_redirect.o test_xdp_meta.o sockmap_parse_prog.o \
- sockmap_verdict_prog.o dev_cgroup.o sample_ret0.o \
- test_tcpnotify_kern.o sample_map_ret0.o test_tcpbpf_kern.o \
- sockmap_tcp_msg_prog.o connect4_prog.o connect6_prog.o \
- test_btf_haskv.o test_btf_nokv.o test_sockmap_kern.o \
- test_tunnel_kern.o test_sockhash_kern.o test_lwt_seg6local.o \
- sendmsg4_prog.o sendmsg6_prog.o test_lirc_mode2_kern.o \
- get_cgroup_id_kern.o socket_cookie_prog.o test_select_reuseport_kern.o \
- test_skb_cgroup_id_kern.o bpf_flow.o netcnt_prog.o test_xdp_vlan.o \
- xdp_dummy.o test_map_in_map.o test_spin_lock.o test_map_lock.o \
- test_pkt_access.o test_xdp.o test_adjust_tail.o test_l4lb.o \
- test_l4lb_noinline.o test_xdp_noinline.o test_tcp_estats.o \
- test_obj_id.o test_pkt_md_access.o test_tracepoint.o \
- test_stacktrace_map.o test_stacktrace_build_id.o \
- test_get_stack_rawtp.o test_sk_lookup_kern.o test_queue_map.o \
- test_stack_map.o test_sock_fields_kern.o
-
+BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard progs/*.c)))
TEST_GEN_FILES = $(BPF_OBJ_FILES)
# Also test sub-register code-gen if LLVM + kernel both has eBPF v3 processor
@@ -184,7 +167,8 @@ $(ALU32_BUILD_DIR)/test_progs_32: test_progs.c $(ALU32_BUILD_DIR) \
$(CC) $(CFLAGS) -o $(ALU32_BUILD_DIR)/test_progs_32 $< \
trace_helpers.c $(OUTPUT)/libbpf.a $(LDLIBS)
-$(ALU32_BUILD_DIR)/%.o: %.c $(ALU32_BUILD_DIR) $(ALU32_BUILD_DIR)/test_progs_32
+$(ALU32_BUILD_DIR)/%.o: progs/%.c $(ALU32_BUILD_DIR) \
+ $(ALU32_BUILD_DIR)/test_progs_32
$(CLANG) $(CLANG_FLAGS) \
-O2 -target bpf -emit-llvm -c $< -o - | \
$(LLC) -march=bpf -mattr=+alu32 -mcpu=$(CPU) $(LLC_FLAGS) \
@@ -196,7 +180,7 @@ endif
# Have one program compiled without "-target bpf" to test whether libbpf loads
# it successfully
-$(OUTPUT)/test_xdp.o: test_xdp.c
+$(OUTPUT)/test_xdp.o: progs/test_xdp.c
$(CLANG) $(CLANG_FLAGS) \
-O2 -emit-llvm -c $< -o - | \
$(LLC) -march=bpf -mcpu=$(CPU) $(LLC_FLAGS) -filetype=obj -o $@
@@ -204,7 +188,7 @@ ifeq ($(DWARF2BTF),y)
$(BTF_PAHOLE) -J $@
endif
-$(OUTPUT)/%.o: %.c
+$(OUTPUT)/%.o: progs/%.c
$(CLANG) $(CLANG_FLAGS) \
-O2 -target bpf -emit-llvm -c $< -o - | \
$(LLC) -march=bpf -mcpu=$(CPU) $(LLC_FLAGS) -filetype=obj -o $@
diff --git a/tools/testing/selftests/bpf/bpf_flow.c b/tools/testing/selftests/bpf/progs/bpf_flow.c
similarity index 100%
rename from tools/testing/selftests/bpf/bpf_flow.c
rename to tools/testing/selftests/bpf/progs/bpf_flow.c
diff --git a/tools/testing/selftests/bpf/connect4_prog.c b/tools/testing/selftests/bpf/progs/connect4_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/connect4_prog.c
rename to tools/testing/selftests/bpf/progs/connect4_prog.c
diff --git a/tools/testing/selftests/bpf/connect6_prog.c b/tools/testing/selftests/bpf/progs/connect6_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/connect6_prog.c
rename to tools/testing/selftests/bpf/progs/connect6_prog.c
diff --git a/tools/testing/selftests/bpf/dev_cgroup.c b/tools/testing/selftests/bpf/progs/dev_cgroup.c
similarity index 100%
rename from tools/testing/selftests/bpf/dev_cgroup.c
rename to tools/testing/selftests/bpf/progs/dev_cgroup.c
diff --git a/tools/testing/selftests/bpf/get_cgroup_id_kern.c b/tools/testing/selftests/bpf/progs/get_cgroup_id_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/get_cgroup_id_kern.c
rename to tools/testing/selftests/bpf/progs/get_cgroup_id_kern.c
diff --git a/tools/testing/selftests/bpf/netcnt_prog.c b/tools/testing/selftests/bpf/progs/netcnt_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/netcnt_prog.c
rename to tools/testing/selftests/bpf/progs/netcnt_prog.c
diff --git a/tools/testing/selftests/bpf/sample_map_ret0.c b/tools/testing/selftests/bpf/progs/sample_map_ret0.c
similarity index 100%
rename from tools/testing/selftests/bpf/sample_map_ret0.c
rename to tools/testing/selftests/bpf/progs/sample_map_ret0.c
diff --git a/tools/testing/selftests/bpf/sample_ret0.c b/tools/testing/selftests/bpf/progs/sample_ret0.c
similarity index 100%
rename from tools/testing/selftests/bpf/sample_ret0.c
rename to tools/testing/selftests/bpf/progs/sample_ret0.c
diff --git a/tools/testing/selftests/bpf/sendmsg4_prog.c b/tools/testing/selftests/bpf/progs/sendmsg4_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sendmsg4_prog.c
rename to tools/testing/selftests/bpf/progs/sendmsg4_prog.c
diff --git a/tools/testing/selftests/bpf/sendmsg6_prog.c b/tools/testing/selftests/bpf/progs/sendmsg6_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sendmsg6_prog.c
rename to tools/testing/selftests/bpf/progs/sendmsg6_prog.c
diff --git a/tools/testing/selftests/bpf/socket_cookie_prog.c b/tools/testing/selftests/bpf/progs/socket_cookie_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/socket_cookie_prog.c
rename to tools/testing/selftests/bpf/progs/socket_cookie_prog.c
diff --git a/tools/testing/selftests/bpf/sockmap_parse_prog.c b/tools/testing/selftests/bpf/progs/sockmap_parse_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sockmap_parse_prog.c
rename to tools/testing/selftests/bpf/progs/sockmap_parse_prog.c
diff --git a/tools/testing/selftests/bpf/sockmap_tcp_msg_prog.c b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sockmap_tcp_msg_prog.c
rename to tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c
diff --git a/tools/testing/selftests/bpf/sockmap_verdict_prog.c b/tools/testing/selftests/bpf/progs/sockmap_verdict_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sockmap_verdict_prog.c
rename to tools/testing/selftests/bpf/progs/sockmap_verdict_prog.c
diff --git a/tools/testing/selftests/bpf/test_adjust_tail.c b/tools/testing/selftests/bpf/progs/test_adjust_tail.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_adjust_tail.c
rename to tools/testing/selftests/bpf/progs/test_adjust_tail.c
diff --git a/tools/testing/selftests/bpf/test_btf_haskv.c b/tools/testing/selftests/bpf/progs/test_btf_haskv.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_btf_haskv.c
rename to tools/testing/selftests/bpf/progs/test_btf_haskv.c
diff --git a/tools/testing/selftests/bpf/test_btf_nokv.c b/tools/testing/selftests/bpf/progs/test_btf_nokv.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_btf_nokv.c
rename to tools/testing/selftests/bpf/progs/test_btf_nokv.c
diff --git a/tools/testing/selftests/bpf/test_get_stack_rawtp.c b/tools/testing/selftests/bpf/progs/test_get_stack_rawtp.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_get_stack_rawtp.c
rename to tools/testing/selftests/bpf/progs/test_get_stack_rawtp.c
diff --git a/tools/testing/selftests/bpf/test_l4lb.c b/tools/testing/selftests/bpf/progs/test_l4lb.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_l4lb.c
rename to tools/testing/selftests/bpf/progs/test_l4lb.c
diff --git a/tools/testing/selftests/bpf/test_l4lb_noinline.c b/tools/testing/selftests/bpf/progs/test_l4lb_noinline.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_l4lb_noinline.c
rename to tools/testing/selftests/bpf/progs/test_l4lb_noinline.c
diff --git a/tools/testing/selftests/bpf/test_lirc_mode2_kern.c b/tools/testing/selftests/bpf/progs/test_lirc_mode2_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_lirc_mode2_kern.c
rename to tools/testing/selftests/bpf/progs/test_lirc_mode2_kern.c
diff --git a/tools/testing/selftests/bpf/test_lwt_seg6local.c b/tools/testing/selftests/bpf/progs/test_lwt_seg6local.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_lwt_seg6local.c
rename to tools/testing/selftests/bpf/progs/test_lwt_seg6local.c
diff --git a/tools/testing/selftests/bpf/test_map_in_map.c b/tools/testing/selftests/bpf/progs/test_map_in_map.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_map_in_map.c
rename to tools/testing/selftests/bpf/progs/test_map_in_map.c
diff --git a/tools/testing/selftests/bpf/test_map_lock.c b/tools/testing/selftests/bpf/progs/test_map_lock.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_map_lock.c
rename to tools/testing/selftests/bpf/progs/test_map_lock.c
diff --git a/tools/testing/selftests/bpf/test_obj_id.c b/tools/testing/selftests/bpf/progs/test_obj_id.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_obj_id.c
rename to tools/testing/selftests/bpf/progs/test_obj_id.c
diff --git a/tools/testing/selftests/bpf/test_pkt_access.c b/tools/testing/selftests/bpf/progs/test_pkt_access.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_pkt_access.c
rename to tools/testing/selftests/bpf/progs/test_pkt_access.c
diff --git a/tools/testing/selftests/bpf/test_pkt_md_access.c b/tools/testing/selftests/bpf/progs/test_pkt_md_access.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_pkt_md_access.c
rename to tools/testing/selftests/bpf/progs/test_pkt_md_access.c
diff --git a/tools/testing/selftests/bpf/test_queue_map.c b/tools/testing/selftests/bpf/progs/test_queue_map.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_queue_map.c
rename to tools/testing/selftests/bpf/progs/test_queue_map.c
diff --git a/tools/testing/selftests/bpf/test_select_reuseport_kern.c b/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_select_reuseport_kern.c
rename to tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
diff --git a/tools/testing/selftests/bpf/test_sk_lookup_kern.c b/tools/testing/selftests/bpf/progs/test_sk_lookup_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_sk_lookup_kern.c
rename to tools/testing/selftests/bpf/progs/test_sk_lookup_kern.c
diff --git a/tools/testing/selftests/bpf/test_skb_cgroup_id_kern.c b/tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_skb_cgroup_id_kern.c
rename to tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c
diff --git a/tools/testing/selftests/bpf/test_sock_fields_kern.c b/tools/testing/selftests/bpf/progs/test_sock_fields_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_sock_fields_kern.c
rename to tools/testing/selftests/bpf/progs/test_sock_fields_kern.c
diff --git a/tools/testing/selftests/bpf/test_sockhash_kern.c b/tools/testing/selftests/bpf/progs/test_sockhash_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_sockhash_kern.c
rename to tools/testing/selftests/bpf/progs/test_sockhash_kern.c
diff --git a/tools/testing/selftests/bpf/test_sockmap_kern.c b/tools/testing/selftests/bpf/progs/test_sockmap_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_sockmap_kern.c
rename to tools/testing/selftests/bpf/progs/test_sockmap_kern.c
diff --git a/tools/testing/selftests/bpf/test_spin_lock.c b/tools/testing/selftests/bpf/progs/test_spin_lock.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_spin_lock.c
rename to tools/testing/selftests/bpf/progs/test_spin_lock.c
diff --git a/tools/testing/selftests/bpf/test_stack_map.c b/tools/testing/selftests/bpf/progs/test_stack_map.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_stack_map.c
rename to tools/testing/selftests/bpf/progs/test_stack_map.c
diff --git a/tools/testing/selftests/bpf/test_stacktrace_build_id.c b/tools/testing/selftests/bpf/progs/test_stacktrace_build_id.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_stacktrace_build_id.c
rename to tools/testing/selftests/bpf/progs/test_stacktrace_build_id.c
diff --git a/tools/testing/selftests/bpf/test_stacktrace_map.c b/tools/testing/selftests/bpf/progs/test_stacktrace_map.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_stacktrace_map.c
rename to tools/testing/selftests/bpf/progs/test_stacktrace_map.c
diff --git a/tools/testing/selftests/bpf/test_tcp_estats.c b/tools/testing/selftests/bpf/progs/test_tcp_estats.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tcp_estats.c
rename to tools/testing/selftests/bpf/progs/test_tcp_estats.c
diff --git a/tools/testing/selftests/bpf/test_tcpbpf_kern.c b/tools/testing/selftests/bpf/progs/test_tcpbpf_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tcpbpf_kern.c
rename to tools/testing/selftests/bpf/progs/test_tcpbpf_kern.c
diff --git a/tools/testing/selftests/bpf/test_tcpnotify_kern.c b/tools/testing/selftests/bpf/progs/test_tcpnotify_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tcpnotify_kern.c
rename to tools/testing/selftests/bpf/progs/test_tcpnotify_kern.c
diff --git a/tools/testing/selftests/bpf/test_tracepoint.c b/tools/testing/selftests/bpf/progs/test_tracepoint.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tracepoint.c
rename to tools/testing/selftests/bpf/progs/test_tracepoint.c
diff --git a/tools/testing/selftests/bpf/test_tunnel_kern.c b/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tunnel_kern.c
rename to tools/testing/selftests/bpf/progs/test_tunnel_kern.c
diff --git a/tools/testing/selftests/bpf/test_xdp.c b/tools/testing/selftests/bpf/progs/test_xdp.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp.c
rename to tools/testing/selftests/bpf/progs/test_xdp.c
diff --git a/tools/testing/selftests/bpf/test_xdp_meta.c b/tools/testing/selftests/bpf/progs/test_xdp_meta.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp_meta.c
rename to tools/testing/selftests/bpf/progs/test_xdp_meta.c
diff --git a/tools/testing/selftests/bpf/test_xdp_noinline.c b/tools/testing/selftests/bpf/progs/test_xdp_noinline.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp_noinline.c
rename to tools/testing/selftests/bpf/progs/test_xdp_noinline.c
diff --git a/tools/testing/selftests/bpf/test_xdp_redirect.c b/tools/testing/selftests/bpf/progs/test_xdp_redirect.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp_redirect.c
rename to tools/testing/selftests/bpf/progs/test_xdp_redirect.c
diff --git a/tools/testing/selftests/bpf/test_xdp_vlan.c b/tools/testing/selftests/bpf/progs/test_xdp_vlan.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp_vlan.c
rename to tools/testing/selftests/bpf/progs/test_xdp_vlan.c
diff --git a/tools/testing/selftests/bpf/xdp_dummy.c b/tools/testing/selftests/bpf/progs/xdp_dummy.c
similarity index 100%
rename from tools/testing/selftests/bpf/xdp_dummy.c
rename to tools/testing/selftests/bpf/progs/xdp_dummy.c
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH bpf-next v2 4/4] selftests: bpf: relax sub-register mode compilation criteria
2019-02-11 12:01 [PATCH bpf-next v2 0/4] selftests: bpf: improve bpf object file rules Jiong Wang
` (2 preceding siblings ...)
2019-02-11 12:01 ` [PATCH bpf-next v2 3/4] selftests: bpf: centre kernel bpf objects under new subdir "progs" Jiong Wang
@ 2019-02-11 12:01 ` Jiong Wang
2019-02-12 4:34 ` [PATCH bpf-next v2 0/4] selftests: bpf: improve bpf object file rules Alexei Starovoitov
4 siblings, 0 replies; 6+ messages in thread
From: Jiong Wang @ 2019-02-11 12:01 UTC (permalink / raw)
To: alexei.starovoitov, daniel; +Cc: netdev, oss-drivers, Jiong Wang
Sub-register mode compilation was enabled only when there are eBPF "v3"
processor supports at both compilation time inside LLVM and runtime inside
kernel.
Given separation betwen build and test server could be often, this patch
removes the runtime support criteria.
Suggested-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
---
tools/testing/selftests/bpf/Makefile | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index 575746e..c3edf47 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -28,12 +28,11 @@ TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test
BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard progs/*.c)))
TEST_GEN_FILES = $(BPF_OBJ_FILES)
-# Also test sub-register code-gen if LLVM + kernel both has eBPF v3 processor
-# support which is the first version to contain both ALU32 and JMP32
-# instructions.
+# Also test sub-register code-gen if LLVM has eBPF v3 processor support which
+# contains both ALU32 and JMP32 instructions.
SUBREG_CODEGEN := $(shell echo "int cal(int a) { return a > 0; }" | \
$(CLANG) -target bpf -O2 -emit-llvm -S -x c - -o - | \
- $(LLC) -mattr=+alu32 -mcpu=probe 2>&1 | \
+ $(LLC) -mattr=+alu32 -mcpu=v3 2>&1 | \
grep 'if w')
ifneq ($(SUBREG_CODEGEN),)
TEST_GEN_FILES += $(patsubst %.o,alu32/%.o, $(BPF_OBJ_FILES))
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH bpf-next v2 0/4] selftests: bpf: improve bpf object file rules
2019-02-11 12:01 [PATCH bpf-next v2 0/4] selftests: bpf: improve bpf object file rules Jiong Wang
` (3 preceding siblings ...)
2019-02-11 12:01 ` [PATCH bpf-next v2 4/4] selftests: bpf: relax sub-register mode compilation criteria Jiong Wang
@ 2019-02-12 4:34 ` Alexei Starovoitov
4 siblings, 0 replies; 6+ messages in thread
From: Alexei Starovoitov @ 2019-02-12 4:34 UTC (permalink / raw)
To: Jiong Wang; +Cc: daniel, netdev, oss-drivers
On Mon, Feb 11, 2019 at 12:01:17PM +0000, Jiong Wang wrote:
> This set improves bpf object file related rules in selftests Makefile.
> - tell git to ignore the build dir "alu32".
> - extend sub-register mode compilation to all bpf object files to give
> LLVM compiler bpf back-end more exercise.
> - auto-generate bpf kernel object file list.
> - relax sub-register mode compilation criteria.
>
> v1 -> v2:
> - rename "kern_progs" to "progs". (Alexei)
> - spin a new patch to remove build server kernel requirement for
> sub-register mode compilation (Alexei)
> - rebase on top of KaFai’s latest "test_sock_fields" patch set.
Looks great. Both test_progs and test_progs_32 are passing for me.
Applied to bpf-next. Thanks!
^ permalink raw reply [flat|nested] 6+ messages in thread