lkml.org 
[lkml]   [2020]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.8 191/232] selftests/bpf: Prevent runqslower from racing on building bpftool
    Date
    From: Andrii Nakryiko <andriin@fb.com>

    [ Upstream commit 6bcaf41f9613278cd5897fc80ab93033bda8efaa ]

    runqslower's Makefile is building/installing bpftool into
    $(OUTPUT)/sbin/bpftool, which coincides with $(DEFAULT_BPFTOOL). In practice
    this means that often when building selftests from scratch (after `make
    clean`), selftests are racing with runqslower to simultaneously build bpftool
    and one of the two processes fail due to file being busy. Prevent this race by
    explicitly order-depending on $(BPFTOOL_DEFAULT).

    Fixes: a2c9652f751e ("selftests: Refactor build to remove tools/lib/bpf from include path")
    Signed-off-by: Andrii Nakryiko <andriin@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: John Fastabend <john.fastabend@gmail.com>
    Link: https://lore.kernel.org/bpf/20200805004757.2960750-1-andriin@fb.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/testing/selftests/bpf/Makefile | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
    index 22aaec74ea0ab..dab182ffec320 100644
    --- a/tools/testing/selftests/bpf/Makefile
    +++ b/tools/testing/selftests/bpf/Makefile
    @@ -141,7 +141,9 @@ VMLINUX_BTF_PATHS := $(if $(O),$(O)/vmlinux) \
    /boot/vmlinux-$(shell uname -r)
    VMLINUX_BTF := $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))

    -$(OUTPUT)/runqslower: $(BPFOBJ)
    +DEFAULT_BPFTOOL := $(SCRATCH_DIR)/sbin/bpftool
    +
    +$(OUTPUT)/runqslower: $(BPFOBJ) | $(DEFAULT_BPFTOOL)
    $(Q)$(MAKE) $(submake_extras) -C $(TOOLSDIR)/bpf/runqslower \
    OUTPUT=$(SCRATCH_DIR)/ VMLINUX_BTF=$(VMLINUX_BTF) \
    BPFOBJ=$(BPFOBJ) BPF_INCLUDE=$(INCLUDE_DIR) && \
    @@ -163,7 +165,6 @@ $(OUTPUT)/test_netcnt: cgroup_helpers.c
    $(OUTPUT)/test_sock_fields: cgroup_helpers.c
    $(OUTPUT)/test_sysctl: cgroup_helpers.c

    -DEFAULT_BPFTOOL := $(SCRATCH_DIR)/sbin/bpftool
    BPFTOOL ?= $(DEFAULT_BPFTOOL)
    $(DEFAULT_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) \
    $(BPFOBJ) | $(BUILD_DIR)/bpftool
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-08-20 15:23    [W:3.162 / U:0.436 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site