linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/5] Enable BPF skeletons by default
@ 2023-09-14 21:19 Ian Rogers
  2023-09-14 21:19 ` [PATCH v1 1/5] perf version: Add status of bpf skeletons Ian Rogers
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Ian Rogers @ 2023-09-14 21:19 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, Nick Terrell, Nathan Chancellor,
	Nick Desaulniers, Tom Rix, Andrii Nakryiko, Tiezhu Yang,
	James Clark, Kajol Jain, Patrice Duroux, Athira Rajeev,
	linux-perf-users, linux-kernel, bpf, llvm

Enable BPF skeletons by default but warn don't fail if they can't be
supported. This was the intended behavior for Linux 6.4 but it caused
an issue captured in this thread:
https://lore.kernel.org/lkml/20230503211801.897735-1-acme@kernel.org/

This issue isn't repeated here as the previous issue related to
generating vmlinux.h, which is no longer performed by default as a
checked-in vmlinux.h is used instead.

Unlike with those changes, the BUILD_BPF_SKEL is kept and setting it
to 0 disables BPF skeletons. Also, rather than fail the build due to a
missed dependency, dependencies are checked and BPF skeletons disabled
if they aren't present.

Some related commits:
b7a2d774c9c5 perf build: Add ability to build with a generated vmlinux.h
a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
a2af0f6b8ef7 perf build: Add system include paths to BPF builds
5be6cecda080 perf bpf skels: Make vmlinux.h use bpf.h and perf_event.h in source directory
9a2d5178b9d5 Revert "perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL"
a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
1d7966547e11 perf build: Add warning for when vmlinux.h generation fails
a980755beb5a perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL

Ian Rogers (5):
  perf version: Add status of bpf skeletons
  perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps
  perf test: Update build test for changed BPF skeleton defaults
  perf test: Ensure EXTRA_TESTS is covered in build test
  perf test: Detect off-cpu support from build options

 tools/perf/Makefile.config              | 78 ++++++++++++++++---------
 tools/perf/Makefile.perf                |  8 +--
 tools/perf/builtin-version.c            |  1 +
 tools/perf/tests/make                   |  7 ++-
 tools/perf/tests/shell/record_offcpu.sh |  2 +-
 5 files changed, 59 insertions(+), 37 deletions(-)

-- 
2.42.0.459.ge4e396fd5e-goog


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

* [PATCH v1 1/5] perf version: Add status of bpf skeletons
  2023-09-14 21:19 [PATCH v1 0/5] Enable BPF skeletons by default Ian Rogers
@ 2023-09-14 21:19 ` Ian Rogers
  2023-09-14 21:19 ` [PATCH v1 2/5] perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps Ian Rogers
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Ian Rogers @ 2023-09-14 21:19 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, Nick Terrell, Nathan Chancellor,
	Nick Desaulniers, Tom Rix, Andrii Nakryiko, Tiezhu Yang,
	James Clark, Kajol Jain, Patrice Duroux, Athira Rajeev,
	linux-perf-users, linux-kernel, bpf, llvm

Add status for BPF skeletons, to see if a build has them enabled:
```
$ perf version --build-options
perf version 6.6.rc1.g0381ae36d1a6
                 dwarf: [ OFF ]  # HAVE_DWARF_SUPPORT
    dwarf_getlocations: [ OFF ]  # HAVE_DWARF_GETLOCATIONS_SUPPORT
         syscall_table: [ on  ]  # HAVE_SYSCALL_TABLE_SUPPORT
                libbfd: [ OFF ]  # HAVE_LIBBFD_SUPPORT
            debuginfod: [ OFF ]  # HAVE_DEBUGINFOD_SUPPORT
                libelf: [ OFF ]  # HAVE_LIBELF_SUPPORT
               libnuma: [ OFF ]  # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ OFF ]  # HAVE_LIBNUMA_SUPPORT
               libperl: [ on  ]  # HAVE_LIBPERL_SUPPORT
             libpython: [ on  ]  # HAVE_LIBPYTHON_SUPPORT
              libslang: [ on  ]  # HAVE_SLANG_SUPPORT
             libcrypto: [ on  ]  # HAVE_LIBCRYPTO_SUPPORT
             libunwind: [ OFF ]  # HAVE_LIBUNWIND_SUPPORT
    libdw-dwarf-unwind: [ OFF ]  # HAVE_DWARF_SUPPORT
                  zlib: [ on  ]  # HAVE_ZLIB_SUPPORT
                  lzma: [ on  ]  # HAVE_LZMA_SUPPORT
             get_cpuid: [ on  ]  # HAVE_AUXTRACE_SUPPORT
                   bpf: [ OFF ]  # HAVE_LIBBPF_SUPPORT
                   aio: [ on  ]  # HAVE_AIO_SUPPORT
                  zstd: [ on  ]  # HAVE_ZSTD_SUPPORT
               libpfm4: [ on  ]  # HAVE_LIBPFM
         libtraceevent: [ on  ]  # HAVE_LIBTRACEEVENT
         bpf_skeletons: [ OFF ]  # HAVE_BPF_SKEL
```

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/builtin-version.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/perf/builtin-version.c b/tools/perf/builtin-version.c
index e5859c70e195..ac20c2b9bbc2 100644
--- a/tools/perf/builtin-version.c
+++ b/tools/perf/builtin-version.c
@@ -81,6 +81,7 @@ static void library_status(void)
 	STATUS(HAVE_ZSTD_SUPPORT, zstd);
 	STATUS(HAVE_LIBPFM, libpfm4);
 	STATUS(HAVE_LIBTRACEEVENT, libtraceevent);
+	STATUS(HAVE_BPF_SKEL, bpf_skeletons);
 }
 
 int cmd_version(int argc, const char **argv)
-- 
2.42.0.459.ge4e396fd5e-goog


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

* [PATCH v1 2/5] perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps
  2023-09-14 21:19 [PATCH v1 0/5] Enable BPF skeletons by default Ian Rogers
  2023-09-14 21:19 ` [PATCH v1 1/5] perf version: Add status of bpf skeletons Ian Rogers
@ 2023-09-14 21:19 ` Ian Rogers
  2023-09-14 21:19 ` [PATCH v1 3/5] perf test: Update build test for changed BPF skeleton defaults Ian Rogers
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Ian Rogers @ 2023-09-14 21:19 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, Nick Terrell, Nathan Chancellor,
	Nick Desaulniers, Tom Rix, Andrii Nakryiko, Tiezhu Yang,
	James Clark, Kajol Jain, Patrice Duroux, Athira Rajeev,
	linux-perf-users, linux-kernel, bpf, llvm

LIBBPF is dependent on zlib so move the NO_ZLIB and feature check
early to avoid statically building when zlib is disabled. This avoids
a linkage failure with perf and static libbpf when zlib isn't
specified.

Move BUILD_BPF_SKEL logic to one place and if not defined set
BUILD_BPF_SKEL to 1. Detect dependencies of building with BPF
skeletons and warn/disable if the dependencies aren't present.

Change Makefile.perf to contain BPF skeleton logic dependent on the
Makefile.config result and refresh the comment about BUILD_BPF_SKEL.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/Makefile.config | 78 ++++++++++++++++++++++++--------------
 tools/perf/Makefile.perf   |  8 ++--
 2 files changed, 53 insertions(+), 33 deletions(-)

diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index d66b52407e19..f5ccbfc1a444 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -216,12 +216,6 @@ ifeq ($(call get-executable,$(BISON)),)
   dummy := $(error Error: $(BISON) is missing on this system, please install it)
 endif
 
-ifeq ($(BUILD_BPF_SKEL),1)
-  ifeq ($(call get-executable,$(CLANG)),)
-    dummy := $(error $(CLANG) is missing on this system, please install it to be able to build with BUILD_BPF_SKEL=1)
-  endif
-endif
-
 ifneq ($(OUTPUT),)
   ifeq ($(shell expr $(shell $(BISON) --version | grep bison | sed -e 's/.\+ \([0-9]\+\).\([0-9]\+\).\([0-9]\+\)/\1\2\3/g') \>\= 371), 1)
     BISON_FILE_PREFIX_MAP := --file-prefix-map=$(OUTPUT)=
@@ -530,6 +524,16 @@ ifdef CORESIGHT
   endif
 endif
 
+ifndef NO_ZLIB
+  ifeq ($(feature-zlib), 1)
+    CFLAGS += -DHAVE_ZLIB_SUPPORT
+    EXTLIBS += -lz
+    $(call detected,CONFIG_ZLIB)
+  else
+    NO_ZLIB := 1
+  endif
+endif
+
 ifndef NO_LIBELF
   CFLAGS += -DHAVE_LIBELF_SUPPORT
   EXTLIBS += -lelf
@@ -571,22 +575,28 @@ ifndef NO_LIBELF
 
   ifndef NO_LIBBPF
     ifeq ($(feature-bpf), 1)
-      CFLAGS += -DHAVE_LIBBPF_SUPPORT
-      $(call detected,CONFIG_LIBBPF)
-
       # detecting libbpf without LIBBPF_DYNAMIC, so make VF=1 shows libbpf detection status
       $(call feature_check,libbpf)
 
       ifdef LIBBPF_DYNAMIC
         ifeq ($(feature-libbpf), 1)
           EXTLIBS += -lbpf
+          CFLAGS += -DHAVE_LIBBPF_SUPPORT
+          $(call detected,CONFIG_LIBBPF)
           $(call detected,CONFIG_LIBBPF_DYNAMIC)
         else
           dummy := $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel);
         endif
       else
-        # Libbpf will be built as a static library from tools/lib/bpf.
-	LIBBPF_STATIC := 1
+        ifeq ($(NO_ZLIB), 1)
+          dummy := $(warning Warning: Statically building libbpf not possible as zlib is missing)
+          NO_LIBBPF := 1
+        else
+          # Libbpf will be built as a static library from tools/lib/bpf.
+          LIBBPF_STATIC := 1
+          $(call detected,CONFIG_LIBBPF)
+          CFLAGS += -DHAVE_LIBBPF_SUPPORT
+        endif
       endif
     endif
   endif # NO_LIBBPF
@@ -663,16 +673,36 @@ ifndef NO_LIBBPF
   endif
 endif
 
-ifdef BUILD_BPF_SKEL
-  $(call feature_check,clang-bpf-co-re)
-  ifeq ($(feature-clang-bpf-co-re), 0)
-    dummy := $(error Error: clang too old/not installed. Please install recent clang to build with BUILD_BPF_SKEL)
-  endif
+ifndef BUILD_BPF_SKEL
+  # BPF skeletons control a large number of perf features, by default
+  # they are enabled.
+  BUILD_BPF_SKEL := 1
+endif
+
+ifeq ($(BUILD_BPF_SKEL),1)
   ifeq ($(filter -DHAVE_LIBBPF_SUPPORT, $(CFLAGS)),)
-    dummy := $(error Error: BPF skeleton support requires libbpf)
+    dummy := $(warning Warning: Disabled BPF skeletons as libbpf is required)
+    BUILD_BPF_SKEL := 0
+  else ifeq ($(filter -DHAVE_LIBELF_SUPPORT, $(CFLAGS)),)
+    dummy := $(warning Warning: Disabled BPF skeletons as libelf is required by bpftool)
+    BUILD_BPF_SKEL := 0
+  else ifeq ($(filter -DHAVE_ZLIB_SUPPORT, $(CFLAGS)),)
+    dummy := $(warning Warning: Disabled BPF skeletons as zlib is required by bpftool)
+    BUILD_BPF_SKEL := 0
+  else ifeq ($(call get-executable,$(CLANG)),)
+    dummy := $(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
+    BUILD_BPF_SKEL := 0
+  else
+    $(call feature_check,clang-bpf-co-re)
+    ifeq ($(feature-clang-bpf-co-re), 0)
+      dummy := $(warning Warning: Disabled BPF skeletons as clang is too old)
+      BUILD_BPF_SKEL := 0
+    endif
+  endif
+  ifeq ($(BUILD_BPF_SKEL),1)
+    $(call detected,CONFIG_PERF_BPF_SKEL)
+    CFLAGS += -DHAVE_BPF_SKEL
   endif
-  $(call detected,CONFIG_PERF_BPF_SKEL)
-  CFLAGS += -DHAVE_BPF_SKEL
 endif
 
 ifndef GEN_VMLINUX_H
@@ -946,16 +976,6 @@ ifndef NO_DEMANGLE
   endif
 endif
 
-ifndef NO_ZLIB
-  ifeq ($(feature-zlib), 1)
-    CFLAGS += -DHAVE_ZLIB_SUPPORT
-    EXTLIBS += -lz
-    $(call detected,CONFIG_ZLIB)
-  else
-    NO_ZLIB := 1
-  endif
-endif
-
 ifndef NO_LZMA
   ifeq ($(feature-lzma), 1)
     CFLAGS += -DHAVE_LZMA_SUPPORT
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 8d0f6d2bbc7a..98604e396ac3 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -120,7 +120,7 @@ include ../scripts/utilities.mak
 #
 # Define NO_LIBDEBUGINFOD if you do not want support debuginfod
 #
-# Define BUILD_BPF_SKEL to enable BPF skeletons
+# Set BUILD_BPF_SKEL to 0 to override BUILD_BPF_SKEL and not build BPF skeletons
 #
 # Define BUILD_NONDISTRO to enable building an linking against libbfd and
 # libiberty distribution license incompatible libraries.
@@ -1042,7 +1042,7 @@ SKELETONS += $(SKEL_OUT)/augmented_raw_syscalls.skel.h
 $(SKEL_TMP_OUT) $(LIBAPI_OUTPUT) $(LIBBPF_OUTPUT) $(LIBPERF_OUTPUT) $(LIBSUBCMD_OUTPUT) $(LIBSYMBOL_OUTPUT):
 	$(Q)$(MKDIR) -p $@
 
-ifdef BUILD_BPF_SKEL
+ifeq ($(CONFIG_PERF_BPF_SKEL),y)
 BPFTOOL := $(SKEL_TMP_OUT)/bootstrap/bpftool
 # Get Clang's default includes on this system, as opposed to those seen by
 # '--target=bpf'. This fixes "missing" files on some architectures/distros,
@@ -1120,11 +1120,11 @@ bpf-skel: $(SKELETONS)
 
 .PRECIOUS: $(SKEL_TMP_OUT)/%.bpf.o
 
-else # BUILD_BPF_SKEL
+else # CONFIG_PERF_BPF_SKEL
 
 bpf-skel:
 
-endif # BUILD_BPF_SKEL
+endif # CONFIG_PERF_BPF_SKEL
 
 bpf-skel-clean:
 	$(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS)
-- 
2.42.0.459.ge4e396fd5e-goog


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

* [PATCH v1 3/5] perf test: Update build test for changed BPF skeleton defaults
  2023-09-14 21:19 [PATCH v1 0/5] Enable BPF skeletons by default Ian Rogers
  2023-09-14 21:19 ` [PATCH v1 1/5] perf version: Add status of bpf skeletons Ian Rogers
  2023-09-14 21:19 ` [PATCH v1 2/5] perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps Ian Rogers
@ 2023-09-14 21:19 ` Ian Rogers
  2023-09-14 21:19 ` [PATCH v1 4/5] perf test: Ensure EXTRA_TESTS is covered in build test Ian Rogers
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Ian Rogers @ 2023-09-14 21:19 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, Nick Terrell, Nathan Chancellor,
	Nick Desaulniers, Tom Rix, Andrii Nakryiko, Tiezhu Yang,
	James Clark, Kajol Jain, Patrice Duroux, Athira Rajeev,
	linux-perf-users, linux-kernel, bpf, llvm

Fix a target name and set BUILD_BPF_SKEL to 0 rather than 1.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/make | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/tests/make b/tools/perf/tests/make
index ea4c341f5af1..a3a0f2a8bba0 100644
--- a/tools/perf/tests/make
+++ b/tools/perf/tests/make
@@ -70,8 +70,8 @@ make_python_perf_so := $(python_perf_so)
 make_debug          := DEBUG=1
 make_nondistro      := BUILD_NONDISTRO=1
 make_extra_tests    := EXTRA_TESTS=1
-make_bpf_skel       := BUILD_BPF_SKEL=1
-make_gen_vmlinux_h  := BUILD_BPF_SKEL=1 GEN_VMLINUX_H=1
+make_no_bpf_skel    := BUILD_BPF_SKEL=0
+make_gen_vmlinux_h  := GEN_VMLINUX_H=1
 make_no_libperl     := NO_LIBPERL=1
 make_no_libpython   := NO_LIBPYTHON=1
 make_no_scripts     := NO_LIBPYTHON=1 NO_LIBPERL=1
@@ -138,7 +138,7 @@ endif
 run += make_python_perf_so
 run += make_debug
 run += make_nondistro
-run += make_build_bpf_skel
+run += make_no_bpf_skel
 run += make_gen_vmlinux_h
 run += make_no_libperl
 run += make_no_libpython
-- 
2.42.0.459.ge4e396fd5e-goog


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

* [PATCH v1 4/5] perf test: Ensure EXTRA_TESTS is covered in build test
  2023-09-14 21:19 [PATCH v1 0/5] Enable BPF skeletons by default Ian Rogers
                   ` (2 preceding siblings ...)
  2023-09-14 21:19 ` [PATCH v1 3/5] perf test: Update build test for changed BPF skeleton defaults Ian Rogers
@ 2023-09-14 21:19 ` Ian Rogers
  2023-09-18 23:34   ` Namhyung Kim
  2023-09-14 21:19 ` [PATCH v1 5/5] perf test: Detect off-cpu support from build options Ian Rogers
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Ian Rogers @ 2023-09-14 21:19 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, Nick Terrell, Nathan Chancellor,
	Nick Desaulniers, Tom Rix, Andrii Nakryiko, Tiezhu Yang,
	James Clark, Kajol Jain, Patrice Duroux, Athira Rajeev,
	linux-perf-users, linux-kernel, bpf, llvm

Add to run variable.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/make | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/perf/tests/make b/tools/perf/tests/make
index a3a0f2a8bba0..d9945ed25bc5 100644
--- a/tools/perf/tests/make
+++ b/tools/perf/tests/make
@@ -138,6 +138,7 @@ endif
 run += make_python_perf_so
 run += make_debug
 run += make_nondistro
+run += make_extra_tests
 run += make_no_bpf_skel
 run += make_gen_vmlinux_h
 run += make_no_libperl
-- 
2.42.0.459.ge4e396fd5e-goog


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

* [PATCH v1 5/5] perf test: Detect off-cpu support from build options
  2023-09-14 21:19 [PATCH v1 0/5] Enable BPF skeletons by default Ian Rogers
                   ` (3 preceding siblings ...)
  2023-09-14 21:19 ` [PATCH v1 4/5] perf test: Ensure EXTRA_TESTS is covered in build test Ian Rogers
@ 2023-09-14 21:19 ` Ian Rogers
  2023-09-18 23:40 ` [PATCH v1 0/5] Enable BPF skeletons by default Namhyung Kim
  2023-09-19  1:46 ` Yang Jihong
  6 siblings, 0 replies; 14+ messages in thread
From: Ian Rogers @ 2023-09-14 21:19 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, Nick Terrell, Nathan Chancellor,
	Nick Desaulniers, Tom Rix, Andrii Nakryiko, Tiezhu Yang,
	James Clark, Kajol Jain, Patrice Duroux, Athira Rajeev,
	linux-perf-users, linux-kernel, bpf, llvm

Use perf version to detect whether BPF skeletons were enabled in a
build rather than a failing perf record.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/shell/record_offcpu.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/tests/shell/record_offcpu.sh b/tools/perf/tests/shell/record_offcpu.sh
index a0d14cd0aa79..a1ef8f0d2b5c 100755
--- a/tools/perf/tests/shell/record_offcpu.sh
+++ b/tools/perf/tests/shell/record_offcpu.sh
@@ -28,7 +28,7 @@ test_offcpu_priv() {
     err=2
     return
   fi
-  if perf record --off-cpu -o /dev/null --quiet true 2>&1 | grep BUILD_BPF_SKEL
+  if perf version --build-options 2>&1 | grep HAVE_BPF_SKEL | grep -q OFF
   then
     echo "off-cpu test [Skipped missing BPF support]"
     err=2
-- 
2.42.0.459.ge4e396fd5e-goog


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

* Re: [PATCH v1 4/5] perf test: Ensure EXTRA_TESTS is covered in build test
  2023-09-14 21:19 ` [PATCH v1 4/5] perf test: Ensure EXTRA_TESTS is covered in build test Ian Rogers
@ 2023-09-18 23:34   ` Namhyung Kim
  2023-09-19  2:15     ` Ian Rogers
  0 siblings, 1 reply; 14+ messages in thread
From: Namhyung Kim @ 2023-09-18 23:34 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
	Nick Terrell, Nathan Chancellor, Nick Desaulniers, Tom Rix,
	Andrii Nakryiko, Tiezhu Yang, James Clark, Kajol Jain,
	Patrice Duroux, Athira Rajeev, linux-perf-users, linux-kernel,
	bpf, llvm

Hi Ian,

On Thu, Sep 14, 2023 at 2:20 PM Ian Rogers <irogers@google.com> wrote:
>
> Add to run variable.
>
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  tools/perf/tests/make | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> index a3a0f2a8bba0..d9945ed25bc5 100644
> --- a/tools/perf/tests/make
> +++ b/tools/perf/tests/make
> @@ -138,6 +138,7 @@ endif
>  run += make_python_perf_so
>  run += make_debug
>  run += make_nondistro
> +run += make_extra_tests

I'm curious why it's missed.. I couldn't find a commit to delete it.
Maybe due to an incorrect resolution of a merge conflict?

Thanks,
Namhyung


>  run += make_no_bpf_skel
>  run += make_gen_vmlinux_h
>  run += make_no_libperl
> --
> 2.42.0.459.ge4e396fd5e-goog
>

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

* Re: [PATCH v1 0/5] Enable BPF skeletons by default
  2023-09-14 21:19 [PATCH v1 0/5] Enable BPF skeletons by default Ian Rogers
                   ` (4 preceding siblings ...)
  2023-09-14 21:19 ` [PATCH v1 5/5] perf test: Detect off-cpu support from build options Ian Rogers
@ 2023-09-18 23:40 ` Namhyung Kim
  2023-09-19 13:16   ` Arnaldo Carvalho de Melo
  2023-09-19  1:46 ` Yang Jihong
  6 siblings, 1 reply; 14+ messages in thread
From: Namhyung Kim @ 2023-09-18 23:40 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
	Nick Terrell, Nathan Chancellor, Nick Desaulniers, Tom Rix,
	Andrii Nakryiko, Tiezhu Yang, James Clark, Kajol Jain,
	Patrice Duroux, Athira Rajeev, linux-perf-users, linux-kernel,
	bpf, llvm

On Thu, Sep 14, 2023 at 2:20 PM Ian Rogers <irogers@google.com> wrote:
>
> Enable BPF skeletons by default but warn don't fail if they can't be
> supported. This was the intended behavior for Linux 6.4 but it caused
> an issue captured in this thread:
> https://lore.kernel.org/lkml/20230503211801.897735-1-acme@kernel.org/
>
> This issue isn't repeated here as the previous issue related to
> generating vmlinux.h, which is no longer performed by default as a
> checked-in vmlinux.h is used instead.
>
> Unlike with those changes, the BUILD_BPF_SKEL is kept and setting it
> to 0 disables BPF skeletons. Also, rather than fail the build due to a
> missed dependency, dependencies are checked and BPF skeletons disabled
> if they aren't present.
>
> Some related commits:
> b7a2d774c9c5 perf build: Add ability to build with a generated vmlinux.h
> a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> a2af0f6b8ef7 perf build: Add system include paths to BPF builds
> 5be6cecda080 perf bpf skels: Make vmlinux.h use bpf.h and perf_event.h in source directory
> 9a2d5178b9d5 Revert "perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL"
> a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> 1d7966547e11 perf build: Add warning for when vmlinux.h generation fails
> a980755beb5a perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL
>
> Ian Rogers (5):
>   perf version: Add status of bpf skeletons
>   perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps
>   perf test: Update build test for changed BPF skeleton defaults
>   perf test: Ensure EXTRA_TESTS is covered in build test
>   perf test: Detect off-cpu support from build options

Tested-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

>
>  tools/perf/Makefile.config              | 78 ++++++++++++++++---------
>  tools/perf/Makefile.perf                |  8 +--
>  tools/perf/builtin-version.c            |  1 +
>  tools/perf/tests/make                   |  7 ++-
>  tools/perf/tests/shell/record_offcpu.sh |  2 +-
>  5 files changed, 59 insertions(+), 37 deletions(-)
>
> --
> 2.42.0.459.ge4e396fd5e-goog
>

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

* Re: [PATCH v1 0/5] Enable BPF skeletons by default
  2023-09-14 21:19 [PATCH v1 0/5] Enable BPF skeletons by default Ian Rogers
                   ` (5 preceding siblings ...)
  2023-09-18 23:40 ` [PATCH v1 0/5] Enable BPF skeletons by default Namhyung Kim
@ 2023-09-19  1:46 ` Yang Jihong
  6 siblings, 0 replies; 14+ messages in thread
From: Yang Jihong @ 2023-09-19  1:46 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Adrian Hunter, Nick Terrell, Nathan Chancellor, Nick Desaulniers,
	Tom Rix, Andrii Nakryiko, Tiezhu Yang, James Clark, Kajol Jain,
	Patrice Duroux, Athira Rajeev, linux-perf-users, linux-kernel,
	bpf, llvm

Hello,

On 2023/9/15 5:19, Ian Rogers wrote:
> Enable BPF skeletons by default but warn don't fail if they can't be
> supported. This was the intended behavior for Linux 6.4 but it caused
> an issue captured in this thread:
> https://lore.kernel.org/lkml/20230503211801.897735-1-acme@kernel.org/
> 
> This issue isn't repeated here as the previous issue related to
> generating vmlinux.h, which is no longer performed by default as a
> checked-in vmlinux.h is used instead.
> 
> Unlike with those changes, the BUILD_BPF_SKEL is kept and setting it
> to 0 disables BPF skeletons. Also, rather than fail the build due to a
> missed dependency, dependencies are checked and BPF skeletons disabled
> if they aren't present.
> 
> Some related commits:
> b7a2d774c9c5 perf build: Add ability to build with a generated vmlinux.h
> a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> a2af0f6b8ef7 perf build: Add system include paths to BPF builds
> 5be6cecda080 perf bpf skels: Make vmlinux.h use bpf.h and perf_event.h in source directory
> 9a2d5178b9d5 Revert "perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL"
> a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> 1d7966547e11 perf build: Add warning for when vmlinux.h generation fails
> a980755beb5a perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL
> 
> Ian Rogers (5):
>    perf version: Add status of bpf skeletons
>    perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps
>    perf test: Update build test for changed BPF skeleton defaults
>    perf test: Ensure EXTRA_TESTS is covered in build test
>    perf test: Detect off-cpu support from build options
> 
>   tools/perf/Makefile.config              | 78 ++++++++++++++++---------
>   tools/perf/Makefile.perf                |  8 +--
>   tools/perf/builtin-version.c            |  1 +
>   tools/perf/tests/make                   |  7 ++-
>   tools/perf/tests/shell/record_offcpu.sh |  2 +-
>   5 files changed, 59 insertions(+), 37 deletions(-)
> 

Thanks for the patchset. The kwork feature has been tested, as show in 
link[1].

Tested-by: Yang Jihong <yangjihong1@huawei.com>

[1]:
# perf version --build-options
perf version 6.6.rc1.g33ee1c1436b6
                  dwarf: [ on  ]  # HAVE_DWARF_SUPPORT
     dwarf_getlocations: [ on  ]  # HAVE_DWARF_GETLOCATIONS_SUPPORT
          syscall_table: [ on  ]  # HAVE_SYSCALL_TABLE_SUPPORT
                 libbfd: [ OFF ]  # HAVE_LIBBFD_SUPPORT
             debuginfod: [ OFF ]  # HAVE_DEBUGINFOD_SUPPORT
                 libelf: [ on  ]  # HAVE_LIBELF_SUPPORT
                libnuma: [ on  ]  # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ on  ]  # HAVE_LIBNUMA_SUPPORT
                libperl: [ on  ]  # HAVE_LIBPERL_SUPPORT
              libpython: [ OFF ]  # HAVE_LIBPYTHON_SUPPORT
               libslang: [ OFF ]  # HAVE_SLANG_SUPPORT
              libcrypto: [ on  ]  # HAVE_LIBCRYPTO_SUPPORT
              libunwind: [ on  ]  # HAVE_LIBUNWIND_SUPPORT
     libdw-dwarf-unwind: [ on  ]  # HAVE_DWARF_SUPPORT
                   zlib: [ on  ]  # HAVE_ZLIB_SUPPORT
                   lzma: [ on  ]  # HAVE_LZMA_SUPPORT
              get_cpuid: [ on  ]  # HAVE_AUXTRACE_SUPPORT
                    bpf: [ on  ]  # HAVE_LIBBPF_SUPPORT
                    aio: [ on  ]  # HAVE_AIO_SUPPORT
                   zstd: [ on  ]  # HAVE_ZSTD_SUPPORT
                libpfm4: [ OFF ]  # HAVE_LIBPFM
          libtraceevent: [ on  ]  # HAVE_LIBTRACEEVENT
          bpf_skeletons: [ on  ]  # HAVE_BPF_SKEL
# perf kwork rep -b
Starting trace, Hit <Ctrl+C> to stop and report
^C
   Kwork Name                     | Cpu  | Total Runtime | Count     | 
Max runtime   | Max runtime start   | Max runtime end     |
 
--------------------------------------------------------------------------------------------------------------------------------
   (w)flush_to_ldisc              | 0003 |      2.188 ms |         2 | 
     1.685 ms |      49451.331861 s |      49451.333546 s |
   (s)NET_RX:3                    | 0002 |      1.278 ms |         3 | 
     0.517 ms |      49451.336568 s |      49451.337085 s |
   (s)SCHED:7                     | 0000 |      1.098 ms |         4 | 
     0.880 ms |      49451.332413 s |      49451.333293 s |
   (w)flush_to_ldisc              | 0003 |      1.081 ms |         1 | 
     1.081 ms |      49452.548841 s |      49452.549922 s |
   (s)RCU:9                       | 0001 |      0.894 ms |         2 | 
     0.864 ms |      49451.333580 s |      49451.334443 s |
   (s)SCHED:7                     | 0002 |      0.803 ms |         3 | 
     0.606 ms |      49452.551313 s |      49452.551918 s |
   (s)SCHED:7                     | 0001 |      0.452 ms |         3 | 
     0.278 ms |      49452.547514 s |      49452.547792 s |
   eth0:10                        | 0002 |      0.429 ms |         2 | 
     0.280 ms |      49451.336029 s |      49451.336309 s |
   (w)vmstat_shepherd             | 0000 |      0.402 ms |         1 | 
     0.402 ms |      49452.551022 s |      49452.551424 s |
   (s)TIMER:1                     | 0005 |      0.292 ms |         2 | 
     0.157 ms |      49452.168443 s |      49452.168600 s |
   (s)SCHED:7                     | 0005 |      0.175 ms |         2 | 
     0.098 ms |      49452.168614 s |      49452.168711 s |
   (s)TIMER:1                     | 0000 |      0.165 ms |         2 | 
     0.116 ms |      49452.550736 s |      49452.550852 s |
   (s)RCU:9                       | 0000 |      0.155 ms |         3 | 
     0.070 ms |      49451.339213 s |      49451.339282 s |
   (s)TIMER:1                     | 0006 |      0.153 ms |         2 | 
     0.087 ms |      49451.334483 s |      49451.334570 s |
   (s)TIMER:1                     | 0002 |      0.149 ms |         1 | 
     0.149 ms |      49452.546829 s |      49452.546978 s |
   (s)TIMER:1                     | 0004 |      0.141 ms |         1 | 
     0.141 ms |      49452.552581 s |      49452.552722 s |
   (w)vmstat_update               | 0002 |      0.139 ms |         1 | 
     0.139 ms |      49452.547366 s |      49452.547505 s |
   (s)RCU:9                       | 0004 |      0.139 ms |         2 | 
     0.106 ms |      49452.553196 s |      49452.553302 s |
   virtio0-requests:25            | 0000 |      0.123 ms |         1 | 
     0.123 ms |      49452.550544 s |      49452.550667 s |
   (s)RCU:9                       | 0003 |      0.092 ms |         2 | 
     0.063 ms |      49451.334604 s |      49451.334667 s |
   (s)SCHED:7                     | 0003 |      0.086 ms |         1 | 
     0.086 ms |      49452.549525 s |      49452.549611 s |
   (s)TIMER:1                     | 0001 |      0.081 ms |         1 | 
     0.081 ms |      49451.544545 s |      49451.544626 s |
   (s)TIMER:1                     | 0003 |      0.079 ms |         1 | 
     0.079 ms |      49452.549420 s |      49452.549499 s |
   (w)vmstat_update               | 0000 |      0.060 ms |         1 | 
     0.060 ms |      49452.551474 s |      49452.551534 s |
   (s)RCU:9                       | 0002 |      0.047 ms |         1 | 
     0.047 ms |      49452.547171 s |      49452.547217 s |
   (s)RCU:9                       | 0005 |      0.035 ms |         1 | 
     0.035 ms |      49451.664719 s |      49451.664754 s |
   (s)RCU:9                       | 0006 |      0.029 ms |         1 | 
     0.029 ms |      49451.334593 s |      49451.334622 s |
 
--------------------------------------------------------------------------------------------------------------------------------

# perf kwork lat -b
Starting trace, Hit <Ctrl+C> to stop and report
^C
   Kwork Name                     | Cpu  | Avg delay     | Count     | 
Max delay     | Max delay start     | Max delay end       |
 
--------------------------------------------------------------------------------------------------------------------------------
   (w)vmstat_update               | 0005 |      1.444 ms |         1 | 
     1.444 ms |      49459.360837 s |      49459.362281 s |
   (w)disk_events_workfn          | 0005 |      0.745 ms |         1 | 
     0.745 ms |      49459.360745 s |      49459.361490 s |
   (w)e1000_watchdog              | 0002 |      0.745 ms |         1 | 
     0.745 ms |      49459.360745 s |      49459.361490 s |
   (w)blk_mq_timeout_work         | 0005 |      0.683 ms |         1 | 
     0.683 ms |      49457.632872 s |      49457.633555 s |
   (s)RCU:9                       | 0004 |      0.669 ms |         2 | 
     0.967 ms |      49457.484382 s |      49457.485349 s |
   (s)RCU:9                       | 0005 |      0.570 ms |         1 | 
     0.570 ms |      49457.632575 s |      49457.633146 s |
   (w)vmstat_update               | 0002 |      0.502 ms |         1 | 
     0.502 ms |      49459.169103 s |      49459.169605 s |
   (s)RCU:9                       | 0002 |      0.465 ms |         1 | 
     0.465 ms |      49459.168860 s |      49459.169325 s |
   (w)ata_sff_pio_task            | 0005 |      0.435 ms |         1 | 
     0.435 ms |      49459.361942 s |      49459.362377 s |
   (s)SCHED:7                     | 0005 |      0.327 ms |         2 | 
     0.406 ms |      49457.632634 s |      49457.633040 s |
   (s)SCHED:7                     | 0001 |      0.298 ms |         1 | 
     0.298 ms |      49457.484366 s |      49457.484664 s |
   (s)RCU:9                       | 0000 |      0.298 ms |         1 | 
     0.298 ms |      49459.578203 s |      49459.578501 s |
   (s)RCU:9                       | 0003 |      0.294 ms |         1 | 
     0.294 ms |      49459.363345 s |      49459.363638 s |
   (s)SCHED:7                     | 0002 |      0.277 ms |         2 | 
     0.339 ms |      49459.168911 s |      49459.169251 s |
   (w)do_cache_clean              | 0003 |      0.276 ms |         1 | 
     0.276 ms |      49459.363610 s |      49459.363886 s |
   (w)vmstat_update               | 0003 |      0.272 ms |         1 | 
     0.272 ms |      49459.363544 s |      49459.363815 s |
   (w)blk_mq_requeue_work         | 0002 |      0.233 ms |         3 | 
     0.376 ms |      49459.172895 s |      49459.173271 s |
   (s)SCHED:7                     | 0004 |      0.231 ms |         9 | 
     0.456 ms |      49459.573451 s |      49459.573908 s |
   (s)TIMER:1                     | 0000 |      0.217 ms |         1 | 
     0.217 ms |      49459.578169 s |      49459.578386 s |
   (s)TIMER:1                     | 0005 |      0.206 ms |         2 | 
     0.234 ms |      49457.632492 s |      49457.632726 s |
   (s)TIMER:1                     | 0002 |      0.194 ms |         2 | 
     0.203 ms |      49459.168794 s |      49459.168997 s |
   (w)flush_to_ldisc              | 0003 |      0.173 ms |         1 | 
     0.173 ms |      49459.575720 s |      49459.575893 s |
   (s)TIMER:1                     | 0006 |      0.171 ms |         1 | 
     0.171 ms |      49457.485465 s |      49457.485636 s |
   (s)TIMER:1                     | 0004 |      0.167 ms |         6 | 
     0.212 ms |      49457.696331 s |      49457.696543 s |
   (s)RCU:9                       | 0006 |      0.148 ms |         1 | 
     0.148 ms |      49457.485547 s |      49457.485696 s |
   (s)TIMER:1                     | 0003 |      0.147 ms |         1 | 
     0.147 ms |      49459.363301 s |      49459.363448 s |
   (s)RCU:9                       | 0001 |      0.132 ms |         2 | 
     0.173 ms |      49459.578156 s |      49459.578329 s |
   (s)NET_RX:3                    | 0002 |      0.117 ms |         4 | 
     0.225 ms |      49457.485058 s |      49457.485283 s |
   (s)SCHED:7                     | 0000 |      0.074 ms |         9 | 
     0.310 ms |      49457.484688 s |      49457.484998 s |
   (s)BLOCK:4                     | 0003 |      0.072 ms |         1 | 
     0.072 ms |      49459.362765 s |      49459.362837 s |
   (s)SCHED:7                     | 0003 |      0.064 ms |         1 | 
     0.064 ms |      49459.576487 s |      49459.576551 s |
   (s)BLOCK:4                     | 0002 |      0.057 ms |         4 | 
     0.107 ms |      49459.172252 s |      49459.172359 s |
 
--------------------------------------------------------------------------------------------------------------------------------

Thanks,
Yang

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

* Re: [PATCH v1 4/5] perf test: Ensure EXTRA_TESTS is covered in build test
  2023-09-18 23:34   ` Namhyung Kim
@ 2023-09-19  2:15     ` Ian Rogers
  0 siblings, 0 replies; 14+ messages in thread
From: Ian Rogers @ 2023-09-19  2:15 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
	Nick Terrell, Nathan Chancellor, Nick Desaulniers, Tom Rix,
	Andrii Nakryiko, Tiezhu Yang, James Clark, Kajol Jain,
	Patrice Duroux, Athira Rajeev, linux-perf-users, linux-kernel,
	bpf, llvm

On Mon, Sep 18, 2023 at 4:34 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> Hi Ian,
>
> On Thu, Sep 14, 2023 at 2:20 PM Ian Rogers <irogers@google.com> wrote:
> >
> > Add to run variable.
> >
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> >  tools/perf/tests/make | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> > index a3a0f2a8bba0..d9945ed25bc5 100644
> > --- a/tools/perf/tests/make
> > +++ b/tools/perf/tests/make
> > @@ -138,6 +138,7 @@ endif
> >  run += make_python_perf_so
> >  run += make_debug
> >  run += make_nondistro
> > +run += make_extra_tests
>
> I'm curious why it's missed.. I couldn't find a commit to delete it.
> Maybe due to an incorrect resolution of a merge conflict?

I think it was just a mistake in the original patch:
https://lore.kernel.org/lkml/683fea7c-f5e9-fa20-f96b-f6233ed5d2a7@intel.com/

Thanks,
Ian

> Thanks,
> Namhyung
>
>
> >  run += make_no_bpf_skel
> >  run += make_gen_vmlinux_h
> >  run += make_no_libperl
> > --
> > 2.42.0.459.ge4e396fd5e-goog
> >

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

* Re: [PATCH v1 0/5] Enable BPF skeletons by default
  2023-09-18 23:40 ` [PATCH v1 0/5] Enable BPF skeletons by default Namhyung Kim
@ 2023-09-19 13:16   ` Arnaldo Carvalho de Melo
  2023-09-19 15:40     ` Ian Rogers
  0 siblings, 1 reply; 14+ messages in thread
From: Arnaldo Carvalho de Melo @ 2023-09-19 13:16 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Ian Rogers, Peter Zijlstra, Ingo Molnar, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Adrian Hunter, Nick Terrell,
	Nathan Chancellor, Nick Desaulniers, Tom Rix, Andrii Nakryiko,
	Tiezhu Yang, James Clark, Kajol Jain, Patrice Duroux,
	Athira Rajeev, linux-perf-users, linux-kernel, bpf, llvm

Em Mon, Sep 18, 2023 at 04:40:15PM -0700, Namhyung Kim escreveu:
> On Thu, Sep 14, 2023 at 2:20 PM Ian Rogers <irogers@google.com> wrote:
> >
> > Enable BPF skeletons by default but warn don't fail if they can't be
> > supported. This was the intended behavior for Linux 6.4 but it caused
> > an issue captured in this thread:
> > https://lore.kernel.org/lkml/20230503211801.897735-1-acme@kernel.org/
> >
> > This issue isn't repeated here as the previous issue related to
> > generating vmlinux.h, which is no longer performed by default as a
> > checked-in vmlinux.h is used instead.
> >
> > Unlike with those changes, the BUILD_BPF_SKEL is kept and setting it
> > to 0 disables BPF skeletons. Also, rather than fail the build due to a
> > missed dependency, dependencies are checked and BPF skeletons disabled
> > if they aren't present.
> >
> > Some related commits:
> > b7a2d774c9c5 perf build: Add ability to build with a generated vmlinux.h
> > a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> > a2af0f6b8ef7 perf build: Add system include paths to BPF builds
> > 5be6cecda080 perf bpf skels: Make vmlinux.h use bpf.h and perf_event.h in source directory
> > 9a2d5178b9d5 Revert "perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL"
> > a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> > 1d7966547e11 perf build: Add warning for when vmlinux.h generation fails
> > a980755beb5a perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL
> >
> > Ian Rogers (5):
> >   perf version: Add status of bpf skeletons
> >   perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps
> >   perf test: Update build test for changed BPF skeleton defaults
> >   perf test: Ensure EXTRA_TESTS is covered in build test
> >   perf test: Detect off-cpu support from build options
> 
> Tested-by: Namhyung Kim <namhyung@kernel.org>

Is this verbose by default now? Maybe its something on my side, but I
noticed a higher level of verbosity, can you check?

- Arnaldo

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

* Re: [PATCH v1 0/5] Enable BPF skeletons by default
  2023-09-19 13:16   ` Arnaldo Carvalho de Melo
@ 2023-09-19 15:40     ` Ian Rogers
  2023-09-20  4:11       ` Namhyung Kim
  0 siblings, 1 reply; 14+ messages in thread
From: Ian Rogers @ 2023-09-19 15:40 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Namhyung Kim, Peter Zijlstra, Ingo Molnar, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Adrian Hunter, Nick Terrell,
	Nathan Chancellor, Nick Desaulniers, Tom Rix, Andrii Nakryiko,
	Tiezhu Yang, James Clark, Kajol Jain, Patrice Duroux,
	Athira Rajeev, linux-perf-users, linux-kernel, bpf, llvm

On Tue, Sep 19, 2023 at 6:16 AM Arnaldo Carvalho de Melo
<acme@kernel.org> wrote:
>
> Em Mon, Sep 18, 2023 at 04:40:15PM -0700, Namhyung Kim escreveu:
> > On Thu, Sep 14, 2023 at 2:20 PM Ian Rogers <irogers@google.com> wrote:
> > >
> > > Enable BPF skeletons by default but warn don't fail if they can't be
> > > supported. This was the intended behavior for Linux 6.4 but it caused
> > > an issue captured in this thread:
> > > https://lore.kernel.org/lkml/20230503211801.897735-1-acme@kernel.org/
> > >
> > > This issue isn't repeated here as the previous issue related to
> > > generating vmlinux.h, which is no longer performed by default as a
> > > checked-in vmlinux.h is used instead.
> > >
> > > Unlike with those changes, the BUILD_BPF_SKEL is kept and setting it
> > > to 0 disables BPF skeletons. Also, rather than fail the build due to a
> > > missed dependency, dependencies are checked and BPF skeletons disabled
> > > if they aren't present.
> > >
> > > Some related commits:
> > > b7a2d774c9c5 perf build: Add ability to build with a generated vmlinux.h
> > > a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> > > a2af0f6b8ef7 perf build: Add system include paths to BPF builds
> > > 5be6cecda080 perf bpf skels: Make vmlinux.h use bpf.h and perf_event.h in source directory
> > > 9a2d5178b9d5 Revert "perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL"
> > > a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> > > 1d7966547e11 perf build: Add warning for when vmlinux.h generation fails
> > > a980755beb5a perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL
> > >
> > > Ian Rogers (5):
> > >   perf version: Add status of bpf skeletons
> > >   perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps
> > >   perf test: Update build test for changed BPF skeleton defaults
> > >   perf test: Ensure EXTRA_TESTS is covered in build test
> > >   perf test: Detect off-cpu support from build options
> >
> > Tested-by: Namhyung Kim <namhyung@kernel.org>
>
> Is this verbose by default now? Maybe its something on my side, but I
> noticed a higher level of verbosity, can you check?

I don't see more verbosity. Logs below.

Thanks,
Ian

$ git fetch --all
$ git checkout -b ptn-clean ptn/perf-tools-next
$ b4 am 20230914211948.814999-1-irogers@google.com
$ git am ./20230914_irogers_enable_bpf_skeletons_by_default.mbx
$ make -C tools/perf O=/tmp/perf clean
make: Entering directory 'tools/perf'
 CLEAN   x86
 CLEAN   libapi
 CLEAN   libbpf
 CLEAN   libsubcmd
 CLEAN   libsymbol
 CLEAN   libperf
 CLEAN   fixdep
 CLEAN   feature-detect
 CLEAN   python
 CLEAN   bpf-skel
 CLEAN   coresight
 CLEAN   core-objs
 CLEAN   core-progs
 CLEAN   core-gen
 CLEAN   Documentation
make: Leaving directory 'tools/perf'
$ make -C tools/perf O=/tmp/perf
make: Entering directory 'tools/perf'
  BUILD:   Doing 'make -j8' parallel build
 HOSTCC  /tmp/perf/fixdep.o
 HOSTLD  /tmp/perf/fixdep-in.o
 LINK    /tmp/perf/fixdep
Warning: Kernel ABI header differences:
 diff -u tools/include/uapi/drm/drm.h include/uapi/drm/drm.h
 diff -u tools/include/uapi/linux/kvm.h include/uapi/linux/kvm.h
 diff -u tools/include/uapi/linux/mount.h include/uapi/linux/mount.h
 diff -u tools/arch/x86/include/asm/disabled-features.h
arch/x86/include/asm/disabled-features.h
 diff -u tools/arch/x86/include/asm/cpufeatures.h
arch/x86/include/asm/cpufeatures.h
 diff -u tools/arch/x86/include/asm/msr-index.h arch/x86/include/asm/msr-index.h
 diff -u tools/arch/x86/include/uapi/asm/prctl.h
arch/x86/include/uapi/asm/prctl.h
 diff -u tools/arch/arm64/include/uapi/asm/perf_regs.h
arch/arm64/include/uapi/asm/perf_regs.h
 diff -u tools/arch/s390/include/uapi/asm/kvm.h arch/s390/include/uapi/asm/kvm.h
 diff -u tools/include/uapi/asm-generic/unistd.h
include/uapi/asm-generic/unistd.h
 diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
arch/x86/entry/syscalls/syscall_64.tbl
 diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl
arch/powerpc/kernel/syscalls/syscall.tbl
 diff -u tools/perf/arch/s390/entry/syscalls/syscall.tbl
arch/s390/kernel/syscalls/syscall.tbl
 diff -u tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl
arch/mips/kernel/syscalls/syscall_n64.tbl
 diff -u tools/perf/util/hashmap.h tools/lib/bpf/hashmap.h
Makefile.config:607: No sys/sdt.h found, no SDT events are defined,
please install systemtap-sdt-devel or systemtap-sdt-dev
Makefile.config:1009: No libcap found, disables capability support,
please install libcap-devel/libcap-dev
Makefile.config:1022: No numa.h found, disables 'perf bench numa mem'
benchmark, please install numactl-devel/libnuma-devel/libnuma-dev
Makefile.config:1081: No libbabeltrace found, disables 'perf data' CTF
format support, please install
libbabeltrace-dev[el]/libbabeltrace-ctf-dev

Auto-detecting system features:
...                                   dwarf: [ on  ]
...                      dwarf_getlocations: [ on  ]
...                                   glibc: [ on  ]
...                                  libbfd: [ on  ]
...                          libbfd-buildid: [ on  ]
...                                  libcap: [ OFF ]
...                                  libelf: [ on  ]
...                                 libnuma: [ OFF ]
...                  numa_num_possible_cpus: [ OFF ]
...                                 libperl: [ on  ]
...                               libpython: [ on  ]
...                               libcrypto: [ on  ]
...                               libunwind: [ on  ]
...                      libdw-dwarf-unwind: [ on  ]
...                                    zlib: [ on  ]
...                                    lzma: [ on  ]
...                               get_cpuid: [ on  ]
...                                     bpf: [ on  ]
...                                  libaio: [ on  ]
...                                 libzstd: [ on  ]

 GEN     /tmp/perf/common-cmds.h
 CC      /tmp/perf/jvmti/libjvmti.o
 CC      /tmp/perf/dlfilters/dlfilter-test-api-v0.o
 CC      /tmp/perf/dlfilters/dlfilter-test-api-v2.o
 CC      /tmp/perf/dlfilters/dlfilter-show-cycles.o
 CC      /tmp/perf/jvmti/jvmti_agent.o
 MKDIR   /tmp/perf/libapi/fd/
 INSTALL /tmp/perf/libapi/include/api/cpu.h
 CC      /tmp/perf/libapi/fd/array.o
 INSTALL /tmp/perf/libapi/include/api/debug.h
 INSTALL /tmp/perf/libapi/include/api/io.h
 PERF_VERSION = 6.6.rc1.gda192f0aaa30
 CC      /tmp/perf/jvmti/libstring.o
 CC      /tmp/perf/jvmti/libctype.o
 LD      /tmp/perf/libapi/fd/libapi-in.o
 MKDIR   /tmp/perf/libapi/fs/
 CC      /tmp/perf/libperf/core.o
 CC      /tmp/perf/libapi/fs/fs.o
 CC      /tmp/perf/libperf/cpumap.o
 CC      /tmp/perf/libsubcmd/exec-cmd.o
 CC      /tmp/perf/libperf/threadmap.o
 INSTALL /tmp/perf/libperf/include/perf/bpf_perf.h
 LD      /tmp/perf/jvmti/jvmti-in.o
 INSTALL /tmp/perf/libperf/include/perf/core.h
 INSTALL /tmp/perf/libapi/include/api/fd/array.h
 INSTALL /tmp/perf/libsubcmd/include/subcmd/exec-cmd.h
 INSTALL /tmp/perf/libapi/include/api/fs/fs.h
 INSTALL /tmp/perf/libsubcmd/include/subcmd/help.h
 INSTALL /tmp/perf/libsubcmd/include/subcmd/pager.h
 INSTALL /tmp/perf/libapi/include/api/fs/tracing_path.h
 CC      /tmp/perf/libperf/evsel.o
 CC      /tmp/perf/libperf/evlist.o
 INSTALL libapi_headers
 CC      /tmp/perf/libperf/mmap.o
 CC      /tmp/perf/libperf/zalloc.o
 CC      /tmp/perf/libsymbol/kallsyms.o
 CC      /tmp/perf/libperf/xyarray.o
 CC      /tmp/perf/libperf/lib.o
 CC      /tmp/perf/libsubcmd/help.o
 MKDIR   /tmp/perf/libapi/fs/
 CC      /tmp/perf/libapi/fs/tracing_path.o
 CC      /tmp/perf/libsubcmd/pager.o
 INSTALL /tmp/perf/libperf/include/perf/cpumap.h
 CC      /tmp/perf/libapi/cpu.o
 INSTALL /tmp/perf/libperf/include/perf/threadmap.h
 INSTALL /tmp/perf/libperf/include/perf/evlist.h
 INSTALL /tmp/perf/libperf/include/perf/evsel.h
 INSTALL /tmp/perf/libperf/include/perf/event.h
 INSTALL /tmp/perf/libperf/include/perf/mmap.h
 INSTALL /tmp/perf/libperf/include/internal/cpumap.h
 INSTALL /tmp/perf/libperf/include/internal/evlist.h
 INSTALL /tmp/perf/libperf/include/internal/evsel.h
 LD      /tmp/perf/libsymbol/libsymbol-in.o
 LD      /tmp/perf/libperf/libperf-in.o
 INSTALL /tmp/perf/libperf/include/internal/lib.h
 INSTALL /tmp/perf/libperf/include/internal/mmap.h
 INSTALL /tmp/perf/libsymbol/include/symbol/kallsyms.h
 INSTALL /tmp/perf/libsubcmd/include/subcmd/parse-options.h
 INSTALL /tmp/perf/libperf/include/internal/rc_check.h
 CC      /tmp/perf/libapi/fs/cgroup.o
 INSTALL /tmp/perf/libperf/include/internal/threadmap.h
 INSTALL /tmp/perf/libsubcmd/include/subcmd/run-command.h
 AR      /tmp/perf/libsymbol/libsymbol.a
 INSTALL /tmp/perf/libperf/include/internal/xyarray.h
 INSTALL libsymbol_headers
 INSTALL libsubcmd_headers
 LINK    /tmp/perf/libperf-jvmti.so
 AR      /tmp/perf/libperf/libperf.a
 GEN     perf-archive
 GEN     perf-iostat
 LINK    /tmp/perf/dlfilters/dlfilter-test-api-v0.so
 CC      /tmp/perf/libsubcmd/parse-options.o
 LD      /tmp/perf/libapi/fs/libapi-in.o
 GEN     /tmp/perf/libbpf/bpf_helper_defs.h
 CC      /tmp/perf/libapi/debug.o
 LINK    /tmp/perf/dlfilters/dlfilter-test-api-v2.so
 LINK    /tmp/perf/dlfilters/dlfilter-show-cycles.so
 INSTALL libperf_headers
 CC      /tmp/perf/libapi/str_error_r.o
 INSTALL /tmp/perf/libbpf/include/bpf/bpf.h
 INSTALL /tmp/perf/libbpf/include/bpf/libbpf.h
 CC      /tmp/perf/libsubcmd/run-command.o
 INSTALL /tmp/perf/libbpf/include/bpf/btf.h
 INSTALL /tmp/perf/libbpf/include/bpf/libbpf_common.h
 INSTALL /tmp/perf/libbpf/include/bpf/libbpf_legacy.h
 INSTALL /tmp/perf/libbpf/include/bpf/bpf_helpers.h
 INSTALL /tmp/perf/libbpf/include/bpf/bpf_tracing.h
 INSTALL /tmp/perf/libbpf/include/bpf/bpf_endian.h
 INSTALL /tmp/perf/libbpf/include/bpf/bpf_core_read.h
 INSTALL /tmp/perf/libbpf/include/bpf/skel_internal.h
 INSTALL /tmp/perf/libbpf/include/bpf/libbpf_version.h
 LD      /tmp/perf/libapi/libapi-in.o
 INSTALL /tmp/perf/libbpf/include/bpf/bpf_helper_defs.h
 CC      /tmp/perf/libsubcmd/sigchain.o
 MKDIR   /tmp/perf/libbpf/staticobjs/
 CC      /tmp/perf/libbpf/staticobjs/libbpf.o
 AR      /tmp/perf/libapi/libapi.a
 CC      /tmp/perf/libsubcmd/subcmd-config.o
 INSTALL /tmp/perf/libbpf/include/bpf/usdt.bpf.h
 INSTALL libbpf_headers
 MKDIR   /tmp/perf/libbpf/staticobjs/
 CC      /tmp/perf/libbpf/staticobjs/bpf.o
 CC      /tmp/perf/libbpf/staticobjs/nlattr.o
 CC      /tmp/perf/libbpf/staticobjs/btf.o
 CC      /tmp/perf/libbpf/staticobjs/libbpf_errno.o
 CC      /tmp/perf/libbpf/staticobjs/str_error.o
 CC      /tmp/perf/libbpf/staticobjs/netlink.o
 CC      /tmp/perf/libbpf/staticobjs/bpf_prog_linfo.o
 CC      /tmp/perf/libbpf/staticobjs/libbpf_probes.o
 CC      /tmp/perf/libbpf/staticobjs/hashmap.o
 LD      /tmp/perf/libsubcmd/libsubcmd-in.o
 AR      /tmp/perf/libsubcmd/libsubcmd.a
 CC      /tmp/perf/libbpf/staticobjs/btf_dump.o
 CC      /tmp/perf/libbpf/staticobjs/ringbuf.o
 GEN     /tmp/perf/python/perf.cpython-311-x86_64-linux-gnu.so
 CC      /tmp/perf/libbpf/staticobjs/strset.o
 CC      /tmp/perf/libbpf/staticobjs/linker.o
 CC      /tmp/perf/libbpf/staticobjs/gen_loader.o
 CC      /tmp/perf/libbpf/staticobjs/relo_core.o

Auto-detecting system features:
...                         clang-bpf-co-re: [ on  ]
...                                    llvm: [ OFF ]
...                                  libcap: [ OFF ]
...                                  libbfd: [ on  ]

 MKDIR   /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf
 MKDIR   /tmp/perf/util/bpf_skel/.tmp/bootstrap/
 MKDIR   /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/hashmap.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/relo_core.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/libbpf_internal.h
 GEN     /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/bpf_helper_defs.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/bpf.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/libbpf.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/btf.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/libbpf_common.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/libbpf_legacy.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/bpf_helpers.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/bpf_tracing.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/bpf_endian.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/bpf_core_read.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/skel_internal.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/libbpf_version.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/usdt.bpf.h
 INSTALL /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/include/bpf/bpf_helper_defs.h
 MKDIR   /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/libbpf.o
 CC      /tmp/perf/libbpf/staticobjs/usdt.o
 CC      /tmp/perf/libbpf/staticobjs/zip.o
 CC      /tmp/perf/libbpf/staticobjs/elf.o
 MKDIR   /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/bpf.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/nlattr.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/btf.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/libbpf_errno.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/str_error.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/netlink.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/bpf_prog_linfo.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/libbpf_probes.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/hashmap.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/btf_dump.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/ringbuf.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/strset.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/linker.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/gen_loader.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/relo_core.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/usdt.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/zip.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/elf.o
 INSTALL libbpf_headers
 LD      /tmp/perf/libbpf/staticobjs/libbpf-in.o
 LINK    /tmp/perf/libbpf/libbpf.a
 LD      /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/staticobjs/libbpf-in.o
 LINK    /tmp/perf/util/bpf_skel/.tmp/bootstrap/libbpf/libbpf.a
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/main.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/common.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/json_writer.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/gen.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/btf.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/xlated_dumper.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/btf_dumper.o
 CC      /tmp/perf/util/bpf_skel/.tmp/bootstrap/disasm.o
 LINK    /tmp/perf/util/bpf_skel/.tmp/bootstrap/bpftool
 CLANG   /tmp/perf/util/bpf_skel/.tmp/bpf_prog_profiler.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/bperf_leader.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/bperf_follower.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/bperf_cgroup.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/func_latency.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/off_cpu.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/lock_contention.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/kwork_trace.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/sample_filter.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/kwork_top.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/bench_uprobe.bpf.o
 CLANG   /tmp/perf/util/bpf_skel/.tmp/augmented_raw_syscalls.bpf.o
 GENSKEL /tmp/perf/util/bpf_skel/bpf_prog_profiler.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/bperf_leader.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/bperf_follower.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/bperf_cgroup.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/func_latency.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/off_cpu.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/bench_uprobe.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/lock_contention.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/kwork_top.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/sample_filter.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/augmented_raw_syscalls.skel.h
 GENSKEL /tmp/perf/util/bpf_skel/kwork_trace.skel.h
 CC      /tmp/perf/builtin-bench.o
 CC      /tmp/perf/builtin-annotate.o
 CC      /tmp/perf/builtin-config.o
 CC      /tmp/perf/builtin-diff.o
 CC      /tmp/perf/builtin-evlist.o
 CC      /tmp/perf/builtin-ftrace.o
 TEST    /tmp/perf/pmu-events/metric_test.log
 GEN     /tmp/perf/pmu-events/pmu-events.c
 CC      /tmp/perf/builtin-help.o
 CC      /tmp/perf/builtin-buildid-list.o
 CC      /tmp/perf/builtin-buildid-cache.o
 CC      /tmp/perf/builtin-kallsyms.o
 CC      /tmp/perf/builtin-list.o
 CC      /tmp/perf/builtin-record.o
 CC      /tmp/perf/builtin-report.o
 CC      /tmp/perf/builtin-stat.o
 CC      /tmp/perf/builtin-top.o
 CC      /tmp/perf/builtin-script.o
 CC      /tmp/perf/builtin-kvm.o
 CC      /tmp/perf/builtin-inject.o
 CC      /tmp/perf/builtin-mem.o
 CC      /tmp/perf/builtin-data.o
 CC      /tmp/perf/builtin-version.o
 CC      /tmp/perf/builtin-c2c.o
 CC      /tmp/perf/builtin-daemon.o
 CC      /tmp/perf/builtin-kmem.o
 CC      /tmp/perf/builtin-kwork.o
 CC      /tmp/perf/builtin-lock.o
 CC      /tmp/perf/builtin-sched.o
 CC      /tmp/perf/builtin-timechart.o
 CC      /tmp/perf/builtin-trace.o
 CC      /tmp/perf/trace/beauty/clone.o
 CC      /tmp/perf/bench/sched-messaging.o
 CC      /tmp/perf/tests/builtin-test.o
 CC      /tmp/perf/bench/sched-pipe.o
 CC      /tmp/perf/bench/sched-seccomp-notify.o
 CC      /tmp/perf/util/arm64-frame-pointer-unwind-support.o
 CC      /tmp/perf/trace/beauty/fcntl.o
 CC      /tmp/perf/bench/syscall.o
 CC      /tmp/perf/util/addr_location.o
 CC      /tmp/perf/trace/beauty/flock.o
 CC      /tmp/perf/bench/mem-functions.o
 CC      /tmp/perf/util/annotate.o
 CC      /tmp/perf/tests/builtin-test-list.o
 CC      /tmp/perf/trace/beauty/fsmount.o
 CC      /tmp/perf/bench/futex-hash.o
 CC      /tmp/perf/trace/beauty/fspick.o
 CC      /tmp/perf/arch/common.o
 CC      /tmp/perf/arch/x86/util/header.o
 CC      /tmp/perf/tests/parse-events.o
 CC      /tmp/perf/trace/beauty/ioctl.o
 CC      /tmp/perf/bench/futex-wake.o
 CC      /tmp/perf/arch/x86/util/tsc.o
 CC      /tmp/perf/trace/beauty/kcmp.o
 CC      /tmp/perf/bench/futex-wake-parallel.o
 CC      /tmp/perf/trace/beauty/mount_flags.o
 CC      /tmp/perf/bench/futex-requeue.o
 CC      /tmp/perf/arch/x86/util/pmu.o
 CC      /tmp/perf/trace/beauty/move_mount.o
 CC      /tmp/perf/trace/beauty/pkey_alloc.o
 CC      /tmp/perf/arch/x86/util/kvm-stat.o
 CC      /tmp/perf/bench/futex-lock-pi.o
 CC      /tmp/perf/trace/beauty/arch_prctl.o
 CC      /tmp/perf/bench/epoll-wait.o
 CC      /tmp/perf/trace/beauty/prctl.o
 CC      /tmp/perf/arch/x86/util/perf_regs.o
 CC      /tmp/perf/bench/epoll-ctl.o
 CC      /tmp/perf/pmu-events/pmu-events.o
 CC      /tmp/perf/trace/beauty/renameat.o
 CC      /tmp/perf/bench/synthesize.o
 CC      /tmp/perf/trace/beauty/sockaddr.o
 CC      /tmp/perf/arch/x86/util/topdown.o
 CC      /tmp/perf/bench/kallsyms-parse.o
 CC      /tmp/perf/trace/beauty/socket.o
 CC      /tmp/perf/arch/x86/util/machine.o
 CC      /tmp/perf/trace/beauty/statx.o
 CC      /tmp/perf/bench/find-bit-bench.o
 CC      /tmp/perf/arch/x86/util/event.o
 CC      /tmp/perf/bench/inject-buildid.o
 CC      /tmp/perf/trace/beauty/sync_file_range.o
 CC      /tmp/perf/bench/evlist-open-close.o
 CC      /tmp/perf/arch/x86/util/evlist.o
 CC      /tmp/perf/trace/beauty/timespec.o
 CC      /tmp/perf/trace/beauty/tracepoints/x86_irq_vectors.o
 CC      /tmp/perf/trace/beauty/tracepoints/x86_msr.o
 CC      /tmp/perf/arch/x86/util/mem-events.o
 CC      /tmp/perf/bench/breakpoint.o
 LD      /tmp/perf/trace/beauty/tracepoints/perf-in.o
 LD      /tmp/perf/trace/beauty/perf-in.o
 CC      /tmp/perf/ui/setup.o
 CC      /tmp/perf/scripts/perl/Perf-Trace-Util/Context.o
 CC      /tmp/perf/ui/helpline.o
 CC      /tmp/perf/arch/x86/util/evsel.o
 CC      /tmp/perf/util/block-info.o
 CC      /tmp/perf/ui/progress.o
 CC      /tmp/perf/ui/util.o
 CC      /tmp/perf/arch/x86/util/iostat.o
 CC      /tmp/perf/bench/pmu-scan.o
 CC      /tmp/perf/ui/hist.o
 CC      /tmp/perf/tests/dso-data.o
 CC      /tmp/perf/ui/stdio/hist.o
 CC      /tmp/perf/bench/uprobe.o
 LD      /tmp/perf/scripts/perl/Perf-Trace-Util/perf-in.o
 CC      /tmp/perf/arch/x86/util/env.o
 CC      /tmp/perf/scripts/python/Perf-Trace-Util/Context.o
 CC      /tmp/perf/util/block-range.o
 CC      /tmp/perf/tests/attr.o
 CC      /tmp/perf/bench/mem-memcpy-x86-64-asm.o
 CC      /tmp/perf/arch/x86/util/dwarf-regs.o
 CC      /tmp/perf/bench/mem-memset-x86-64-asm.o
 LD      /tmp/perf/bench/perf-in.o
 CC      /tmp/perf/builtin-probe.o
 CC      /tmp/perf/arch/x86/util/unwind-libunwind.o
 CC      /tmp/perf/util/build-id.o
 CC      /tmp/perf/tests/vmlinux-kallsyms.o
 CC      /tmp/perf/arch/x86/util/auxtrace.o
 LD      /tmp/perf/scripts/python/Perf-Trace-Util/perf-in.o
 LD      /tmp/perf/scripts/perf-in.o
 CC      /tmp/perf/perf.o
 CC      /tmp/perf/arch/x86/util/archinsn.o
 CC      /tmp/perf/tests/openat-syscall.o
 CC      /tmp/perf/arch/x86/util/intel-pt.o
 CC      /tmp/perf/tests/openat-syscall-all-cpus.o
 CC      /tmp/perf/tests/openat-syscall-tp-fields.o
 CC      /tmp/perf/tests/mmap-basic.o
 CC      /tmp/perf/ui/browser.o
 CC      /tmp/perf/ui/browsers/annotate.o
 CC      /tmp/perf/util/cacheline.o
 CC      /tmp/perf/ui/browsers/hists.o
 CC      /tmp/perf/util/config.o
 CC      /tmp/perf/tests/perf-record.o
 CC      /tmp/perf/tests/evsel-roundtrip-name.o
 CC      /tmp/perf/arch/x86/util/intel-bts.o
 CC      /tmp/perf/ui/tui/setup.o
 CC      /tmp/perf/tests/evsel-tp-sched.o
 CC      /tmp/perf/ui/tui/util.o
 CC      /tmp/perf/ui/browsers/map.o
 CC      /tmp/perf/tests/fdarray.o
 CC      /tmp/perf/ui/browsers/scripts.o
 CC      /tmp/perf/ui/browsers/header.o
 CC      /tmp/perf/ui/tui/helpline.o
 LD      /tmp/perf/arch/x86/util/perf-in.o
 CC      /tmp/perf/arch/x86/tests/regs_load.o
 CC      /tmp/perf/util/copyfile.o
 CC      /tmp/perf/ui/tui/progress.o
 CC      /tmp/perf/arch/x86/tests/dwarf-unwind.o
 CC      /tmp/perf/tests/pmu.o
 CC      /tmp/perf/ui/browsers/res_sample.o
 LD      /tmp/perf/ui/tui/perf-in.o
 CC      /tmp/perf/tests/pmu-events.o
 CC      /tmp/perf/tests/hists_common.o
 CC      /tmp/perf/util/ctype.o
 CC      /tmp/perf/util/db-export.o
 CC      /tmp/perf/arch/x86/tests/arch-tests.o
 CC      /tmp/perf/tests/hists_link.o
 CC      /tmp/perf/arch/x86/tests/sample-parsing.o
 CC      /tmp/perf/arch/x86/tests/hybrid.o
 CC      /tmp/perf/tests/hists_filter.o
 CC      /tmp/perf/arch/x86/tests/intel-pt-test.o
 CC      /tmp/perf/tests/hists_output.o
 CC      /tmp/perf/arch/x86/tests/bp-modify.o
 CC      /tmp/perf/arch/x86/tests/amd-ibs-via-core-pmu.o
 CC      /tmp/perf/util/env.o
 CC      /tmp/perf/tests/hists_cumulate.o
 CC      /tmp/perf/tests/python-use.o
 LD      /tmp/perf/arch/x86/tests/perf-in.o
 LD      /tmp/perf/arch/x86/perf-in.o
 LD      /tmp/perf/pmu-events/pmu-events-in.o
 CC      /tmp/perf/tests/bp_signal.o
 CC      /tmp/perf/tests/bp_signal_overflow.o
 LD      /tmp/perf/arch/perf-in.o
 CC      /tmp/perf/tests/bp_account.o
 CC      /tmp/perf/tests/wp.o
 CC      /tmp/perf/tests/task-exit.o
 CC      /tmp/perf/tests/sw-clock.o
 CC      /tmp/perf/tests/mmap-thread-lookup.o
 CC      /tmp/perf/tests/thread-maps-share.o
 CC      /tmp/perf/util/event.o
 CC      /tmp/perf/tests/switch-tracking.o
 CC      /tmp/perf/tests/keep-tracking.o
 CC      /tmp/perf/tests/code-reading.o
 CC      /tmp/perf/tests/sample-parsing.o
 CC      /tmp/perf/tests/parse-no-sample-id-all.o
 CC      /tmp/perf/tests/kmod-path.o
 LD      /tmp/perf/ui/browsers/perf-in.o
 LD      /tmp/perf/ui/perf-in.o
 CC      /tmp/perf/tests/thread-map.o
 CC      /tmp/perf/tests/topology.o
 CC      /tmp/perf/tests/mem.o
 CC      /tmp/perf/tests/cpumap.o
 CC      /tmp/perf/tests/stat.o
 CC      /tmp/perf/tests/event_update.o
 CC      /tmp/perf/tests/event-times.o
 CC      /tmp/perf/tests/expr.o
 CC      /tmp/perf/tests/backward-ring-buffer.o
 CC      /tmp/perf/tests/sdt.o
 CC      /tmp/perf/tests/is_printable_array.o
 CC      /tmp/perf/tests/bitmap.o
 CC      /tmp/perf/tests/perf-hooks.o
 CC      /tmp/perf/util/evlist.o
 CC      /tmp/perf/tests/unit_number__scnprintf.o
 CC      /tmp/perf/tests/mem2node.o
 CC      /tmp/perf/tests/maps.o
 CC      /tmp/perf/tests/time-utils-test.o
 CC      /tmp/perf/tests/genelf.o
 CC      /tmp/perf/tests/api-io.o
 CC      /tmp/perf/tests/demangle-java-test.o
 CC      /tmp/perf/tests/demangle-ocaml-test.o
 CC      /tmp/perf/tests/pfm.o
 CC      /tmp/perf/tests/parse-metric.o
 CC      /tmp/perf/tests/pe-file-parsing.o
 CC      /tmp/perf/tests/expand-cgroup.o
 CC      /tmp/perf/tests/perf-time-to-tsc.o
 CC      /tmp/perf/tests/dlfilter-test.o
 CC      /tmp/perf/tests/sigtrap.o
 CC      /tmp/perf/tests/event_groups.o
 CC      /tmp/perf/tests/symbols.o
 CC      /tmp/perf/tests/util.o
 CC      /tmp/perf/tests/dwarf-unwind.o
 CC      /tmp/perf/tests/workloads/noploop.o
 CC      /tmp/perf/tests/workloads/thloop.o
 CC      /tmp/perf/tests/workloads/leafloop.o
 CC      /tmp/perf/tests/workloads/sqrtloop.o
 CC      /tmp/perf/tests/workloads/brstack.o
 CC      /tmp/perf/tests/workloads/datasym.o
 CC      /tmp/perf/util/sideband_evlist.o
 CC      /tmp/perf/util/evsel.o
 CC      /tmp/perf/util/evsel_fprintf.o
 CC      /tmp/perf/util/perf_event_attr_fprintf.o
 CC      /tmp/perf/util/evswitch.o
 LD      /tmp/perf/tests/workloads/perf-in.o
 CC      /tmp/perf/util/find_bit.o
 LD      /tmp/perf/tests/perf-in.o
 CC      /tmp/perf/util/get_current_dir_name.o
 CC      /tmp/perf/util/levenshtein.o
 CC      /tmp/perf/util/mmap.o
 CC      /tmp/perf/util/memswap.o
 BISON   /tmp/perf/util/parse-events-bison.c
 CC      /tmp/perf/util/print-events.o
 CC      /tmp/perf/util/tracepoint.o
 CC      /tmp/perf/util/perf_regs.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_aarch64.o
 CC      /tmp/perf/util/intel-pt-decoder/intel-pt-pkt-decoder.o
 CC      /tmp/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_arm.o
 CC      /tmp/perf/util/hisi-ptt-decoder/hisi-ptt-pkt-decoder.o
 CC      /tmp/perf/util/scripting-engines/trace-event-perl.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_csky.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_loongarch.o
 LD      /tmp/perf/util/hisi-ptt-decoder/perf-in.o
 CC      /tmp/perf/util/path.o
 CC      /tmp/perf/util/print_binary.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_mips.o
 CC      /tmp/perf/util/arm-spe-decoder/arm-spe-decoder.o
 GEN     /tmp/perf/util/intel-pt-decoder/inat-tables.c
 CC      /tmp/perf/util/intel-pt-decoder/intel-pt-log.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_powerpc.o
 CC      /tmp/perf/util/rlimit.o
 CC      /tmp/perf/util/intel-pt-decoder/intel-pt-decoder.o
 CC      /tmp/perf/util/argv_split.o
 CC      /tmp/perf/util/rbtree.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_riscv.o
 LD      /tmp/perf/util/arm-spe-decoder/perf-in.o
 CC      /tmp/perf/util/libstring.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_s390.o
 CC      /tmp/perf/util/bitmap.o
 CC      /tmp/perf/util/perf-regs-arch/perf_regs_x86.o
 CC      /tmp/perf/util/intel-pt-decoder/intel-pt-insn-decoder.o
 CC      /tmp/perf/util/hweight.o
 LD      /tmp/perf/util/perf-regs-arch/perf-in.o
 CC      /tmp/perf/util/smt.o
 CC      /tmp/perf/util/strbuf.o
 CC      /tmp/perf/util/string.o
 CC      /tmp/perf/util/scripting-engines/trace-event-python.o
 CC      /tmp/perf/util/strlist.o
 CC      /tmp/perf/util/strfilter.o
 CC      /tmp/perf/util/top.o
 CC      /tmp/perf/util/usage.o
 CC      /tmp/perf/util/dso.o
 CC      /tmp/perf/util/dsos.o
 CC      /tmp/perf/util/symbol.o
 CC      /tmp/perf/util/symbol_fprintf.o
 CC      /tmp/perf/util/color.o
 CC      /tmp/perf/util/color_config.o
 CC      /tmp/perf/util/metricgroup.o
 CC      /tmp/perf/util/header.o
 CC      /tmp/perf/util/callchain.o
 CC      /tmp/perf/util/values.o
 CC      /tmp/perf/util/debug.o
 CC      /tmp/perf/util/fncache.o
 CC      /tmp/perf/util/machine.o
 CC      /tmp/perf/util/map.o
 LD      /tmp/perf/util/intel-pt-decoder/perf-in.o
 CC      /tmp/perf/util/maps.o
 LD      /tmp/perf/util/scripting-engines/perf-in.o
 CC      /tmp/perf/util/pstack.o
 CC      /tmp/perf/util/session.o
 CC      /tmp/perf/util/sample-raw.o
 CC      /tmp/perf/util/s390-sample-raw.o
 CC      /tmp/perf/util/amd-sample-raw.o
 CC      /tmp/perf/util/syscalltbl.o
 CC      /tmp/perf/util/ordered-events.o
 CC      /tmp/perf/util/namespaces.o
 CC      /tmp/perf/util/comm.o
 CC      /tmp/perf/util/thread.o
 CC      /tmp/perf/util/thread_map.o
 CC      /tmp/perf/util/parse-events-bison.o
 BISON   /tmp/perf/util/pmu-bison.c
 CC      /tmp/perf/util/pmus.o
 CC      /tmp/perf/util/svghelper.o
 CC      /tmp/perf/util/trace-event-info.o
 CC      /tmp/perf/util/trace-event-scripting.o
 CC      /tmp/perf/util/trace-event.o
 CC      /tmp/perf/util/trace-event-parse.o
 CC      /tmp/perf/util/trace-event-read.o
 CC      /tmp/perf/util/sort.o
 CC      /tmp/perf/util/hist.o
 CC      /tmp/perf/util/util.o
 CC      /tmp/perf/util/cpumap.o
 CC      /tmp/perf/util/affinity.o
 CC      /tmp/perf/util/cputopo.o
 CC      /tmp/perf/util/cgroup.o
 CC      /tmp/perf/util/target.o
 CC      /tmp/perf/util/rblist.o
 CC      /tmp/perf/util/intlist.o
 CC      /tmp/perf/util/vdso.o
 CC      /tmp/perf/util/counts.o
 CC      /tmp/perf/util/stat.o
 CC      /tmp/perf/util/stat-shadow.o
 CC      /tmp/perf/util/stat-display.o
 CC      /tmp/perf/util/perf_api_probe.o
 CC      /tmp/perf/util/record.o
 CC      /tmp/perf/util/srcline.o
 CC      /tmp/perf/util/srccode.o
 CC      /tmp/perf/util/synthetic-events.o
 CC      /tmp/perf/util/data.o
 CC      /tmp/perf/util/tsc.o
 CC      /tmp/perf/util/cloexec.o
 CC      /tmp/perf/util/call-path.o
 CC      /tmp/perf/util/rwsem.o
 CC      /tmp/perf/util/thread-stack.o
 CC      /tmp/perf/util/spark.o
 CC      /tmp/perf/util/topdown.o
 CC      /tmp/perf/util/iostat.o
 CC      /tmp/perf/util/stream.o
 CC      /tmp/perf/util/auxtrace.o
 CC      /tmp/perf/util/intel-pt.o
 CC      /tmp/perf/util/intel-bts.o
 CC      /tmp/perf/util/arm-spe.o
 CC      /tmp/perf/util/hisi-ptt.o
 CC      /tmp/perf/util/s390-cpumsf.o
 CC      /tmp/perf/util/cs-etm-base.o
 CC      /tmp/perf/util/parse-branch-options.o
 CC      /tmp/perf/util/dump-insn.o
 CC      /tmp/perf/util/parse-regs-options.o
 CC      /tmp/perf/util/parse-sublevel-options.o
 CC      /tmp/perf/util/term.o
 CC      /tmp/perf/util/help-unknown-cmd.o
 CC      /tmp/perf/util/dlfilter.o
 CC      /tmp/perf/util/mem-events.o
 CC      /tmp/perf/util/vsprintf.o
 CC      /tmp/perf/util/units.o
 CC      /tmp/perf/util/time-utils.o
 BISON   /tmp/perf/util/expr-bison.c
 CC      /tmp/perf/util/branch.o
 CC      /tmp/perf/util/mem2node.o
 CC      /tmp/perf/util/clockid.o
 CC      /tmp/perf/util/list_sort.o
 CC      /tmp/perf/util/mutex.o
 CC      /tmp/perf/util/sharded_mutex.o
 CC      /tmp/perf/util/bpf_map.o
 CC      /tmp/perf/util/bpf_counter.o
 CC      /tmp/perf/util/bpf_counter_cgroup.o
 CC      /tmp/perf/util/bpf_ftrace.o
 CC      /tmp/perf/util/bpf_off_cpu.o
 BISON   /tmp/perf/util/bpf-filter-bison.c
 CC      /tmp/perf/util/bpf_lock_contention.o
 CC      /tmp/perf/util/bpf_kwork.o
 CC      /tmp/perf/util/bpf_kwork_top.o
 CC      /tmp/perf/util/symbol-elf.o
 CC      /tmp/perf/util/probe-file.o
 CC      /tmp/perf/util/probe-event.o
 CC      /tmp/perf/util/probe-finder.o
 CC      /tmp/perf/util/dwarf-aux.o
 CC      /tmp/perf/util/dwarf-regs.o
 CC      /tmp/perf/util/unwind-libunwind-local.o
 CC      /tmp/perf/util/unwind-libunwind.o
 CC      /tmp/perf/util/data-convert-json.o
 CC      /tmp/perf/util/zlib.o
 CC      /tmp/perf/util/lzma.o
 CC      /tmp/perf/util/zstd.o
 CXX     /tmp/perf/util/demangle-cxx.o
 CC      /tmp/perf/util/demangle-ocaml.o
 CC      /tmp/perf/util/demangle-java.o
 CC      /tmp/perf/util/demangle-rust.o
 CC      /tmp/perf/util/jitdump.o
 CC      /tmp/perf/util/genelf.o
 CC      /tmp/perf/util/genelf_debug.o
 CC      /tmp/perf/util/perf-hooks.o
 CC      /tmp/perf/util/bpf-event.o
 CC      /tmp/perf/util/bpf-utils.o
 CC      /tmp/perf/util/pfm.o
 FLEX    /tmp/perf/util/parse-events-flex.c
 FLEX    /tmp/perf/util/pmu-flex.c
 CC      /tmp/perf/util/pmu-bison.o
 FLEX    /tmp/perf/util/expr-flex.c
 CC      /tmp/perf/util/expr-bison.o
 CC      /tmp/perf/util/expr.o
 FLEX    /tmp/perf/util/bpf-filter-flex.c
 CC      /tmp/perf/util/bpf-filter-bison.o
 CC      /tmp/perf/util/parse-events.o
 CC      /tmp/perf/util/parse-events-flex.o
 CC      /tmp/perf/util/pmu.o
 CC      /tmp/perf/util/pmu-flex.o
 CC      /tmp/perf/util/expr-flex.o
 CC      /tmp/perf/util/bpf-filter.o
 CC      /tmp/perf/util/bpf-filter-flex.o
 LD      /tmp/perf/util/perf-in.o
 LD      /tmp/perf/perf-in.o
 LINK    /tmp/perf/perf

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

* Re: [PATCH v1 0/5] Enable BPF skeletons by default
  2023-09-19 15:40     ` Ian Rogers
@ 2023-09-20  4:11       ` Namhyung Kim
  2023-09-21 18:50         ` Namhyung Kim
  0 siblings, 1 reply; 14+ messages in thread
From: Namhyung Kim @ 2023-09-20  4:11 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Ingo Molnar,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
	Nick Terrell, Nathan Chancellor, Nick Desaulniers, Tom Rix,
	Andrii Nakryiko, Tiezhu Yang, James Clark, Kajol Jain,
	Patrice Duroux, Athira Rajeev, linux-perf-users, linux-kernel,
	bpf, llvm

On Tue, Sep 19, 2023 at 8:40 AM Ian Rogers <irogers@google.com> wrote:
>
> On Tue, Sep 19, 2023 at 6:16 AM Arnaldo Carvalho de Melo
> <acme@kernel.org> wrote:
> >
> > Em Mon, Sep 18, 2023 at 04:40:15PM -0700, Namhyung Kim escreveu:
> > > On Thu, Sep 14, 2023 at 2:20 PM Ian Rogers <irogers@google.com> wrote:
> > > >
> > > > Enable BPF skeletons by default but warn don't fail if they can't be
> > > > supported. This was the intended behavior for Linux 6.4 but it caused
> > > > an issue captured in this thread:
> > > > https://lore.kernel.org/lkml/20230503211801.897735-1-acme@kernel.org/
> > > >
> > > > This issue isn't repeated here as the previous issue related to
> > > > generating vmlinux.h, which is no longer performed by default as a
> > > > checked-in vmlinux.h is used instead.
> > > >
> > > > Unlike with those changes, the BUILD_BPF_SKEL is kept and setting it
> > > > to 0 disables BPF skeletons. Also, rather than fail the build due to a
> > > > missed dependency, dependencies are checked and BPF skeletons disabled
> > > > if they aren't present.
> > > >
> > > > Some related commits:
> > > > b7a2d774c9c5 perf build: Add ability to build with a generated vmlinux.h
> > > > a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> > > > a2af0f6b8ef7 perf build: Add system include paths to BPF builds
> > > > 5be6cecda080 perf bpf skels: Make vmlinux.h use bpf.h and perf_event.h in source directory
> > > > 9a2d5178b9d5 Revert "perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL"
> > > > a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> > > > 1d7966547e11 perf build: Add warning for when vmlinux.h generation fails
> > > > a980755beb5a perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL
> > > >
> > > > Ian Rogers (5):
> > > >   perf version: Add status of bpf skeletons
> > > >   perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps
> > > >   perf test: Update build test for changed BPF skeleton defaults
> > > >   perf test: Ensure EXTRA_TESTS is covered in build test
> > > >   perf test: Detect off-cpu support from build options
> > >
> > > Tested-by: Namhyung Kim <namhyung@kernel.org>
> >
> > Is this verbose by default now? Maybe its something on my side, but I
> > noticed a higher level of verbosity, can you check?
>
> I don't see more verbosity. Logs below.

I don't see it either.

Thanks,
Namhyung

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

* Re: [PATCH v1 0/5] Enable BPF skeletons by default
  2023-09-20  4:11       ` Namhyung Kim
@ 2023-09-21 18:50         ` Namhyung Kim
  0 siblings, 0 replies; 14+ messages in thread
From: Namhyung Kim @ 2023-09-21 18:50 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Ingo Molnar,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
	Nick Terrell, Nathan Chancellor, Nick Desaulniers, Tom Rix,
	Andrii Nakryiko, Tiezhu Yang, James Clark, Kajol Jain,
	Patrice Duroux, Athira Rajeev, linux-perf-users, linux-kernel,
	bpf, llvm

On Tue, Sep 19, 2023 at 9:11 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> On Tue, Sep 19, 2023 at 8:40 AM Ian Rogers <irogers@google.com> wrote:
> >
> > On Tue, Sep 19, 2023 at 6:16 AM Arnaldo Carvalho de Melo
> > <acme@kernel.org> wrote:
> > >
> > > Em Mon, Sep 18, 2023 at 04:40:15PM -0700, Namhyung Kim escreveu:
> > > > On Thu, Sep 14, 2023 at 2:20 PM Ian Rogers <irogers@google.com> wrote:
> > > > >
> > > > > Enable BPF skeletons by default but warn don't fail if they can't be
> > > > > supported. This was the intended behavior for Linux 6.4 but it caused
> > > > > an issue captured in this thread:
> > > > > https://lore.kernel.org/lkml/20230503211801.897735-1-acme@kernel.org/
> > > > >
> > > > > This issue isn't repeated here as the previous issue related to
> > > > > generating vmlinux.h, which is no longer performed by default as a
> > > > > checked-in vmlinux.h is used instead.
> > > > >
> > > > > Unlike with those changes, the BUILD_BPF_SKEL is kept and setting it
> > > > > to 0 disables BPF skeletons. Also, rather than fail the build due to a
> > > > > missed dependency, dependencies are checked and BPF skeletons disabled
> > > > > if they aren't present.
> > > > >
> > > > > Some related commits:
> > > > > b7a2d774c9c5 perf build: Add ability to build with a generated vmlinux.h
> > > > > a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> > > > > a2af0f6b8ef7 perf build: Add system include paths to BPF builds
> > > > > 5be6cecda080 perf bpf skels: Make vmlinux.h use bpf.h and perf_event.h in source directory
> > > > > 9a2d5178b9d5 Revert "perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL"
> > > > > a887466562b4 perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE
> > > > > 1d7966547e11 perf build: Add warning for when vmlinux.h generation fails
> > > > > a980755beb5a perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL
> > > > >
> > > > > Ian Rogers (5):
> > > > >   perf version: Add status of bpf skeletons
> > > > >   perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps
> > > > >   perf test: Update build test for changed BPF skeleton defaults
> > > > >   perf test: Ensure EXTRA_TESTS is covered in build test
> > > > >   perf test: Detect off-cpu support from build options
> > > >
> > > > Tested-by: Namhyung Kim <namhyung@kernel.org>
> > >
> > > Is this verbose by default now? Maybe its something on my side, but I
> > > noticed a higher level of verbosity, can you check?
> >
> > I don't see more verbosity. Logs below.
>
> I don't see it either.

Applied to perf-tools-next, thanks!

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

end of thread, other threads:[~2023-09-21 18:50 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-14 21:19 [PATCH v1 0/5] Enable BPF skeletons by default Ian Rogers
2023-09-14 21:19 ` [PATCH v1 1/5] perf version: Add status of bpf skeletons Ian Rogers
2023-09-14 21:19 ` [PATCH v1 2/5] perf build: Default BUILD_BPF_SKEL, warn/disable for missing deps Ian Rogers
2023-09-14 21:19 ` [PATCH v1 3/5] perf test: Update build test for changed BPF skeleton defaults Ian Rogers
2023-09-14 21:19 ` [PATCH v1 4/5] perf test: Ensure EXTRA_TESTS is covered in build test Ian Rogers
2023-09-18 23:34   ` Namhyung Kim
2023-09-19  2:15     ` Ian Rogers
2023-09-14 21:19 ` [PATCH v1 5/5] perf test: Detect off-cpu support from build options Ian Rogers
2023-09-18 23:40 ` [PATCH v1 0/5] Enable BPF skeletons by default Namhyung Kim
2023-09-19 13:16   ` Arnaldo Carvalho de Melo
2023-09-19 15:40     ` Ian Rogers
2023-09-20  4:11       ` Namhyung Kim
2023-09-21 18:50         ` Namhyung Kim
2023-09-19  1:46 ` Yang Jihong

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