netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next 0/3] selftests: bpf: improve bpf object file rules
@ 2019-02-08 17:41 Jiong Wang
  2019-02-08 17:41 ` [PATCH bpf-next 1/3] selftests: bpf: add "alu32" to .gitignore Jiong Wang
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Jiong Wang @ 2019-02-08 17:41 UTC (permalink / raw)
  To: alexei.starovoitov, daniel; +Cc: netdev, oss-drivers, Jiong Wang

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.

Jiong Wang (3):
  selftests: bpf: add "alu32" to .gitignore
  selftests: bpf: extend sub-register mode compilation to all bpf object
    files
  selftests: bpf: centre kernel bpf objects under new subdir
    "kern_progs"

 tools/testing/selftests/bpf/.gitignore             |  1 +
 tools/testing/selftests/bpf/Makefile               | 35 +++++-----------------
 .../selftests/bpf/{ => kern_progs}/bpf_flow.c      |  0
 .../selftests/bpf/{ => kern_progs}/connect4_prog.c |  0
 .../selftests/bpf/{ => kern_progs}/connect6_prog.c |  0
 .../selftests/bpf/{ => kern_progs}/dev_cgroup.c    |  0
 .../bpf/{ => kern_progs}/get_cgroup_id_kern.c      |  0
 .../selftests/bpf/{ => kern_progs}/netcnt_prog.c   |  0
 .../bpf/{ => kern_progs}/sample_map_ret0.c         |  0
 .../selftests/bpf/{ => kern_progs}/sample_ret0.c   |  0
 .../selftests/bpf/{ => kern_progs}/sendmsg4_prog.c |  0
 .../selftests/bpf/{ => kern_progs}/sendmsg6_prog.c |  0
 .../bpf/{ => kern_progs}/socket_cookie_prog.c      |  0
 .../bpf/{ => kern_progs}/sockmap_parse_prog.c      |  0
 .../bpf/{ => kern_progs}/sockmap_tcp_msg_prog.c    |  0
 .../bpf/{ => kern_progs}/sockmap_verdict_prog.c    |  0
 .../bpf/{ => kern_progs}/test_adjust_tail.c        |  0
 .../bpf/{ => kern_progs}/test_btf_haskv.c          |  0
 .../selftests/bpf/{ => kern_progs}/test_btf_nokv.c |  0
 .../bpf/{ => kern_progs}/test_get_stack_rawtp.c    |  0
 .../selftests/bpf/{ => kern_progs}/test_l4lb.c     |  0
 .../bpf/{ => kern_progs}/test_l4lb_noinline.c      |  0
 .../bpf/{ => kern_progs}/test_lirc_mode2_kern.c    |  0
 .../bpf/{ => kern_progs}/test_lwt_seg6local.c      |  0
 .../bpf/{ => kern_progs}/test_map_in_map.c         |  0
 .../selftests/bpf/{ => kern_progs}/test_map_lock.c |  0
 .../selftests/bpf/{ => kern_progs}/test_obj_id.c   |  0
 .../bpf/{ => kern_progs}/test_pkt_access.c         |  0
 .../bpf/{ => kern_progs}/test_pkt_md_access.c      |  0
 .../bpf/{ => kern_progs}/test_queue_map.c          |  0
 .../{ => kern_progs}/test_select_reuseport_kern.c  |  0
 .../bpf/{ => kern_progs}/test_sk_lookup_kern.c     |  0
 .../bpf/{ => kern_progs}/test_skb_cgroup_id_kern.c |  0
 .../bpf/{ => kern_progs}/test_sockhash_kern.c      |  0
 .../bpf/{ => kern_progs}/test_sockmap_kern.c       |  0
 .../bpf/{ => kern_progs}/test_spin_lock.c          |  0
 .../bpf/{ => kern_progs}/test_stack_map.c          |  0
 .../{ => kern_progs}/test_stacktrace_build_id.c    |  0
 .../bpf/{ => kern_progs}/test_stacktrace_map.c     |  0
 .../bpf/{ => kern_progs}/test_tcp_estats.c         |  0
 .../bpf/{ => kern_progs}/test_tcpbpf_kern.c        |  0
 .../bpf/{ => kern_progs}/test_tcpnotify_kern.c     |  0
 .../bpf/{ => kern_progs}/test_tracepoint.c         |  0
 .../bpf/{ => kern_progs}/test_tunnel_kern.c        |  0
 .../selftests/bpf/{ => kern_progs}/test_xdp.c      |  0
 .../selftests/bpf/{ => kern_progs}/test_xdp_meta.c |  0
 .../bpf/{ => kern_progs}/test_xdp_noinline.c       |  0
 .../bpf/{ => kern_progs}/test_xdp_redirect.c       |  0
 .../selftests/bpf/{ => kern_progs}/test_xdp_vlan.c |  0
 .../selftests/bpf/{ => kern_progs}/xdp_dummy.c     |  0
 50 files changed, 8 insertions(+), 28 deletions(-)
 rename tools/testing/selftests/bpf/{ => kern_progs}/bpf_flow.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/connect4_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/connect6_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/dev_cgroup.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/get_cgroup_id_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/netcnt_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sample_map_ret0.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sample_ret0.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sendmsg4_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sendmsg6_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/socket_cookie_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sockmap_parse_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sockmap_tcp_msg_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sockmap_verdict_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_adjust_tail.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_btf_haskv.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_btf_nokv.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_get_stack_rawtp.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_l4lb.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_l4lb_noinline.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_lirc_mode2_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_lwt_seg6local.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_map_in_map.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_map_lock.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_obj_id.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_pkt_access.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_pkt_md_access.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_queue_map.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_select_reuseport_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_sk_lookup_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_skb_cgroup_id_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_sockhash_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_sockmap_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_spin_lock.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_stack_map.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_stacktrace_build_id.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_stacktrace_map.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tcp_estats.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tcpbpf_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tcpnotify_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tracepoint.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tunnel_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp_meta.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp_noinline.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp_redirect.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp_vlan.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/xdp_dummy.c (100%)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH bpf-next 1/3] selftests: bpf: add "alu32" to .gitignore
  2019-02-08 17:41 [PATCH bpf-next 0/3] selftests: bpf: improve bpf object file rules Jiong Wang
@ 2019-02-08 17:41 ` Jiong Wang
  2019-02-08 17:41 ` [PATCH bpf-next 2/3] selftests: bpf: extend sub-register mode compilation to all bpf object files Jiong Wang
  2019-02-08 17:41 ` [PATCH bpf-next 3/3] selftests: bpf: centre kernel bpf objects under new subdir "kern_progs" Jiong Wang
  2 siblings, 0 replies; 8+ messages in thread
From: Jiong Wang @ 2019-02-08 17:41 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] 8+ messages in thread

* [PATCH bpf-next 2/3] selftests: bpf: extend sub-register mode compilation to all bpf object files
  2019-02-08 17:41 [PATCH bpf-next 0/3] selftests: bpf: improve bpf object file rules Jiong Wang
  2019-02-08 17:41 ` [PATCH bpf-next 1/3] selftests: bpf: add "alu32" to .gitignore Jiong Wang
@ 2019-02-08 17:41 ` Jiong Wang
  2019-02-11  4:04   ` Alexei Starovoitov
  2019-02-08 17:41 ` [PATCH bpf-next 3/3] selftests: bpf: centre kernel bpf objects under new subdir "kern_progs" Jiong Wang
  2 siblings, 1 reply; 8+ messages in thread
From: Jiong Wang @ 2019-02-08 17:41 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 | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index 383d2ff..70b2570 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -35,20 +35,15 @@ BPF_OBJ_FILES = \
 	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
-
-# 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 \
+	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_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_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
@@ -58,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] 8+ messages in thread

* [PATCH bpf-next 3/3] selftests: bpf: centre kernel bpf objects under new subdir "kern_progs"
  2019-02-08 17:41 [PATCH bpf-next 0/3] selftests: bpf: improve bpf object file rules Jiong Wang
  2019-02-08 17:41 ` [PATCH bpf-next 1/3] selftests: bpf: add "alu32" to .gitignore Jiong Wang
  2019-02-08 17:41 ` [PATCH bpf-next 2/3] selftests: bpf: extend sub-register mode compilation to all bpf object files Jiong Wang
@ 2019-02-08 17:41 ` Jiong Wang
  2019-02-11  4:06   ` Alexei Starovoitov
  2 siblings, 1 reply; 8+ messages in thread
From: Jiong Wang @ 2019-02-08 17:41 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
"kern_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 +++++-----------------
 .../selftests/bpf/{ => kern_progs}/bpf_flow.c      |  0
 .../selftests/bpf/{ => kern_progs}/connect4_prog.c |  0
 .../selftests/bpf/{ => kern_progs}/connect6_prog.c |  0
 .../selftests/bpf/{ => kern_progs}/dev_cgroup.c    |  0
 .../bpf/{ => kern_progs}/get_cgroup_id_kern.c      |  0
 .../selftests/bpf/{ => kern_progs}/netcnt_prog.c   |  0
 .../bpf/{ => kern_progs}/sample_map_ret0.c         |  0
 .../selftests/bpf/{ => kern_progs}/sample_ret0.c   |  0
 .../selftests/bpf/{ => kern_progs}/sendmsg4_prog.c |  0
 .../selftests/bpf/{ => kern_progs}/sendmsg6_prog.c |  0
 .../bpf/{ => kern_progs}/socket_cookie_prog.c      |  0
 .../bpf/{ => kern_progs}/sockmap_parse_prog.c      |  0
 .../bpf/{ => kern_progs}/sockmap_tcp_msg_prog.c    |  0
 .../bpf/{ => kern_progs}/sockmap_verdict_prog.c    |  0
 .../bpf/{ => kern_progs}/test_adjust_tail.c        |  0
 .../bpf/{ => kern_progs}/test_btf_haskv.c          |  0
 .../selftests/bpf/{ => kern_progs}/test_btf_nokv.c |  0
 .../bpf/{ => kern_progs}/test_get_stack_rawtp.c    |  0
 .../selftests/bpf/{ => kern_progs}/test_l4lb.c     |  0
 .../bpf/{ => kern_progs}/test_l4lb_noinline.c      |  0
 .../bpf/{ => kern_progs}/test_lirc_mode2_kern.c    |  0
 .../bpf/{ => kern_progs}/test_lwt_seg6local.c      |  0
 .../bpf/{ => kern_progs}/test_map_in_map.c         |  0
 .../selftests/bpf/{ => kern_progs}/test_map_lock.c |  0
 .../selftests/bpf/{ => kern_progs}/test_obj_id.c   |  0
 .../bpf/{ => kern_progs}/test_pkt_access.c         |  0
 .../bpf/{ => kern_progs}/test_pkt_md_access.c      |  0
 .../bpf/{ => kern_progs}/test_queue_map.c          |  0
 .../{ => kern_progs}/test_select_reuseport_kern.c  |  0
 .../bpf/{ => kern_progs}/test_sk_lookup_kern.c     |  0
 .../bpf/{ => kern_progs}/test_skb_cgroup_id_kern.c |  0
 .../bpf/{ => kern_progs}/test_sockhash_kern.c      |  0
 .../bpf/{ => kern_progs}/test_sockmap_kern.c       |  0
 .../bpf/{ => kern_progs}/test_spin_lock.c          |  0
 .../bpf/{ => kern_progs}/test_stack_map.c          |  0
 .../{ => kern_progs}/test_stacktrace_build_id.c    |  0
 .../bpf/{ => kern_progs}/test_stacktrace_map.c     |  0
 .../bpf/{ => kern_progs}/test_tcp_estats.c         |  0
 .../bpf/{ => kern_progs}/test_tcpbpf_kern.c        |  0
 .../bpf/{ => kern_progs}/test_tcpnotify_kern.c     |  0
 .../bpf/{ => kern_progs}/test_tracepoint.c         |  0
 .../bpf/{ => kern_progs}/test_tunnel_kern.c        |  0
 .../selftests/bpf/{ => kern_progs}/test_xdp.c      |  0
 .../selftests/bpf/{ => kern_progs}/test_xdp_meta.c |  0
 .../bpf/{ => kern_progs}/test_xdp_noinline.c       |  0
 .../bpf/{ => kern_progs}/test_xdp_redirect.c       |  0
 .../selftests/bpf/{ => kern_progs}/test_xdp_vlan.c |  0
 .../selftests/bpf/{ => kern_progs}/xdp_dummy.c     |  0
 49 files changed, 5 insertions(+), 21 deletions(-)
 rename tools/testing/selftests/bpf/{ => kern_progs}/bpf_flow.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/connect4_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/connect6_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/dev_cgroup.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/get_cgroup_id_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/netcnt_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sample_map_ret0.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sample_ret0.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sendmsg4_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sendmsg6_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/socket_cookie_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sockmap_parse_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sockmap_tcp_msg_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/sockmap_verdict_prog.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_adjust_tail.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_btf_haskv.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_btf_nokv.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_get_stack_rawtp.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_l4lb.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_l4lb_noinline.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_lirc_mode2_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_lwt_seg6local.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_map_in_map.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_map_lock.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_obj_id.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_pkt_access.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_pkt_md_access.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_queue_map.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_select_reuseport_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_sk_lookup_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_skb_cgroup_id_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_sockhash_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_sockmap_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_spin_lock.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_stack_map.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_stacktrace_build_id.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_stacktrace_map.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tcp_estats.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tcpbpf_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tcpnotify_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tracepoint.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_tunnel_kern.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp_meta.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp_noinline.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp_redirect.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/test_xdp_vlan.c (100%)
 rename tools/testing/selftests/bpf/{ => kern_progs}/xdp_dummy.c (100%)

diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index 70b2570..2965855 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
 
-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
-
+BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard kern_progs/*.c)))
 TEST_GEN_FILES = $(BPF_OBJ_FILES)
 
 # Also test sub-register code-gen if LLVM + kernel both has eBPF v3 processor
@@ -183,7 +166,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: kern_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) \
@@ -195,7 +179,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: kern_progs/test_xdp.c
 	$(CLANG) $(CLANG_FLAGS) \
 		-O2 -emit-llvm -c $< -o - | \
 	$(LLC) -march=bpf -mcpu=$(CPU) $(LLC_FLAGS) -filetype=obj -o $@
@@ -203,7 +187,7 @@ ifeq ($(DWARF2BTF),y)
 	$(BTF_PAHOLE) -J $@
 endif
 
-$(OUTPUT)/%.o: %.c
+$(OUTPUT)/%.o: kern_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/kern_progs/bpf_flow.c
similarity index 100%
rename from tools/testing/selftests/bpf/bpf_flow.c
rename to tools/testing/selftests/bpf/kern_progs/bpf_flow.c
diff --git a/tools/testing/selftests/bpf/connect4_prog.c b/tools/testing/selftests/bpf/kern_progs/connect4_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/connect4_prog.c
rename to tools/testing/selftests/bpf/kern_progs/connect4_prog.c
diff --git a/tools/testing/selftests/bpf/connect6_prog.c b/tools/testing/selftests/bpf/kern_progs/connect6_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/connect6_prog.c
rename to tools/testing/selftests/bpf/kern_progs/connect6_prog.c
diff --git a/tools/testing/selftests/bpf/dev_cgroup.c b/tools/testing/selftests/bpf/kern_progs/dev_cgroup.c
similarity index 100%
rename from tools/testing/selftests/bpf/dev_cgroup.c
rename to tools/testing/selftests/bpf/kern_progs/dev_cgroup.c
diff --git a/tools/testing/selftests/bpf/get_cgroup_id_kern.c b/tools/testing/selftests/bpf/kern_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/kern_progs/get_cgroup_id_kern.c
diff --git a/tools/testing/selftests/bpf/netcnt_prog.c b/tools/testing/selftests/bpf/kern_progs/netcnt_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/netcnt_prog.c
rename to tools/testing/selftests/bpf/kern_progs/netcnt_prog.c
diff --git a/tools/testing/selftests/bpf/sample_map_ret0.c b/tools/testing/selftests/bpf/kern_progs/sample_map_ret0.c
similarity index 100%
rename from tools/testing/selftests/bpf/sample_map_ret0.c
rename to tools/testing/selftests/bpf/kern_progs/sample_map_ret0.c
diff --git a/tools/testing/selftests/bpf/sample_ret0.c b/tools/testing/selftests/bpf/kern_progs/sample_ret0.c
similarity index 100%
rename from tools/testing/selftests/bpf/sample_ret0.c
rename to tools/testing/selftests/bpf/kern_progs/sample_ret0.c
diff --git a/tools/testing/selftests/bpf/sendmsg4_prog.c b/tools/testing/selftests/bpf/kern_progs/sendmsg4_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sendmsg4_prog.c
rename to tools/testing/selftests/bpf/kern_progs/sendmsg4_prog.c
diff --git a/tools/testing/selftests/bpf/sendmsg6_prog.c b/tools/testing/selftests/bpf/kern_progs/sendmsg6_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sendmsg6_prog.c
rename to tools/testing/selftests/bpf/kern_progs/sendmsg6_prog.c
diff --git a/tools/testing/selftests/bpf/socket_cookie_prog.c b/tools/testing/selftests/bpf/kern_progs/socket_cookie_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/socket_cookie_prog.c
rename to tools/testing/selftests/bpf/kern_progs/socket_cookie_prog.c
diff --git a/tools/testing/selftests/bpf/sockmap_parse_prog.c b/tools/testing/selftests/bpf/kern_progs/sockmap_parse_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sockmap_parse_prog.c
rename to tools/testing/selftests/bpf/kern_progs/sockmap_parse_prog.c
diff --git a/tools/testing/selftests/bpf/sockmap_tcp_msg_prog.c b/tools/testing/selftests/bpf/kern_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/kern_progs/sockmap_tcp_msg_prog.c
diff --git a/tools/testing/selftests/bpf/sockmap_verdict_prog.c b/tools/testing/selftests/bpf/kern_progs/sockmap_verdict_prog.c
similarity index 100%
rename from tools/testing/selftests/bpf/sockmap_verdict_prog.c
rename to tools/testing/selftests/bpf/kern_progs/sockmap_verdict_prog.c
diff --git a/tools/testing/selftests/bpf/test_adjust_tail.c b/tools/testing/selftests/bpf/kern_progs/test_adjust_tail.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_adjust_tail.c
rename to tools/testing/selftests/bpf/kern_progs/test_adjust_tail.c
diff --git a/tools/testing/selftests/bpf/test_btf_haskv.c b/tools/testing/selftests/bpf/kern_progs/test_btf_haskv.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_btf_haskv.c
rename to tools/testing/selftests/bpf/kern_progs/test_btf_haskv.c
diff --git a/tools/testing/selftests/bpf/test_btf_nokv.c b/tools/testing/selftests/bpf/kern_progs/test_btf_nokv.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_btf_nokv.c
rename to tools/testing/selftests/bpf/kern_progs/test_btf_nokv.c
diff --git a/tools/testing/selftests/bpf/test_get_stack_rawtp.c b/tools/testing/selftests/bpf/kern_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/kern_progs/test_get_stack_rawtp.c
diff --git a/tools/testing/selftests/bpf/test_l4lb.c b/tools/testing/selftests/bpf/kern_progs/test_l4lb.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_l4lb.c
rename to tools/testing/selftests/bpf/kern_progs/test_l4lb.c
diff --git a/tools/testing/selftests/bpf/test_l4lb_noinline.c b/tools/testing/selftests/bpf/kern_progs/test_l4lb_noinline.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_l4lb_noinline.c
rename to tools/testing/selftests/bpf/kern_progs/test_l4lb_noinline.c
diff --git a/tools/testing/selftests/bpf/test_lirc_mode2_kern.c b/tools/testing/selftests/bpf/kern_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/kern_progs/test_lirc_mode2_kern.c
diff --git a/tools/testing/selftests/bpf/test_lwt_seg6local.c b/tools/testing/selftests/bpf/kern_progs/test_lwt_seg6local.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_lwt_seg6local.c
rename to tools/testing/selftests/bpf/kern_progs/test_lwt_seg6local.c
diff --git a/tools/testing/selftests/bpf/test_map_in_map.c b/tools/testing/selftests/bpf/kern_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/kern_progs/test_map_in_map.c
diff --git a/tools/testing/selftests/bpf/test_map_lock.c b/tools/testing/selftests/bpf/kern_progs/test_map_lock.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_map_lock.c
rename to tools/testing/selftests/bpf/kern_progs/test_map_lock.c
diff --git a/tools/testing/selftests/bpf/test_obj_id.c b/tools/testing/selftests/bpf/kern_progs/test_obj_id.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_obj_id.c
rename to tools/testing/selftests/bpf/kern_progs/test_obj_id.c
diff --git a/tools/testing/selftests/bpf/test_pkt_access.c b/tools/testing/selftests/bpf/kern_progs/test_pkt_access.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_pkt_access.c
rename to tools/testing/selftests/bpf/kern_progs/test_pkt_access.c
diff --git a/tools/testing/selftests/bpf/test_pkt_md_access.c b/tools/testing/selftests/bpf/kern_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/kern_progs/test_pkt_md_access.c
diff --git a/tools/testing/selftests/bpf/test_queue_map.c b/tools/testing/selftests/bpf/kern_progs/test_queue_map.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_queue_map.c
rename to tools/testing/selftests/bpf/kern_progs/test_queue_map.c
diff --git a/tools/testing/selftests/bpf/test_select_reuseport_kern.c b/tools/testing/selftests/bpf/kern_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/kern_progs/test_select_reuseport_kern.c
diff --git a/tools/testing/selftests/bpf/test_sk_lookup_kern.c b/tools/testing/selftests/bpf/kern_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/kern_progs/test_sk_lookup_kern.c
diff --git a/tools/testing/selftests/bpf/test_skb_cgroup_id_kern.c b/tools/testing/selftests/bpf/kern_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/kern_progs/test_skb_cgroup_id_kern.c
diff --git a/tools/testing/selftests/bpf/test_sockhash_kern.c b/tools/testing/selftests/bpf/kern_progs/test_sockhash_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_sockhash_kern.c
rename to tools/testing/selftests/bpf/kern_progs/test_sockhash_kern.c
diff --git a/tools/testing/selftests/bpf/test_sockmap_kern.c b/tools/testing/selftests/bpf/kern_progs/test_sockmap_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_sockmap_kern.c
rename to tools/testing/selftests/bpf/kern_progs/test_sockmap_kern.c
diff --git a/tools/testing/selftests/bpf/test_spin_lock.c b/tools/testing/selftests/bpf/kern_progs/test_spin_lock.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_spin_lock.c
rename to tools/testing/selftests/bpf/kern_progs/test_spin_lock.c
diff --git a/tools/testing/selftests/bpf/test_stack_map.c b/tools/testing/selftests/bpf/kern_progs/test_stack_map.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_stack_map.c
rename to tools/testing/selftests/bpf/kern_progs/test_stack_map.c
diff --git a/tools/testing/selftests/bpf/test_stacktrace_build_id.c b/tools/testing/selftests/bpf/kern_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/kern_progs/test_stacktrace_build_id.c
diff --git a/tools/testing/selftests/bpf/test_stacktrace_map.c b/tools/testing/selftests/bpf/kern_progs/test_stacktrace_map.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_stacktrace_map.c
rename to tools/testing/selftests/bpf/kern_progs/test_stacktrace_map.c
diff --git a/tools/testing/selftests/bpf/test_tcp_estats.c b/tools/testing/selftests/bpf/kern_progs/test_tcp_estats.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tcp_estats.c
rename to tools/testing/selftests/bpf/kern_progs/test_tcp_estats.c
diff --git a/tools/testing/selftests/bpf/test_tcpbpf_kern.c b/tools/testing/selftests/bpf/kern_progs/test_tcpbpf_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tcpbpf_kern.c
rename to tools/testing/selftests/bpf/kern_progs/test_tcpbpf_kern.c
diff --git a/tools/testing/selftests/bpf/test_tcpnotify_kern.c b/tools/testing/selftests/bpf/kern_progs/test_tcpnotify_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tcpnotify_kern.c
rename to tools/testing/selftests/bpf/kern_progs/test_tcpnotify_kern.c
diff --git a/tools/testing/selftests/bpf/test_tracepoint.c b/tools/testing/selftests/bpf/kern_progs/test_tracepoint.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tracepoint.c
rename to tools/testing/selftests/bpf/kern_progs/test_tracepoint.c
diff --git a/tools/testing/selftests/bpf/test_tunnel_kern.c b/tools/testing/selftests/bpf/kern_progs/test_tunnel_kern.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_tunnel_kern.c
rename to tools/testing/selftests/bpf/kern_progs/test_tunnel_kern.c
diff --git a/tools/testing/selftests/bpf/test_xdp.c b/tools/testing/selftests/bpf/kern_progs/test_xdp.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp.c
rename to tools/testing/selftests/bpf/kern_progs/test_xdp.c
diff --git a/tools/testing/selftests/bpf/test_xdp_meta.c b/tools/testing/selftests/bpf/kern_progs/test_xdp_meta.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp_meta.c
rename to tools/testing/selftests/bpf/kern_progs/test_xdp_meta.c
diff --git a/tools/testing/selftests/bpf/test_xdp_noinline.c b/tools/testing/selftests/bpf/kern_progs/test_xdp_noinline.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp_noinline.c
rename to tools/testing/selftests/bpf/kern_progs/test_xdp_noinline.c
diff --git a/tools/testing/selftests/bpf/test_xdp_redirect.c b/tools/testing/selftests/bpf/kern_progs/test_xdp_redirect.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp_redirect.c
rename to tools/testing/selftests/bpf/kern_progs/test_xdp_redirect.c
diff --git a/tools/testing/selftests/bpf/test_xdp_vlan.c b/tools/testing/selftests/bpf/kern_progs/test_xdp_vlan.c
similarity index 100%
rename from tools/testing/selftests/bpf/test_xdp_vlan.c
rename to tools/testing/selftests/bpf/kern_progs/test_xdp_vlan.c
diff --git a/tools/testing/selftests/bpf/xdp_dummy.c b/tools/testing/selftests/bpf/kern_progs/xdp_dummy.c
similarity index 100%
rename from tools/testing/selftests/bpf/xdp_dummy.c
rename to tools/testing/selftests/bpf/kern_progs/xdp_dummy.c
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next 2/3] selftests: bpf: extend sub-register mode compilation to all bpf object files
  2019-02-08 17:41 ` [PATCH bpf-next 2/3] selftests: bpf: extend sub-register mode compilation to all bpf object files Jiong Wang
@ 2019-02-11  4:04   ` Alexei Starovoitov
  2019-02-11 11:47     ` Jiong Wang
  0 siblings, 1 reply; 8+ messages in thread
From: Alexei Starovoitov @ 2019-02-11  4:04 UTC (permalink / raw)
  To: Jiong Wang; +Cc: daniel, netdev, oss-drivers

On Fri, Feb 08, 2019 at 05:41:20PM +0000, Jiong Wang wrote:
> 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 | 21 ++++++++-------------
>  1 file changed, 8 insertions(+), 13 deletions(-)
> 
> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> index 383d2ff..70b2570 100644
> --- a/tools/testing/selftests/bpf/Makefile
> +++ b/tools/testing/selftests/bpf/Makefile
> @@ -35,20 +35,15 @@ BPF_OBJ_FILES = \
>  	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
> -
> -# 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 \
> +	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_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_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
> @@ -58,7 +53,7 @@ SUBREG_CODEGEN := $(shell echo "int cal(int a) { return a > 0; }" | \
>  			$(LLC) -mattr=+alu32 -mcpu=probe 2>&1 | \
>  			grep 'if w')

build and test servers can be different.
Would it make sense to use -mcpu=v3 instead of -mcpu=probe ?

Also while testing test_progs_32 fails like this:
libbpf: failed to open ./bpf_flow.o: No such file or directory
libbpf: failed to open ./test_spin_lock.o: No such file or directory
test_spin_lock:bpf_prog_load errno 2

Do you see the same ?


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next 3/3] selftests: bpf: centre kernel bpf objects under new subdir "kern_progs"
  2019-02-08 17:41 ` [PATCH bpf-next 3/3] selftests: bpf: centre kernel bpf objects under new subdir "kern_progs" Jiong Wang
@ 2019-02-11  4:06   ` Alexei Starovoitov
  2019-02-11 11:47     ` Jiong Wang
  0 siblings, 1 reply; 8+ messages in thread
From: Alexei Starovoitov @ 2019-02-11  4:06 UTC (permalink / raw)
  To: Jiong Wang; +Cc: daniel, netdev, oss-drivers

On Fri, Feb 08, 2019 at 05:41:21PM +0000, Jiong Wang wrote:
> 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
> "kern_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 +++++-----------------
>  .../selftests/bpf/{ => kern_progs}/bpf_flow.c      |  0
>  .../selftests/bpf/{ => kern_progs}/connect4_prog.c |  0
>  .../selftests/bpf/{ => kern_progs}/connect6_prog.c |  0
>  .../selftests/bpf/{ => kern_progs}/dev_cgroup.c    |  0

Thanks a lot for the patch.
A tiny bit of bikeshedding...
'kern_progs' feels a bit too long and awkward to type.
May be just 'progs' ?


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next 2/3] selftests: bpf: extend sub-register mode compilation to all bpf object files
  2019-02-11  4:04   ` Alexei Starovoitov
@ 2019-02-11 11:47     ` Jiong Wang
  0 siblings, 0 replies; 8+ messages in thread
From: Jiong Wang @ 2019-02-11 11:47 UTC (permalink / raw)
  To: Alexei Starovoitov; +Cc: Daniel Borkmann, netdev, oss-drivers


> On 11 Feb 2019, at 04:04, Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote:
> 
> On Fri, Feb 08, 2019 at 05:41:20PM +0000, Jiong Wang wrote:
>> 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 | 21 ++++++++-------------
>> 1 file changed, 8 insertions(+), 13 deletions(-)
>> 
>> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
>> index 383d2ff..70b2570 100644
>> --- a/tools/testing/selftests/bpf/Makefile
>> +++ b/tools/testing/selftests/bpf/Makefile
>> @@ -35,20 +35,15 @@ BPF_OBJ_FILES = \
>> 	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
>> -
>> -# 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 \
>> +	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_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_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
>> @@ -58,7 +53,7 @@ SUBREG_CODEGEN := $(shell echo "int cal(int a) { return a > 0; }" | \
>> 			$(LLC) -mattr=+alu32 -mcpu=probe 2>&1 | \
>> 			grep 'if w')
> 
> build and test servers can be different.
> Would it make sense to use -mcpu=v3 instead of -mcpu=probe ?

Have the same thoughts initially, but was worried the situation where doing native
bpf selftest, build/test on same machine and llvm is new but kernel is old.

I think remove the runtime kernel criteria make sense if for bpf selftest, separation
between build and test server are often, for example cross-compilation are used.

Will add a new patch to make this change.

> 
> Also while testing test_progs_32 fails like this:
> libbpf: failed to open ./bpf_flow.o: No such file or directory
> libbpf: failed to open ./test_spin_lock.o: No such file or directory
> test_spin_lock:bpf_prog_load errno 2
> 
> Do you see the same ?

Hmm, I haven’t see the same. This is expected to happen before this patch, but should
not after. Because bpf_flow and test_spin_lock were added after the initial JMP32 patch
set.

Noticed there is patch conflict between this patch and KaFai’s latest test_sock_fields
change. Perhaps this patch hasn’t been applied successfully when doing the test on your
env?

Regards,
Jiong

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next 3/3] selftests: bpf: centre kernel bpf objects under new subdir "kern_progs"
  2019-02-11  4:06   ` Alexei Starovoitov
@ 2019-02-11 11:47     ` Jiong Wang
  0 siblings, 0 replies; 8+ messages in thread
From: Jiong Wang @ 2019-02-11 11:47 UTC (permalink / raw)
  To: Alexei Starovoitov; +Cc: Daniel Borkmann, netdev, oss-drivers


> On 11 Feb 2019, at 04:06, Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote:
> 
> On Fri, Feb 08, 2019 at 05:41:21PM +0000, Jiong Wang wrote:
>> 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
>> "kern_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 +++++-----------------
>> .../selftests/bpf/{ => kern_progs}/bpf_flow.c      |  0
>> .../selftests/bpf/{ => kern_progs}/connect4_prog.c |  0
>> .../selftests/bpf/{ => kern_progs}/connect6_prog.c |  0
>> .../selftests/bpf/{ => kern_progs}/dev_cgroup.c    |  0
> 
> Thanks a lot for the patch.
> A tiny bit of bikeshedding...
> 'kern_progs' feels a bit too long and awkward to type.
> May be just 'progs’ ?

Ack, will do the change in v2.

Regards,
Jiong


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-02-11 11:47 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-08 17:41 [PATCH bpf-next 0/3] selftests: bpf: improve bpf object file rules Jiong Wang
2019-02-08 17:41 ` [PATCH bpf-next 1/3] selftests: bpf: add "alu32" to .gitignore Jiong Wang
2019-02-08 17:41 ` [PATCH bpf-next 2/3] selftests: bpf: extend sub-register mode compilation to all bpf object files Jiong Wang
2019-02-11  4:04   ` Alexei Starovoitov
2019-02-11 11:47     ` Jiong Wang
2019-02-08 17:41 ` [PATCH bpf-next 3/3] selftests: bpf: centre kernel bpf objects under new subdir "kern_progs" Jiong Wang
2019-02-11  4:06   ` Alexei Starovoitov
2019-02-11 11:47     ` Jiong Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).