tools/perf/build: Speed up auto-detection
authorIngo Molnar <mingo@kernel.org>
Wed, 2 Oct 2013 07:54:43 +0000 (09:54 +0200)
committerIngo Molnar <mingo@kernel.org>
Wed, 9 Oct 2013 06:48:53 +0000 (08:48 +0200)
The detection of certain rarely detected features can be delayed
to when they are actually needed.

So speed up the common case of auto-detection by pre-building only
a core set of features and populating only their feature-flags.

[ Features not listed in CORE_FEATURES need to built explicitly
  via the feature_check() function. ]

(Also order the feature names alphabetically, while at it.)

Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/n/tip-xQkuveknd0gqla1dfxrqKpkl@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
tools/perf/config/Makefile
tools/perf/config/feature-checks/Makefile

index cbd7cdca3e56d53877d7d7ee1a46246ca4fa869f..581a94211fea21666fea56eaaf5f9445af5c0411 100644 (file)
@@ -105,30 +105,36 @@ endef
 $(info )
 $(info Auto-detecting system features:)
 
-FEATURE_TESTS =                                \
-       hello                           \
-       stackprotector-all              \
-       stackprotector                  \
-       volatile-register-var           \
+#
+# Note that this is not a complete list of all feature tests, just
+# those that are typically built on a fully configured system.
+#
+# [ Feature tests not mentioned here have to be built explicitly in
+#   the rule that uses them - an example for that is the 'bionic'
+#   feature check. ]
+#
+CORE_FEATURE_TESTS =                   \
+       backtrace                       \
+       dwarf                           \
        fortify-source                  \
-       bionic                          \
-       libelf                          \
        glibc                           \
-       dwarf                           \
-       libelf-mmap                     \
-       libelf-getphdrnum               \
-       libunwind                       \
-       libaudit                        \
-       libslang                        \
        gtk2                            \
        gtk2-infobar                    \
+       libaudit                        \
+       libbfd                          \
+       libelf                          \
+       libelf-getphdrnum               \
+       libelf-mmap                     \
+       libnuma                         \
        libperl                         \
        libpython                       \
        libpython-version               \
-       libbfd                          \
+       libslang                        \
+       libunwind                       \
        on-exit                         \
-       backtrace                       \
-       libnuma
+       stackprotector                  \
+       stackprotector-all              \
+       volatile-register-var
 
 #
 # Special fast-path for the 'all features are available' case:
@@ -136,10 +142,13 @@ FEATURE_TESTS =                           \
 $(call feature_check,all)
 
 ifeq ($(feature-all), 1)
-  $(foreach feat,$(FEATURE_TESTS),$(call feature_set,$(feat)))
+  #
+  # test-all.c passed - just set all the core feature flags to 1:
+  #
+  $(foreach feat,$(CORE_FEATURE_TESTS),$(call feature_set,$(feat)))
 else
-  $(shell $(MAKE) -i -j -C config/feature-checks >/dev/null 2>&1)
-  $(foreach feat,$(FEATURE_TESTS),$(call feature_check,$(feat)))
+  $(shell $(MAKE) -i -j -C config/feature-checks $(CORE_FEATURE_TESTS) >/dev/null 2>&1)
+  $(foreach feat,$(CORE_FEATURE_TESTS),$(call feature_check,$(feat)))
 endif
 
 feature_print = $(eval $(feature_print_code))
@@ -156,7 +165,7 @@ define feature_print_code
   $(info $(MSG))
 endef
 
-$(foreach feat,$(FEATURE_TESTS) DUMMY,$(call feature_print,$(feat)))
+$(foreach feat,$(CORE_FEATURE_TESTS) DUMMY,$(call feature_print,$(feat)))
 
 # newline at the end of the feature printouts:
 $(info )
index 4b855e0ccd0b74ccee2f261346308be2f4214224..d4c55acc82bba985bb0095528d34ad6f21aba4d5 100644 (file)
@@ -1,28 +1,29 @@
 
 FILES=                                 \
-       test-hello                      \
-       test-stackprotector-all         \
-       test-stackprotector             \
-       test-volatile-register-var      \
-       test-fortify-source             \
+       test-all                        \
+       test-backtrace                  \
        test-bionic                     \
-       test-libelf                     \
-       test-glibc                      \
        test-dwarf                      \
-       test-libelf-mmap                \
-       test-libelf-getphdrnum          \
-       test-libunwind                  \
-       test-libaudit                   \
-       test-libslang                   \
+       test-fortify-source             \
+       test-glibc                      \
        test-gtk2                       \
        test-gtk2-infobar               \
+       test-hello                      \
+       test-libaudit                   \
+       test-libbfd                     \
+       test-libelf                     \
+       test-libelf-getphdrnum          \
+       test-libelf-mmap                \
+       test-libnuma                    \
        test-libperl                    \
        test-libpython                  \
        test-libpython-version          \
-       test-libbfd                     \
+       test-libslang                   \
+       test-libunwind                  \
        test-on-exit                    \
-       test-backtrace                  \
-       test-libnuma
+       test-stackprotector-all         \
+       test-stackprotector             \
+       test-volatile-register-var
 
 CC := $(CC) -MD