Commit e26e63be authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Arnaldo Carvalho de Melo

perf build: Add sdt feature detection

This checks whether sys/sdt.h is available or not, which is required for
DTRACE_PROBE().

We can disable this feature by passing NO_SDT=1 when building.

This flag will be used for SDT test case and further SDT events in
perftools.
Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Hemant Kumar <hemant@linux.vnet.ibm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/146831795615.17065.17513820540591053933.stgit@devboxSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 7e9fca51
...@@ -62,7 +62,8 @@ FEATURE_TESTS_BASIC := \ ...@@ -62,7 +62,8 @@ FEATURE_TESTS_BASIC := \
zlib \ zlib \
lzma \ lzma \
get_cpuid \ get_cpuid \
bpf bpf \
sdt
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list # FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
# of all feature tests # of all feature tests
......
...@@ -45,7 +45,8 @@ FILES= \ ...@@ -45,7 +45,8 @@ FILES= \
test-zlib.bin \ test-zlib.bin \
test-lzma.bin \ test-lzma.bin \
test-bpf.bin \ test-bpf.bin \
test-get_cpuid.bin test-get_cpuid.bin \
test-sdt.bin
FILES := $(addprefix $(OUTPUT),$(FILES)) FILES := $(addprefix $(OUTPUT),$(FILES))
...@@ -213,6 +214,9 @@ $(OUTPUT)test-get_cpuid.bin: ...@@ -213,6 +214,9 @@ $(OUTPUT)test-get_cpuid.bin:
$(OUTPUT)test-bpf.bin: $(OUTPUT)test-bpf.bin:
$(BUILD) $(BUILD)
$(OUTPUT)test-sdt.bin:
$(BUILD)
-include $(OUTPUT)*.d -include $(OUTPUT)*.d
############################### ###############################
......
...@@ -145,6 +145,10 @@ ...@@ -145,6 +145,10 @@
# include "test-libcrypto.c" # include "test-libcrypto.c"
#undef main #undef main
#define main main_test_sdt
# include "test-sdt.c"
#undef main
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
main_test_libpython(); main_test_libpython();
...@@ -178,6 +182,7 @@ int main(int argc, char *argv[]) ...@@ -178,6 +182,7 @@ int main(int argc, char *argv[])
main_test_get_cpuid(); main_test_get_cpuid();
main_test_bpf(); main_test_bpf();
main_test_libcrypto(); main_test_libcrypto();
main_test_sdt();
return 0; return 0;
} }
#include <sys/sdt.h>
int main(void)
{
DTRACE_PROBE(provider, name);
return 0;
}
...@@ -81,6 +81,9 @@ include ../scripts/utilities.mak ...@@ -81,6 +81,9 @@ include ../scripts/utilities.mak
# #
# Define NO_LIBBPF if you do not want BPF support # Define NO_LIBBPF if you do not want BPF support
# #
# Define NO_SDT if you do not want to define SDT event in perf tools,
# note that it doesn't disable SDT scanning support.
#
# Define FEATURES_DUMP to provide features detection dump file # Define FEATURES_DUMP to provide features detection dump file
# and bypass the feature detection # and bypass the feature detection
......
...@@ -355,6 +355,16 @@ ifndef NO_LIBELF ...@@ -355,6 +355,16 @@ ifndef NO_LIBELF
endif # NO_LIBBPF endif # NO_LIBBPF
endif # NO_LIBELF endif # NO_LIBELF
ifndef NO_SDT
ifneq ($(feature-sdt), 1)
msg := $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev);
NO_SDT := 1;
else
CFLAGS += -DHAVE_SDT_EVENT
$(call detected,CONFIG_SDT_EVENT)
endif
endif
ifdef PERF_HAVE_JITDUMP ifdef PERF_HAVE_JITDUMP
ifndef NO_DWARF ifndef NO_DWARF
$(call detected,CONFIG_JITDUMP) $(call detected,CONFIG_JITDUMP)
......
...@@ -82,6 +82,7 @@ make_no_auxtrace := NO_AUXTRACE=1 ...@@ -82,6 +82,7 @@ make_no_auxtrace := NO_AUXTRACE=1
make_no_libbpf := NO_LIBBPF=1 make_no_libbpf := NO_LIBBPF=1
make_no_libcrypto := NO_LIBCRYPTO=1 make_no_libcrypto := NO_LIBCRYPTO=1
make_with_babeltrace:= LIBBABELTRACE=1 make_with_babeltrace:= LIBBABELTRACE=1
make_no_sdt := NO_SDT=1
make_tags := tags make_tags := tags
make_cscope := cscope make_cscope := cscope
make_help := help make_help := help
...@@ -105,7 +106,7 @@ make_minimal := NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 ...@@ -105,7 +106,7 @@ 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_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_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1
make_minimal += NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 make_minimal += NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1
make_minimal += NO_LIBCRYPTO=1 make_minimal += NO_LIBCRYPTO=1 NO_SDT=1
# $(run) contains all available tests # $(run) contains all available tests
run := make_pure run := make_pure
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment