linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next v3 1/2] selftests/bpf: Remove incorrect object path
@ 2024-01-27 13:33 Björn Töpel
  2024-01-27 13:33 ` [PATCH bpf-next v3 2/2] selftests/bpf: Make install target copy test_progs extra files Björn Töpel
  0 siblings, 1 reply; 4+ messages in thread
From: Björn Töpel @ 2024-01-27 13:33 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Mykola Lysenko, bpf, netdev
  Cc: Björn Töpel, linux-kselftest, linux-kernel

From: Björn Töpel <bjorn@rivosinc.com>

The glob path, progs/*.bpf.o, is no longer a correct path. The BPF
object files reside in the top directory, or in the per-flavor
directory (e.g. cpuv4).

Remove the incorrect object path.

Signed-off-by: Björn Töpel <bjorn@rivosinc.com>
---
 tools/testing/selftests/bpf/Makefile | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index fd15017ed3b1..830a34f0aa37 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -612,8 +612,7 @@ TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko	\
 		       $(OUTPUT)/uprobe_multi				\
 		       ima_setup.sh 					\
 		       verify_sig_setup.sh				\
-		       $(wildcard progs/btf_dump_test_case_*.c)		\
-		       $(wildcard progs/*.bpf.o)
+		       $(wildcard progs/btf_dump_test_case_*.c)
 TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
 TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS) -DENABLE_ATOMICS_TESTS
 $(eval $(call DEFINE_TEST_RUNNER,test_progs))

base-commit: fa7178b0f12e55a4f2d4906df3f25d6d4f88d962
-- 
2.40.1


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

* [PATCH bpf-next v3 2/2] selftests/bpf: Make install target copy test_progs extra files
  2024-01-27 13:33 [PATCH bpf-next v3 1/2] selftests/bpf: Remove incorrect object path Björn Töpel
@ 2024-01-27 13:33 ` Björn Töpel
  2024-01-27 13:47   ` Björn Töpel
  0 siblings, 1 reply; 4+ messages in thread
From: Björn Töpel @ 2024-01-27 13:33 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Mykola Lysenko, bpf, netdev
  Cc: Björn Töpel, linux-kselftest, linux-kernel

From: Björn Töpel <bjorn@rivosinc.com>

Currently, "make install" does not install the required test_progs
"extra files" (e.g. kernel modules, helper shell scripts, etc.) for
the BPF machine flavors (e.g. cpuv4).

Add the missing "extra files" dependencies to rsync, called from the
install target.

Unfortunately, kselftest does not use bash as the default shell, so
the globbering is limited. Blindly enabling "SHELL:=/bin/bash" for the
Makefile breaks in other places. Workaround by explicitly call
"/bin/bash" to expand the file globbing.

Signed-off-by: Björn Töpel <bjorn@rivosinc.com>
---
v3: Do not use hardcoded file names (Andrii)
v2: Added btf_dump_test_case files
---
 tools/testing/selftests/bpf/Makefile | 29 +++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index 830a34f0aa37..d66c689f0f3c 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -605,14 +605,15 @@ TRUNNER_EXTRA_SOURCES := test_progs.c		\
 			 json_writer.c 		\
 			 flow_dissector_load.h	\
 			 ip_check_defrag_frags.h
-TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko	\
-		       $(OUTPUT)/liburandom_read.so			\
-		       $(OUTPUT)/xdp_synproxy				\
-		       $(OUTPUT)/sign-file				\
-		       $(OUTPUT)/uprobe_multi				\
-		       ima_setup.sh 					\
-		       verify_sig_setup.sh				\
-		       $(wildcard progs/btf_dump_test_case_*.c)
+TRUNNER_PROGS_EXTRA_FILES:= $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko	\
+			    $(OUTPUT)/liburandom_read.so			\
+			    $(OUTPUT)/xdp_synproxy				\
+			    $(OUTPUT)/sign-file					\
+			    $(OUTPUT)/uprobe_multi				\
+			    ima_setup.sh					\
+			    verify_sig_setup.sh					\
+			    $(wildcard progs/btf_dump_test_case_*.c)
+TRUNNER_EXTRA_FILES := $(TRUNNER_PROGS_EXTRA_FILES)
 TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
 TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS) -DENABLE_ATOMICS_TESTS
 $(eval $(call DEFINE_TEST_RUNNER,test_progs))
@@ -740,11 +741,17 @@ EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(SCRATCH_DIR) $(HOST_SCRATCH_DIR)	\
 # Delete partially updated (corrupted) files on error
 .DELETE_ON_ERROR:
 
+space := $(subst ,, )
+comma := ,
+EXTRA_FILES_GLOB := {$(subst $(space),$(comma),$(notdir $(TRUNNER_PROGS_EXTRA_FILES)))}
 DEFAULT_INSTALL_RULE := $(INSTALL_RULE)
 override define INSTALL_RULE
 	$(DEFAULT_INSTALL_RULE)
-	@for DIR in $(TEST_INST_SUBDIRS); do		  \
-		mkdir -p $(INSTALL_PATH)/$$DIR;   \
-		rsync -a $(OUTPUT)/$$DIR/*.bpf.o $(INSTALL_PATH)/$$DIR;\
+	@for DIR in $(TEST_INST_SUBDIRS); do						\
+		mkdir -p $(INSTALL_PATH)/$$DIR;						\
+		rsync -a $(OUTPUT)/$$DIR/*.bpf.o $(INSTALL_PATH)/$$DIR;			\
+		rsync -a --copy-unsafe-links						\
+			$$(/bin/bash -c "echo $(OUTPUT)/$$DIR/$(EXTRA_FILE_GLOB)")	\
+			$(INSTALL_PATH)/$$DIR;						\
 	done
 endef
-- 
2.40.1


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

* Re: [PATCH bpf-next v3 2/2] selftests/bpf: Make install target copy test_progs extra files
  2024-01-27 13:33 ` [PATCH bpf-next v3 2/2] selftests/bpf: Make install target copy test_progs extra files Björn Töpel
@ 2024-01-27 13:47   ` Björn Töpel
  2024-01-28 12:20     ` Björn Töpel
  0 siblings, 1 reply; 4+ messages in thread
From: Björn Töpel @ 2024-01-27 13:47 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Mykola Lysenko, bpf, netdev
  Cc: Björn Töpel, linux-kselftest, linux-kernel

Björn Töpel <bjorn@kernel.org> writes:

> From: Björn Töpel <bjorn@rivosinc.com>
>
> Currently, "make install" does not install the required test_progs
> "extra files" (e.g. kernel modules, helper shell scripts, etc.) for
> the BPF machine flavors (e.g. cpuv4).
>
> Add the missing "extra files" dependencies to rsync, called from the
> install target.
>
> Unfortunately, kselftest does not use bash as the default shell, so
> the globbering is limited. Blindly enabling "SHELL:=/bin/bash" for the
> Makefile breaks in other places. Workaround by explicitly call
> "/bin/bash" to expand the file globbing.
>
> Signed-off-by: Björn Töpel <bjorn@rivosinc.com>
> ---
> v3: Do not use hardcoded file names (Andrii)
> v2: Added btf_dump_test_case files
> ---
>  tools/testing/selftests/bpf/Makefile | 29 +++++++++++++++++-----------
>  1 file changed, 18 insertions(+), 11 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> index 830a34f0aa37..d66c689f0f3c 100644
> --- a/tools/testing/selftests/bpf/Makefile
> +++ b/tools/testing/selftests/bpf/Makefile
> @@ -605,14 +605,15 @@ TRUNNER_EXTRA_SOURCES := test_progs.c		\
>  			 json_writer.c 		\
>  			 flow_dissector_load.h	\
>  			 ip_check_defrag_frags.h
> -TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko	\
> -		       $(OUTPUT)/liburandom_read.so			\
> -		       $(OUTPUT)/xdp_synproxy				\
> -		       $(OUTPUT)/sign-file				\
> -		       $(OUTPUT)/uprobe_multi				\
> -		       ima_setup.sh 					\
> -		       verify_sig_setup.sh				\
> -		       $(wildcard progs/btf_dump_test_case_*.c)
> +TRUNNER_PROGS_EXTRA_FILES:= $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko	\
> +			    $(OUTPUT)/liburandom_read.so			\
> +			    $(OUTPUT)/xdp_synproxy				\
> +			    $(OUTPUT)/sign-file					\
> +			    $(OUTPUT)/uprobe_multi				\
> +			    ima_setup.sh					\
> +			    verify_sig_setup.sh					\
> +			    $(wildcard progs/btf_dump_test_case_*.c)
> +TRUNNER_EXTRA_FILES := $(TRUNNER_PROGS_EXTRA_FILES)
>  TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
>  TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS) -DENABLE_ATOMICS_TESTS
>  $(eval $(call DEFINE_TEST_RUNNER,test_progs))
> @@ -740,11 +741,17 @@ EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(SCRATCH_DIR) $(HOST_SCRATCH_DIR)	\
>  # Delete partially updated (corrupted) files on error
>  .DELETE_ON_ERROR:
>  
> +space := $(subst ,, )
> +comma := ,
> +EXTRA_FILES_GLOB := {$(subst $(space),$(comma),$(notdir $(TRUNNER_PROGS_EXTRA_FILES)))}
>  DEFAULT_INSTALL_RULE := $(INSTALL_RULE)
>  override define INSTALL_RULE
>  	$(DEFAULT_INSTALL_RULE)
> -	@for DIR in $(TEST_INST_SUBDIRS); do		  \
> -		mkdir -p $(INSTALL_PATH)/$$DIR;   \
> -		rsync -a $(OUTPUT)/$$DIR/*.bpf.o $(INSTALL_PATH)/$$DIR;\
> +	@for DIR in $(TEST_INST_SUBDIRS); do						\
> +		mkdir -p $(INSTALL_PATH)/$$DIR;						\
> +		rsync -a $(OUTPUT)/$$DIR/*.bpf.o $(INSTALL_PATH)/$$DIR;			\
> +		rsync -a --copy-unsafe-links						\
> +			$$(/bin/bash -c "echo $(OUTPUT)/$$DIR/$(EXTRA_FILE_GLOB)")	\

Argh! Bad commit. EXTRA_FILE_GLOB should be EXTRA_FILES_GLOB. :-(

LMK if you can fix it up, or if you want me to resubmit.


Björn

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

* Re: [PATCH bpf-next v3 2/2] selftests/bpf: Make install target copy test_progs extra files
  2024-01-27 13:47   ` Björn Töpel
@ 2024-01-28 12:20     ` Björn Töpel
  0 siblings, 0 replies; 4+ messages in thread
From: Björn Töpel @ 2024-01-28 12:20 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Mykola Lysenko, bpf, netdev
  Cc: Björn Töpel, linux-kselftest, linux-kernel

Björn Töpel <bjorn@kernel.org> writes:

> Björn Töpel <bjorn@kernel.org> writes:
>
>> From: Björn Töpel <bjorn@rivosinc.com>
>>
>> Currently, "make install" does not install the required test_progs
>> "extra files" (e.g. kernel modules, helper shell scripts, etc.) for
>> the BPF machine flavors (e.g. cpuv4).
>>
>> Add the missing "extra files" dependencies to rsync, called from the
>> install target.
>>
>> Unfortunately, kselftest does not use bash as the default shell, so
>> the globbering is limited. Blindly enabling "SHELL:=/bin/bash" for the
>> Makefile breaks in other places. Workaround by explicitly call
>> "/bin/bash" to expand the file globbing.
>>
>> Signed-off-by: Björn Töpel <bjorn@rivosinc.com>
>> ---
>> v3: Do not use hardcoded file names (Andrii)
>> v2: Added btf_dump_test_case files
>> ---
>>  tools/testing/selftests/bpf/Makefile | 29 +++++++++++++++++-----------
>>  1 file changed, 18 insertions(+), 11 deletions(-)
>>
>> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
>> index 830a34f0aa37..d66c689f0f3c 100644
>> --- a/tools/testing/selftests/bpf/Makefile
>> +++ b/tools/testing/selftests/bpf/Makefile
>> @@ -605,14 +605,15 @@ TRUNNER_EXTRA_SOURCES := test_progs.c		\
>>  			 json_writer.c 		\
>>  			 flow_dissector_load.h	\
>>  			 ip_check_defrag_frags.h
>> -TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko	\
>> -		       $(OUTPUT)/liburandom_read.so			\
>> -		       $(OUTPUT)/xdp_synproxy				\
>> -		       $(OUTPUT)/sign-file				\
>> -		       $(OUTPUT)/uprobe_multi				\
>> -		       ima_setup.sh 					\
>> -		       verify_sig_setup.sh				\
>> -		       $(wildcard progs/btf_dump_test_case_*.c)
>> +TRUNNER_PROGS_EXTRA_FILES:= $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko	\
>> +			    $(OUTPUT)/liburandom_read.so			\
>> +			    $(OUTPUT)/xdp_synproxy				\
>> +			    $(OUTPUT)/sign-file					\
>> +			    $(OUTPUT)/uprobe_multi				\
>> +			    ima_setup.sh					\
>> +			    verify_sig_setup.sh					\
>> +			    $(wildcard progs/btf_dump_test_case_*.c)
>> +TRUNNER_EXTRA_FILES := $(TRUNNER_PROGS_EXTRA_FILES)
>>  TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
>>  TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS) -DENABLE_ATOMICS_TESTS
>>  $(eval $(call DEFINE_TEST_RUNNER,test_progs))
>> @@ -740,11 +741,17 @@ EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(SCRATCH_DIR) $(HOST_SCRATCH_DIR)	\
>>  # Delete partially updated (corrupted) files on error
>>  .DELETE_ON_ERROR:
>>  
>> +space := $(subst ,, )
>> +comma := ,
>> +EXTRA_FILES_GLOB := {$(subst $(space),$(comma),$(notdir $(TRUNNER_PROGS_EXTRA_FILES)))}
>>  DEFAULT_INSTALL_RULE := $(INSTALL_RULE)
>>  override define INSTALL_RULE
>>  	$(DEFAULT_INSTALL_RULE)
>> -	@for DIR in $(TEST_INST_SUBDIRS); do		  \
>> -		mkdir -p $(INSTALL_PATH)/$$DIR;   \
>> -		rsync -a $(OUTPUT)/$$DIR/*.bpf.o $(INSTALL_PATH)/$$DIR;\
>> +	@for DIR in $(TEST_INST_SUBDIRS); do						\
>> +		mkdir -p $(INSTALL_PATH)/$$DIR;						\
>> +		rsync -a $(OUTPUT)/$$DIR/*.bpf.o $(INSTALL_PATH)/$$DIR;			\
>> +		rsync -a --copy-unsafe-links						\
>> +			$$(/bin/bash -c "echo $(OUTPUT)/$$DIR/$(EXTRA_FILE_GLOB)")	\
>
> Argh! Bad commit. EXTRA_FILE_GLOB should be EXTRA_FILES_GLOB. :-(
>
> LMK if you can fix it up, or if you want me to resubmit.

...and bpftool is missing.

I'll spin a v4. :-(

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

end of thread, other threads:[~2024-01-28 12:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-27 13:33 [PATCH bpf-next v3 1/2] selftests/bpf: Remove incorrect object path Björn Töpel
2024-01-27 13:33 ` [PATCH bpf-next v3 2/2] selftests/bpf: Make install target copy test_progs extra files Björn Töpel
2024-01-27 13:47   ` Björn Töpel
2024-01-28 12:20     ` Björn Töpel

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).