On Tue, Dec 08, 2020 at 10:16:45AM -0800, Song Liu wrote: > BPF programs are useful in perf to profile BPF programs. BPF skeleton is > by far the easiest way to write BPF tools. Enable building BPF skeletons > in util/bpf_skel. A dummy bpf skeleton is added. More bpf skeletons will > be added for different use cases. > > Signed-off-by: Song Liu <songliubrav...@fb.com>
one nit below, but other than that: Acked-by: Jiri Olsa <jo...@redhat.com> thanks, jirka > --- > tools/bpf/bpftool/Makefile | 3 ++ > tools/build/Makefile.feature | 4 ++- > tools/perf/Makefile.config | 9 ++++++ > tools/perf/Makefile.perf | 48 +++++++++++++++++++++++++++-- > tools/perf/util/bpf_skel/.gitignore | 3 ++ > tools/scripts/Makefile.include | 1 + > 6 files changed, 65 insertions(+), 3 deletions(-) > create mode 100644 tools/perf/util/bpf_skel/.gitignore > > diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile > index f897cb5fb12d0..390af1a52601e 100644 > --- a/tools/bpf/bpftool/Makefile > +++ b/tools/bpf/bpftool/Makefile > @@ -139,6 +139,9 @@ endif > BPFTOOL_BOOTSTRAP := $(BOOTSTRAP_OUTPUT)bpftool > > BOOTSTRAP_OBJS = $(addprefix $(BOOTSTRAP_OUTPUT),main.o common.o > json_writer.o gen.o btf.o) > + > +bootstrap: $(BPFTOOL_BOOTSTRAP) > + > OBJS = $(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) $(OUTPUT)disasm.o > > VMLINUX_BTF_PATHS ?= $(if $(O),$(O)/vmlinux) \ > diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature > index 97cbfb31b7625..74e255d58d8d0 100644 > --- a/tools/build/Makefile.feature > +++ b/tools/build/Makefile.feature > @@ -99,7 +99,9 @@ FEATURE_TESTS_EXTRA := \ > clang \ > libbpf \ > libpfm4 \ > - libdebuginfod > + libdebuginfod \ > + clang-bpf-co-re > + > > FEATURE_TESTS ?= $(FEATURE_TESTS_BASIC) > > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config > index ce8516e4de34f..fe234b8bfeefb 100644 > --- a/tools/perf/Makefile.config > +++ b/tools/perf/Makefile.config > @@ -621,6 +621,15 @@ 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. Please install recent clang) > + endif > + $(call detected,CONFIG_PERF_BPF_SKEL) > + CFLAGS += -DBUILD_BPF_SKEL sorry I did not notice before, but we use HAVE_* name style for these C macros HAVE_BPF_SKEL should fit > +endif > + > dwarf-post-unwind := 1 > dwarf-post-unwind-text := BUG > > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > index 62f3deb1d3a8b..9ea9047a621bc 100644 > --- a/tools/perf/Makefile.perf SNIP