Message ID | 1442870601-26004-9-git-send-email-acme@kernel.org |
---|---|
State | New |
Headers | show |
On Mon, Sep 21, 2015 at 06:23:21PM -0300, Arnaldo Carvalho de Melo wrote: SNIP > + NO_LIBBPF := 1 > else > ifneq ($(filter s% -static%,$(LDFLAGS),),) > msg := $(error No static glibc found, please install glibc-static); > @@ -309,6 +312,13 @@ ifndef NO_LIBELF > $(call detected,CONFIG_DWARF) > endif # PERF_HAVE_DWARF_REGS > endif # NO_DWARF > + > + ifndef NO_LIBBPF > + ifeq ($(feature-bpf), 1) > + CFLAGS += -DHAVE_LIBBPF_SUPPORT > + $(call detected,CONFIG_LIBBPF) what depends on CONFIG_LIBBPF ? I dont see any object being dependent on it jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Em Tue, Sep 22, 2015 at 09:02:59AM +0200, Jiri Olsa escreveu: > On Mon, Sep 21, 2015 at 06:23:21PM -0300, Arnaldo Carvalho de Melo wrote: > > SNIP > > > + NO_LIBBPF := 1 > > else > > ifneq ($(filter s% -static%,$(LDFLAGS),),) > > msg := $(error No static glibc found, please install glibc-static); > > @@ -309,6 +312,13 @@ ifndef NO_LIBELF > > $(call detected,CONFIG_DWARF) > > endif # PERF_HAVE_DWARF_REGS > > endif # NO_DWARF > > + > > + ifndef NO_LIBBPF > > + ifeq ($(feature-bpf), 1) > > + CFLAGS += -DHAVE_LIBBPF_SUPPORT > > + $(call detected,CONFIG_LIBBPF) > > what depends on CONFIG_LIBBPF ? I dont see any object being dependent on it Nothing, as far as this patchkit goes, that is why I said this in the cover letter: --------------------------------------------------------------- The last one is not planned for my next perf/core pull req to Ingo, still requires some more work, but is necessary so that we can exercise the tools/build/ features fixed/introduced in this patchkit. --------------------------------------------------------------- https://lkml.kernel.org/r/1442870601-26004-1-git-send-email-acme@kernel.org - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Em Tue, Sep 22, 2015 at 09:03:40AM +0200, Jiri Olsa escreveu: > missing doc hunk in Makefile.perf Ok, adding this. Thanks! So, with that comment about FEATURE_DUMP fixed: https://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/commit/?h=perf/ebpf&id=c1500a11e9b3ec5546233013b7c4b64af103c617 Can I have your acks? :-) - Arnaldo > jirka > > > --- > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > index 8af786f458df..bb949c9e818a 100644 > --- a/tools/perf/Makefile.perf > +++ b/tools/perf/Makefile.perf > @@ -75,6 +75,8 @@ include config/utilities.mak > # Define NO_LZMA if you do not want to support compressed (xz) kernel modules > # > # Define NO_AUXTRACE if you do not want AUX area tracing support > +# > +# Define NO_BPF if you do not want BPF support > > # As per kernel Makefile, avoid funny character set dependencies > unexport LC_ALL -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
On Tue, Sep 22, 2015 at 10:18:07AM -0300, Arnaldo Carvalho de Melo wrote: > Em Tue, Sep 22, 2015 at 09:03:40AM +0200, Jiri Olsa escreveu: > > missing doc hunk in Makefile.perf > > Ok, adding this. Thanks! So, with that comment about FEATURE_DUMP fixed: > > https://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/commit/?h=perf/ebpf&id=c1500a11e9b3ec5546233013b7c4b64af103c617 > > Can I have your acks? :-) would be easier if you resend, anyway: tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf Arnaldo Carvalho de Melo 2 -1/+2 - ack tools build: Allow setting the feature detection user Arnaldo Carvalho de Melo 1 -2/+3 - missing doc hunk which is in above patch, but ack.. tools lib ebpf: Fix up FEATURE_{TESTS,DISPLAY} usage Arnaldo Carvalho de Melo 1 -2/+2 - ack tools build: Fixup feature detection display function name Arnaldo Carvalho de Melo 1 -1/+1 - ack jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Em Tue, Sep 22, 2015 at 03:31:36PM +0200, Jiri Olsa escreveu: > On Tue, Sep 22, 2015 at 10:18:07AM -0300, Arnaldo Carvalho de Melo wrote: > > Em Tue, Sep 22, 2015 at 09:03:40AM +0200, Jiri Olsa escreveu: > > > missing doc hunk in Makefile.perf > > > > Ok, adding this. Thanks! So, with that comment about FEATURE_DUMP fixed: > > > > https://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/commit/?h=perf/ebpf&id=c1500a11e9b3ec5546233013b7c4b64af103c617 > > > > Can I have your acks? :-) > > would be easier if you resend, anyway: I'll try to do it next time, i.e. go on resubmitting with v(N++) series till I get the acks, thanks for the ones here tho, - Arnaldo > tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf Arnaldo Carvalho de Melo 2 -1/+2 > - ack > > tools build: Allow setting the feature detection user Arnaldo Carvalho de Melo 1 -2/+3 > - missing doc hunk which is in above patch, but ack.. > > tools lib ebpf: Fix up FEATURE_{TESTS,DISPLAY} usage Arnaldo Carvalho de Melo 1 -2/+2 > - ack > > tools build: Fixup feature detection display function name Arnaldo Carvalho de Melo 1 -1/+1 > - ack > > > jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Em Tue, Sep 22, 2015 at 03:31:36PM +0200, Jiri Olsa escreveu: > On Tue, Sep 22, 2015 at 10:18:07AM -0300, Arnaldo Carvalho de Melo wrote: > > Em Tue, Sep 22, 2015 at 09:03:40AM +0200, Jiri Olsa escreveu: > > > missing doc hunk in Makefile.perf > > > > Ok, adding this. Thanks! So, with that comment about FEATURE_DUMP fixed: > > > > https://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/commit/?h=perf/ebpf&id=c1500a11e9b3ec5546233013b7c4b64af103c617 > > > > Can I have your acks? :-) > > would be easier if you resend, anyway: > > tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf Arnaldo Carvalho de Melo 2 -1/+2 > - ack > > tools build: Allow setting the feature detection user Arnaldo Carvalho de Melo 1 -2/+3 > - missing doc hunk which is in above patch, but ack.. Argh, I added the comment, but to "Use FEATURE_USER to allow bu...", i.e. the wrong patch, fixed it: "tools build: Allow setting the feature detection user" https://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/commit/?h=perf/core&id=13e96db61c1c32cd4c8102a95129bb7677cc746d "tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf" https://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/commit/?h=perf/core&id=65f041bee7838e2a91dbbc0a917d9291adbb3484 - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature index 5365d0fefadb..0dedb3d245a1 100644 --- a/tools/build/Makefile.feature +++ b/tools/build/Makefile.feature @@ -53,7 +53,8 @@ FEATURE_TESTS ?= \ libdw-dwarf-unwind \ zlib \ lzma \ - get_cpuid + get_cpuid \ + bpf FEATURE_DISPLAY ?= \ dwarf \ @@ -71,7 +72,8 @@ FEATURE_DISPLAY ?= \ libdw-dwarf-unwind \ zlib \ lzma \ - get_cpuid + get_cpuid \ + bpf # Set FEATURE_CHECK_(C|LD)FLAGS-all for all FEATURE_TESTS features. # If in the future we need per-feature checks/flags for features not diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST index 9e6bdf5b2df6..39c38cb45b00 100644 --- a/tools/perf/MANIFEST +++ b/tools/perf/MANIFEST @@ -17,6 +17,7 @@ tools/build tools/arch/x86/include/asm/atomic.h tools/arch/x86/include/asm/rmwcc.h tools/lib/traceevent +tools/lib/bpf tools/lib/api tools/lib/bpf tools/lib/hweight.c @@ -69,6 +70,8 @@ arch/*/lib/memset*.S include/linux/poison.h include/linux/hw_breakpoint.h include/uapi/linux/perf_event.h +include/uapi/linux/bpf.h +include/uapi/linux/bpf_common.h include/uapi/linux/const.h include/uapi/linux/swab.h include/uapi/linux/hw_breakpoint.h diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 6c5c699002cb..8af786f458df 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -145,6 +145,7 @@ AWK = awk LIB_DIR = $(srctree)/tools/lib/api/ TRACE_EVENT_DIR = $(srctree)/tools/lib/traceevent/ +BPF_DIR = $(srctree)/tools/lib/bpf/ # include config/Makefile by default and rule out # non-config cases @@ -180,6 +181,7 @@ strip-libs = $(filter-out -l%,$(1)) ifneq ($(OUTPUT),) TE_PATH=$(OUTPUT) + BPF_PATH=$(OUTPUT) ifneq ($(subdir),) LIB_PATH=$(OUTPUT)/../lib/api/ else @@ -188,6 +190,7 @@ endif else TE_PATH=$(TRACE_EVENT_DIR) LIB_PATH=$(LIB_DIR) + BPF_PATH=$(BPF_DIR) endif LIBTRACEEVENT = $(TE_PATH)libtraceevent.a @@ -199,6 +202,8 @@ LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS = -Xlinker --dynamic-list=$(LIBTRACEEVENT_DYN LIBAPI = $(LIB_PATH)libapi.a export LIBAPI +LIBBPF = $(BPF_PATH)libbpf.a + # python extension build directories PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/ @@ -251,6 +256,9 @@ export PERL_PATH LIB_FILE=$(OUTPUT)libperf.a PERFLIBS = $(LIB_FILE) $(LIBAPI) $(LIBTRACEEVENT) +ifndef NO_LIBBPF + PERFLIBS += $(LIBBPF) +endif # We choose to avoid "if .. else if .. else .. endif endif" # because maintaining the nesting to match is a pain. If @@ -420,6 +428,13 @@ $(LIBAPI)-clean: $(call QUIET_CLEAN, libapi) $(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) clean >/dev/null +$(LIBBPF): FORCE + $(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a + +$(LIBBPF)-clean: + $(call QUIET_CLEAN, libbpf) + $(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) clean >/dev/null + help: @echo 'Perf make targets:' @echo ' doc - make *all* documentation (see below)' @@ -459,7 +474,7 @@ INSTALL_DOC_TARGETS += quick-install-doc quick-install-man quick-install-html $(DOC_TARGETS): $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:doc=all) -TAG_FOLDERS= . ../lib/traceevent ../lib/api ../lib/symbol ../include +TAG_FOLDERS= . ../lib/traceevent ../lib/api ../lib/symbol ../include ../lib/bpf TAG_FILES= ../../include/uapi/linux/perf_event.h TAGS: @@ -567,7 +582,7 @@ config-clean: $(call QUIET_CLEAN, config) $(Q)$(MAKE) -C $(srctree)/tools/build/feature/ clean >/dev/null -clean: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean config-clean +clean: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean config-clean $(call QUIET_CLEAN, core-objs) $(RM) $(LIB_FILE) $(OUTPUT)perf-archive $(OUTPUT)perf-with-kcore $(LANG_BINDINGS) $(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete $(Q)$(RM) $(OUTPUT).config-detected diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile index ab09adaabc9c..de89ec574361 100644 --- a/tools/perf/config/Makefile +++ b/tools/perf/config/Makefile @@ -106,6 +106,7 @@ ifdef LIBBABELTRACE FEATURE_CHECK_LDFLAGS-libbabeltrace := $(LIBBABELTRACE_LDFLAGS) -lbabeltrace-ctf endif +FEATURE_CHECK_CFLAGS-bpf = -I. -I$(srctree)/tools/include -I$(srctree)/arch/$(ARCH)/include/uapi -I$(srctree)/include/uapi # include ARCH specific config -include $(src-perf)/arch/$(ARCH)/Makefile @@ -237,6 +238,7 @@ ifdef NO_LIBELF NO_DEMANGLE := 1 NO_LIBUNWIND := 1 NO_LIBDW_DWARF_UNWIND := 1 + NO_LIBBPF := 1 else ifeq ($(feature-libelf), 0) ifeq ($(feature-glibc), 1) @@ -246,13 +248,14 @@ else LIBC_SUPPORT := 1 endif ifeq ($(LIBC_SUPPORT),1) - msg := $(warning No libelf found, disables 'probe' tool, please install elfutils-libelf-devel/libelf-dev); + msg := $(warning No libelf found, disables 'probe' tool and BPF support in 'perf record', please install elfutils-libelf-devel/libelf-dev); NO_LIBELF := 1 NO_DWARF := 1 NO_DEMANGLE := 1 NO_LIBUNWIND := 1 NO_LIBDW_DWARF_UNWIND := 1 + NO_LIBBPF := 1 else ifneq ($(filter s% -static%,$(LDFLAGS),),) msg := $(error No static glibc found, please install glibc-static); @@ -309,6 +312,13 @@ ifndef NO_LIBELF $(call detected,CONFIG_DWARF) endif # PERF_HAVE_DWARF_REGS endif # NO_DWARF + + ifndef NO_LIBBPF + ifeq ($(feature-bpf), 1) + CFLAGS += -DHAVE_LIBBPF_SUPPORT + $(call detected,CONFIG_LIBBPF) + endif + endif # NO_LIBBPF endif # NO_LIBELF ifeq ($(ARCH),powerpc) @@ -324,6 +334,13 @@ ifndef NO_LIBUNWIND endif endif +ifndef NO_LIBBPF + ifneq ($(feature-bpf), 1) + msg := $(warning BPF API too old. Please install recent kernel headers. BPF support in 'perf record' is disabled.) + NO_LIBBPF := 1 + endif +endif + dwarf-post-unwind := 1 dwarf-post-unwind-text := BUG diff --git a/tools/perf/tests/make b/tools/perf/tests/make index ba31c4bd441d..2cbd0c6901e3 100644 --- a/tools/perf/tests/make +++ b/tools/perf/tests/make @@ -44,6 +44,7 @@ make_no_libnuma := NO_LIBNUMA=1 make_no_libaudit := NO_LIBAUDIT=1 make_no_libbionic := NO_LIBBIONIC=1 make_no_auxtrace := NO_AUXTRACE=1 +make_no_libbpf := NO_LIBBPF=1 make_tags := tags make_cscope := cscope make_help := help @@ -66,7 +67,7 @@ make_static := LDFLAGS=-static make_minimal := NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 make_minimal += NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 make_minimal += NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 -make_minimal += NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 +make_minimal += NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 # $(run) contains all available tests run := make_pure @@ -94,6 +95,7 @@ run += make_no_libnuma run += make_no_libaudit run += make_no_libbionic run += make_no_auxtrace +run += make_no_libbpf run += make_help run += make_doc run += make_perf_o