Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1304612

[PATCH 4/6] perf tools: Set parallel making options build-test

From Wang Nan <wangnan0@huawei.com>
Newsgroups linux.kernel
Subject [PATCH 4/6] perf tools: Set parallel making options build-test
Date 2016-01-08 15:30 +0100
Message-ID <qOGdd-7Wi-35@gated-at.bofh.it> (permalink)
References <qOGdc-7Wi-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


'make build-test' is painful because of time consuming. In a full test,
all test cases are built twice with tools/perf/Makefile and
tools/perf/Makefile.perf. 'Makefile' automatically computes parallel
options for make, but 'Makefile.perf' not, so all test cases is built
with one job. It is very slow.

This patch adds '-j' options to Makefile.perf testing. It computes
parallel building options like what tools/perf/Makefile does, and pass
'-j' option to Makefile.perf test.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/tests/make | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/tools/perf/tests/make b/tools/perf/tests/make
index 130be7c..bd9c61a 100644
--- a/tools/perf/tests/make
+++ b/tools/perf/tests/make
@@ -3,7 +3,7 @@ ifeq ($(MAKECMDGOALS),)
 # no target specified, trigger the whole suite
 all:
 	@echo "Testing Makefile";      $(MAKE) -sf tests/make MK=Makefile
-	@echo "Testing Makefile.perf"; $(MAKE) -sf tests/make MK=Makefile.perf
+	@echo "Testing Makefile.perf"; $(MAKE) -sf tests/make MK=Makefile.perf SET_PARALLEL=1
 else
 # run only specific test over 'Makefile'
 %:
@@ -12,6 +12,15 @@ endif
 else
 PERF := .
 
+PARALLEL_OPT=
+ifeq ($(SET_PARALLEL),1)
+  cores := $(shell (getconf _NPROCESSORS_ONLN || egrep -c '^processor|^CPU[0-9]' /proc/cpuinfo) 2>/dev/null)
+  ifeq ($(cores),0)
+    cores := 1
+  endif
+  PARALLEL_OPT="-j$(cores)"
+endif
+
 include config/Makefile.arch
 
 # FIXME looks like x86 is the only arch running tests ;-)
@@ -238,7 +247,7 @@ clean := @(cd $(PERF); make -s -f $(MK) clean >/dev/null)
 $(run):
 	$(call clean)
 	@TMP_DEST=$$(mktemp -d); \
-	cmd="cd $(PERF) && make -f $(MK) DESTDIR=$$TMP_DEST $($@)"; \
+	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) DESTDIR=$$TMP_DEST $($@)"; \
 	echo "- $@: $$cmd" && echo $$cmd > $@ && \
 	( eval $$cmd ) >> $@ 2>&1; \
 	echo "  test: $(call test,$@)" >> $@ 2>&1; \
@@ -249,7 +258,7 @@ $(run_O):
 	$(call clean)
 	@TMP_O=$$(mktemp -d); \
 	TMP_DEST=$$(mktemp -d); \
-	cmd="cd $(PERF) && make -f $(MK) O=$$TMP_O DESTDIR=$$TMP_DEST $($(patsubst %_O,%,$@))"; \
+	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) O=$$TMP_O DESTDIR=$$TMP_DEST $($(patsubst %_O,%,$@))"; \
 	echo "- $@: $$cmd" && echo $$cmd > $@ && \
 	( eval $$cmd ) >> $@ 2>&1 && \
 	echo "  test: $(call test_O,$@)" >> $@ 2>&1; \
@@ -263,15 +272,15 @@ tarpkg:
 	rm -f $@
 
 make_kernelsrc:
-	@echo "- make -C <kernelsrc> tools/perf"
+	@echo "- make -C <kernelsrc> $(PARALLEL_OPT) tools/perf"
 	$(call clean); \
-	(make -C ../.. tools/perf) > $@ 2>&1 && \
+	(make -C ../.. $(PARALLEL_OPT) tools/perf) > $@ 2>&1 && \
 	test -x perf && rm -f $@ || (cat $@ ; false)
 
 make_kernelsrc_tools:
-	@echo "- make -C <kernelsrc>/tools perf"
+	@echo "- make -C <kernelsrc>/tools $(PARALLEL_OPT) perf"
 	$(call clean); \
-	(make -C ../../tools perf) > $@ 2>&1 && \
+	(make -C ../../tools $(PARALLEL_OPT) perf) > $@ 2>&1 && \
 	test -x perf && rm -f $@ || (cat $@ ; false)
 
 all: $(run) $(run_O) tarpkg make_kernelsrc make_kernelsrc_tools
-- 
1.8.3.4

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/6] perf tools: Improve 'make build-test' Wang Nan <wangnan0@huawei.com> - 2016-01-08 15:30 +0100
  [PATCH 5/6] perf tools: Pass O option to Makefile.perf in build-test Wang Nan <wangnan0@huawei.com> - 2016-01-08 15:30 +0100
  [PATCH 2/6] perf tools: Add missing headers in perf's MANIFEST Wang Nan <wangnan0@huawei.com> - 2016-01-08 15:30 +0100
    [tip:perf/core] perf tools: Add missing headers in perf'  s MANIFEST tip-bot for Wang Nan <tipbot@zytor.com> - 2016-01-09 17:40 +0100
    Re: [PATCH] perf tools: Add missing sources in perf's MANIFEST "Wangnan (F)" <wangnan0@huawei.com> - 2016-01-11 10:50 +0100
      Re: [PATCH] perf tools: Add missing sources in perf's MANIFEST Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-01-11 15:20 +0100
    [PATCH] perf tools: Add missing sources in perf's MANIFEST Jiri Olsa <jolsa@redhat.com> - 2016-01-11 10:50 +0100
  [PATCH 4/6] perf tools: Set parallel making options build-test Wang Nan <wangnan0@huawei.com> - 2016-01-08 15:30 +0100
    Re: [PATCH 4/6] perf tools: Set parallel making options build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-11 10:40 +0100
  Re: [PATCH 0/6] perf tools: Improve 'make build-test' Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-01-08 15:40 +0100
    Re: [PATCH 0/6] perf tools: Improve 'make build-test' "Wangnan (F)" <wangnan0@huawei.com> - 2016-01-11 04:00 +0100
      Re: [PATCH 0/6] perf tools: Improve 'make build-test' Jiri Olsa <jolsa@redhat.com> - 2016-01-11 09:50 +0100

csiph-web