BPF Archive on lore.kernel.org
 help / color / Atom feed
From: Andrii Nakryiko <andrii.nakryiko@gmail.com>
To: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
Cc: bpf <bpf@vger.kernel.org>, Jiri Benc <jbenc@redhat.com>,
	Jiri Olsa <jolsa@redhat.com>, Andrii Nakryiko <andriin@fb.com>,
	Daniel Borkmann <daniel@iogearbox.net>
Subject: Re: [PATCH 4/8] selftests/bpf: fix object files installation
Date: Thu, 28 May 2020 11:39:50 -0700
Message-ID: <CAEf4BzbgGnJ8d+q5KyjdXYMHFOoyi7UJpKWLS1t_oNh2dhKy+g@mail.gmail.com> (raw)
In-Reply-To: <xunyeer6ot1f.fsf@redhat.com>

On Tue, May 26, 2020 at 10:17 PM Yauheni Kaliuta
<yauheni.kaliuta@redhat.com> wrote:
>
> Hi, Andrii!
>
> >>>>> On Tue, 26 May 2020 15:30:19 -0700, Andrii Nakryiko  wrote:
>
>  > On Thu, May 21, 2020 at 9:14 PM Yauheni Kaliuta
>  > <yauheni.kaliuta@redhat.com> wrote:
>  >>
>  >> There are problems with bpf test programs object files:
>  >>
>  >> 1) some of them are build for flavored test runner and should be
>  >> installed in the subdirectory;
>  >> 2) it's possible that the same file mentioned several times (added
>  >> for every different unflavored test runner);
>  >> 3) some generated files are not treated properly.
>  >>
>  >> Fix 1) by adding subdirectory to the list. rsync -a in the install
>  >> target will handle it.
>  >>
>  >> Fix 2) by filtering the list. Performance should not matter for such
>  >> amount of files.
>  >>
>  >> Fix 3) by use proper (TEST_GEN_FILES) variable for the list.
>  >>
>  >> Fixes: 309b81f0fdc4 ("selftests/bpf: Install generated test progs")
>  >> Fixes: e47a179997ce ("bpf, testing: Add missing object file to
>  >> TEST_FILES")
>  >>
>  >> Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
>  >> ---
>  >> tools/testing/selftests/bpf/Makefile | 9 ++++++---
>  >> 1 file changed, 6 insertions(+), 3 deletions(-)
>  >>
>  >> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
>  >> index 19091dbc8ca4..1ba3d72c3261 100644
>  >> --- a/tools/testing/selftests/bpf/Makefile
>  >> +++ b/tools/testing/selftests/bpf/Makefile
>  >> @@ -42,8 +42,7 @@ ifneq ($(BPF_GCC),)
>  >> TEST_GEN_PROGS += test_progs-bpf_gcc
>  >> endif
>  >>
>  >> -TEST_GEN_FILES =
>  >> -TEST_FILES = test_lwt_ip_encap.o \
>  >> +TEST_GEN_FILES = test_lwt_ip_encap.o \
>  >> test_tc_edt.o
>  >>
>  >> BTF_C_FILES = $(wildcard progs/btf_dump_test_case_*.c)
>  >> @@ -273,7 +272,11 @@ TRUNNER_BPF_OBJS := $$(patsubst %.c,$$(TRUNNER_OUTPUT)/%.o, $$(TRUNNER_BPF_SRCS)
>  >> TRUNNER_BPF_SKELS := $$(patsubst %.c,$$(TRUNNER_OUTPUT)/%.skel.h,      \
>  >> $$(filter-out $(SKEL_BLACKLIST),       \
>  >> $$(TRUNNER_BPF_SRCS)))
>  >> -TEST_GEN_FILES += $$(TRUNNER_BPF_OBJS)
>  >> +
>  >> +TO_ADD := $(if $2,$$(TRUNNER_OUTPUT),$$(TRUNNER_BPF_OBJS))
>  >> +$$(foreach i,$$(TO_ADD),\
>  >> +       $$(eval \
>  >> +               TEST_GEN_FILES += $$(if $$(filter $$i,$$(TEST_GEN_FILES)),,$$i)))
>
>  > This makes me cringe. Can we not have three levels of nested
>  > evals, please? I also didn't get exactly what's the problem
>  > you are trying to solve, could you give some example, please?
>
> It's sort of `unique` functionality.

`unique` in make world is just $(sort $VAR). Isn't that a more
light-weight and generic way to avoid duplicates in lib.mk?

>
> With the current approach TEST_GEN_FILES has at least 2 copies of
> an object file (for call test_progs and test_maps) which is both
> inaccurate and increasing the length of the variable (even if
> copying the same file should not cause problems).
>
>
> (Without sub-directory handling it's even overwritten by
> flavoured binaries in between).
>
> BTW, how would you like to change $(call ...) with $(value ...)?
> It will get rid of one level of indirection but requires
> rule-specific variables for rule generation, since some
> evaluations are done in recipies.

I don't exactly understand the implications, so don't know. But the
less changes to this Makefile, the happier I am, so... :)

>
>  >>
>  >> # Evaluate rules now with extra TRUNNER_XXX variables above already defined
>  >> $$(eval $$(call DEFINE_TEST_RUNNER_RULES,$1,$2))
>  >> --
>  >> 2.26.2
>  >>
>
>
> --
> WBR,
> Yauheni Kaliuta
>

  reply index

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-22  4:13 [PATCH 0/8] selftests/bpf: installation and out of tree build fixes Yauheni Kaliuta
2020-05-22  4:13 ` [PATCH 1/8] selftests/bpf: remove test_align from Makefile Yauheni Kaliuta
2020-05-26 22:13   ` Andrii Nakryiko
2020-05-22  4:13 ` [PATCH 2/8] selftests/bpf: build bench.o for any $(OUTPUT) Yauheni Kaliuta
2020-05-26 22:13   ` Andrii Nakryiko
2020-05-27  4:54     ` Yauheni Kaliuta
2020-05-22  4:13 ` [PATCH 3/8] selftests/bpf: install btf .c files Yauheni Kaliuta
2020-05-22  4:13 ` [PATCH 4/8] selftests/bpf: fix object files installation Yauheni Kaliuta
2020-05-26 22:30   ` Andrii Nakryiko
2020-05-27  5:17     ` Yauheni Kaliuta
2020-05-28 18:39       ` Andrii Nakryiko [this message]
2020-05-28 18:46         ` Yauheni Kaliuta
2020-05-22  4:13 ` [PATCH 5/8] selftests/bpf: add output dir to include list Yauheni Kaliuta
2020-05-26 22:13   ` Andrii Nakryiko
2020-05-22  4:13 ` [PATCH 6/8] selftests/bpf: fix urandom_read installation Yauheni Kaliuta
2020-05-26 22:13   ` Andrii Nakryiko
2020-05-22  4:13 ` [PATCH 7/8] selftests/bpf: fix test.h placing for out of tree build Yauheni Kaliuta
2020-05-26 22:26   ` Andrii Nakryiko
2020-05-27  5:06     ` Yauheni Kaliuta
2020-05-22  4:13 ` [PATCH 8/8] selftests/bpf: factor out MKDIR rule Yauheni Kaliuta
2020-05-26 22:29   ` Andrii Nakryiko
2020-05-27  5:07     ` Yauheni Kaliuta
2020-05-22  6:40 ` [PATCH 0/8] selftests/bpf: installation and out of tree build fixes Yauheni Kaliuta
2020-05-22  8:19   ` [PATCH] selftests/bpf: split -extras target to -static and -gen Yauheni Kaliuta
2020-05-27  0:19     ` Andrii Nakryiko
2020-05-27  5:21       ` Yauheni Kaliuta
2020-05-27  5:37         ` Alexei Starovoitov
2020-05-27  7:19           ` Yauheni Kaliuta
2020-05-27 16:48             ` Alexei Starovoitov
2020-05-27 17:02               ` Yauheni Kaliuta
2020-05-27 17:05                 ` Alexei Starovoitov
2020-05-27 22:01                   ` shuah
2020-05-27 22:23                     ` Alexei Starovoitov
2020-05-28  8:05                       ` Jiri Benc
2020-05-28 10:56                         ` Greg KH
2020-05-28 16:14                           ` Alexei Starovoitov
2020-05-28 17:07                             ` Shuah Khan
2020-05-28 18:15                               ` Alexei Starovoitov
2020-05-28 18:29                                 ` Yauheni Kaliuta
2020-05-28 18:34                                   ` Alexei Starovoitov
2020-05-28 19:05                                     ` Shuah Khan
2020-05-28 18:59                                 ` Shuah Khan
2020-05-28 19:18                                   ` Alexei Starovoitov
2020-05-28 20:09                                     ` Shuah Khan
2020-05-28 22:47                                       ` Shuah Khan
2020-05-28 17:10                             ` Yauheni Kaliuta
2020-05-28 18:17                               ` Alexei Starovoitov
2020-05-28 19:09                               ` Shuah Khan
2020-05-28 19:20                                 ` Yauheni Kaliuta
2020-05-28 19:34                                   ` Shuah Khan
2020-05-26 21:48   ` [PATCH 0/8] selftests/bpf: installation and out of tree build fixes Daniel Borkmann
2020-05-27  4:45     ` Yauheni Kaliuta
2020-05-26 22:32   ` Andrii Nakryiko
2020-05-27  4:52     ` Yauheni Kaliuta
2020-05-27  5:04       ` Andrii Nakryiko
2020-05-27  7:25         ` Yauheni Kaliuta
2020-05-27  8:05           ` Yauheni Kaliuta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEf4BzbgGnJ8d+q5KyjdXYMHFOoyi7UJpKWLS1t_oNh2dhKy+g@mail.gmail.com \
    --to=andrii.nakryiko@gmail.com \
    --cc=andriin@fb.com \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=jbenc@redhat.com \
    --cc=jolsa@redhat.com \
    --cc=yauheni.kaliuta@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

BPF Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/bpf/0 bpf/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 bpf bpf/ https://lore.kernel.org/bpf \
		bpf@vger.kernel.org
	public-inbox-index bpf

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.bpf


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git