diff mbox

[9/9] perf build: Use feature dump file for build-test

Message ID 1452687442-6186-10-git-send-email-wangnan0@huawei.com
State New
Headers show

Commit Message

Wang Nan Jan. 13, 2016, 12:17 p.m. UTC
To prevent feature check run too many times, this patch utilizes
previous introduced feature-dump make target and FEATURES_DUMP
variable, makes sure the feature checkers run only once when doing
build-test for normal test cases.

Signed-off-by: Wang Nan <wangnan0@huawei.com>

Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/tests/make | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

-- 
1.8.3.4

Comments

Wang Nan Jan. 14, 2016, 10:24 a.m. UTC | #1
On 2016/1/14 18:19, Jiri Olsa wrote:
> On Wed, Jan 13, 2016 at 12:17:22PM +0000, Wang Nan wrote:

>

> SNIP

>

>> +$(FEATURES_DUMP_FILE_STATIC):

>> +	$(call clean)

>> +	@cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) LDFLAGS='-static' feature-dump"; \

>> +	echo "- $@: $$cmd" && echo $$cmd && \

>> +	( eval $$cmd ) 2>&1

>> +

>> +$(foreach t,$(run) $(run_O),$(eval \

>> +	$(t): $(if $(findstring make_static,$(t)),\

>> +		$(FEATURES_DUMP_FILE_STATIC),\

>> +		$(FEATURES_DUMP_FILE))))

>> +

>> +$(foreach t,$(run),$(if $(findstring make_static,$(t)),\

>> +			$(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE_STATIC)),\

>> +			$(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE))))

>> +

> the BUILD_TEST_FEATURE_DUMP rebuild is not silent:

>

> [jolsa@krava perf]$ rm BUILD_TEST_FEATURE_DUMP

> [jolsa@krava perf]$ make -f tests/make

> Testing Makefile

> - /home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP: cd . && make FEATURE_DUMP_COPY=/home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP  feature-dump

> cd . && make FEATURE_DUMP_COPY=/home/jolsa/kernel/linux-perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump

>    BUILD:   Doing 'make -j4' parallel build

>

> Auto-detecting system features:

> ...                         dwarf: [ on  ]

> ...                         glibc: [ on  ]

> ...                          gtk2: [ on  ]

> ...                      libaudit: [ on  ]

> ...                        libbfd: [ on  ]

> ...                        libelf: [ on  ]

> ...                       libnuma: [ on  ]

> ...        numa_num_possible_cpus: [ on  ]

> ...                       libperl: [ on  ]

> ...                     libpython: [ on  ]

> ...                      libslang: [ on  ]

> ...                     libunwind: [ on  ]

> ...            libdw-dwarf-unwind: [ on  ]

> ...                          zlib: [ on  ]

> ...                          lzma: [ on  ]

> ...                     get_cpuid: [ on  ]

> ...                           bpf: [ on  ]

>

> ...

>

>

> also should 'make clean' remove BUILD_TEST_FEATURE_DUMP?


If a simple 'make clean' removes these two feature dump file then
they are unable to reused by multiple test cases. During build-test
'make clean' is called many times.

What about force removing these two files here:

ifeq ($(MAKECMDGOALS),)
# no target specified, trigger the whole suite
all:
         @rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) <--- 
*HERE*
         @echo "Testing Makefile";      $(MAKE) -sf tests/make MK=Makefile
         @echo "Testing Makefile.perf"; $(MAKE) -sf tests/make 
MK=Makefile.perf SET_PARALLEL=1 SET_O=1
else
# run only specific test over 'Makefile'
%:
         @rm -f $(FEATURES_DUMP_FILE) $(FEATURES_DUMP_FILE_STATIC) <--- 
*and HERE*
         @echo "Testing Makefile";      $(MAKE) -sf tests/make 
MK=Makefile $@
endif

> thanks,

> jirka
diff mbox

Patch

diff --git a/tools/perf/tests/make b/tools/perf/tests/make
index 336a6a6..10493ab 100644
--- a/tools/perf/tests/make
+++ b/tools/perf/tests/make
@@ -15,6 +15,7 @@  else
 PERF := .
 PERF_OUT := $(PERF)
 O_OPT :=
+FULL_O := $(shell readlink -f $(PERF_OUT) || echo $(PERF_OUT))
 
 ifneq ($(O),)
   FULL_O := $(shell readlink -f $(O) || echo $(O))
@@ -319,5 +320,29 @@  all: $(run) $(run_O) tarpkg make_kernelsrc make_kernelsrc_tools
 out: $(run_O)
 	@echo OK
 
+FEATURES_DUMP_FILE := $(FULL_O)/BUILD_TEST_FEATURE_DUMP
+FEATURES_DUMP_FILE_STATIC := $(FULL_O)/BUILD_TEST_FEATURE_DUMP_STATIC
+
+$(FEATURES_DUMP_FILE):
+	$(call clean)
+	@cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) feature-dump"; \
+	echo "- $@: $$cmd" && echo $$cmd && \
+	( eval $$cmd ) 2>&1
+
+$(FEATURES_DUMP_FILE_STATIC):
+	$(call clean)
+	@cmd="cd $(PERF) && make FEATURE_DUMP_COPY=$@ $(O_OPT) LDFLAGS='-static' feature-dump"; \
+	echo "- $@: $$cmd" && echo $$cmd && \
+	( eval $$cmd ) 2>&1
+
+$(foreach t,$(run) $(run_O),$(eval \
+	$(t): $(if $(findstring make_static,$(t)),\
+		$(FEATURES_DUMP_FILE_STATIC),\
+		$(FEATURES_DUMP_FILE))))
+
+$(foreach t,$(run),$(if $(findstring make_static,$(t)),\
+			$(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE_STATIC)),\
+			$(eval $(t) := $($(t)) FEATURES_DUMP=$(FEATURES_DUMP_FILE))))
+
 .PHONY: all $(run) $(run_O) tarpkg clean make_kernelsrc make_kernelsrc_tools
 endif # ifndef MK