Commit e26e63be64a108c1fd12020b93b5b447ffe0532b

Authored by Masami Hiramatsu
Committed by Arnaldo Carvalho de Melo
1 parent 7e9fca51fb

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: Masami 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@devbox
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

Showing 7 changed files with 34 additions and 3 deletions Side-by-side Diff

tools/build/Makefile.feature
... ... @@ -62,7 +62,8 @@
62 62 zlib \
63 63 lzma \
64 64 get_cpuid \
65   - bpf
  65 + bpf \
  66 + sdt
66 67  
67 68 # FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
68 69 # of all feature tests
tools/build/feature/Makefile
... ... @@ -45,7 +45,8 @@
45 45 test-zlib.bin \
46 46 test-lzma.bin \
47 47 test-bpf.bin \
48   - test-get_cpuid.bin
  48 + test-get_cpuid.bin \
  49 + test-sdt.bin
49 50  
50 51 FILES := $(addprefix $(OUTPUT),$(FILES))
51 52  
... ... @@ -211,6 +212,9 @@
211 212 $(BUILD)
212 213  
213 214 $(OUTPUT)test-bpf.bin:
  215 + $(BUILD)
  216 +
  217 +$(OUTPUT)test-sdt.bin:
214 218 $(BUILD)
215 219  
216 220 -include $(OUTPUT)*.d
tools/build/feature/test-all.c
... ... @@ -145,6 +145,10 @@
145 145 # include "test-libcrypto.c"
146 146 #undef main
147 147  
  148 +#define main main_test_sdt
  149 +# include "test-sdt.c"
  150 +#undef main
  151 +
148 152 int main(int argc, char *argv[])
149 153 {
150 154 main_test_libpython();
... ... @@ -178,6 +182,7 @@
178 182 main_test_get_cpuid();
179 183 main_test_bpf();
180 184 main_test_libcrypto();
  185 + main_test_sdt();
181 186  
182 187 return 0;
183 188 }
tools/build/feature/test-sdt.c
  1 +#include <sys/sdt.h>
  2 +
  3 +int main(void)
  4 +{
  5 + DTRACE_PROBE(provider, name);
  6 + return 0;
  7 +}
tools/perf/Makefile.perf
... ... @@ -81,6 +81,9 @@
81 81 #
82 82 # Define NO_LIBBPF if you do not want BPF support
83 83 #
  84 +# Define NO_SDT if you do not want to define SDT event in perf tools,
  85 +# note that it doesn't disable SDT scanning support.
  86 +#
84 87 # Define FEATURES_DUMP to provide features detection dump file
85 88 # and bypass the feature detection
86 89  
tools/perf/config/Makefile
... ... @@ -355,6 +355,16 @@
355 355 endif # NO_LIBBPF
356 356 endif # NO_LIBELF
357 357  
  358 +ifndef NO_SDT
  359 + ifneq ($(feature-sdt), 1)
  360 + msg := $(warning No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev);
  361 + NO_SDT := 1;
  362 + else
  363 + CFLAGS += -DHAVE_SDT_EVENT
  364 + $(call detected,CONFIG_SDT_EVENT)
  365 + endif
  366 +endif
  367 +
358 368 ifdef PERF_HAVE_JITDUMP
359 369 ifndef NO_DWARF
360 370 $(call detected,CONFIG_JITDUMP)
tools/perf/tests/make
... ... @@ -82,6 +82,7 @@
82 82 make_no_libbpf := NO_LIBBPF=1
83 83 make_no_libcrypto := NO_LIBCRYPTO=1
84 84 make_with_babeltrace:= LIBBABELTRACE=1
  85 +make_no_sdt := NO_SDT=1
85 86 make_tags := tags
86 87 make_cscope := cscope
87 88 make_help := help
... ... @@ -105,7 +106,7 @@
105 106 make_minimal += NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1
106 107 make_minimal += NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1
107 108 make_minimal += NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1
108   -make_minimal += NO_LIBCRYPTO=1
  109 +make_minimal += NO_LIBCRYPTO=1 NO_SDT=1
109 110  
110 111 # $(run) contains all available tests
111 112 run := make_pure