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


Groups > linux.kernel > #1308335 > unrolled thread

[PATCH 0/9] perf build: Make build-test faster

Started byWang Nan <wangnan0@huawei.com>
First post2016-01-13 13:20 +0100
Last post2016-01-14 03:00 +0100
Articles 7 on this page of 27 — 5 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/9] perf build: Make build-test faster Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:20 +0100
    [PATCH 3/9] perf build: Test correct path of perf in build-test Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:20 +0100
      Re: [PATCH 3/9] perf build: Test correct path of perf in build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 11:00 +0100
        Re: [PATCH 3/9] perf build: Test correct path of perf in build-test "Wangnan (F)" <wangnan0@huawei.com> - 2016-01-14 11:00 +0100
      Re: [PATCH 3/9] perf build: Test correct path of perf in build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 11:00 +0100
      Re: [PATCH 3/9] perf build: Test correct path of perf in build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 11:10 +0100
      Re: [PATCH 3/9] perf build: Test correct path of perf in build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 11:10 +0100
        Re: [PATCH 3/9] perf build: Test correct path of perf in build-test "Wangnan (F)" <wangnan0@huawei.com> - 2016-01-14 11:20 +0100
    [PATCH 9/9] perf build: Use feature dump file for build-test Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:20 +0100
      Re: [PATCH 9/9] perf build: Use feature dump file for build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 11:20 +0100
        Re: [PATCH 9/9] perf build: Use feature dump file for build-test "Wangnan (F)" <wangnan0@huawei.com> - 2016-01-14 11:30 +0100
          Re: [PATCH 9/9] perf build: Use feature dump file for build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 13:50 +0100
      Re: [PATCH 9/9] perf build: Use feature dump file for build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 11:30 +0100
    [PATCH 4/9] perf build: Pass O option to kernel makefile in build-test Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:20 +0100
    [PATCH 5/9] perf build: Add feature-dump target Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:20 +0100
    [PATCH 7/9] tools build: Allow subprojects select all feature checkers Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:20 +0100
    [PATCH 8/9] perf build: Select all feature checkers for feature-dump Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:30 +0100
      Re: [PATCH 8/9] perf build: Select all feature checkers for  feature-dump Jiri Olsa <jolsa@redhat.com> - 2016-01-14 11:20 +0100
    [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:30 +0100
      Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in  build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 10:40 +0100
        Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test "Wangnan (F)" <wangnan0@huawei.com> - 2016-01-14 11:00 +0100
          Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in  build-test Jiri Olsa <jolsa@redhat.com> - 2016-01-14 15:40 +0100
            Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in  build-test Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-01-14 15:50 +0100
            Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test pi3orama <pi3orama@163.com> - 2016-01-14 16:30 +0100
          Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in  build-test Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-01-14 15:40 +0100
    [PATCH 6/9] perf build: Introduce FEATURES_DUMP make variable Wang Nan <wangnan0@huawei.com> - 2016-01-13 13:30 +0100
    Re: [PATCH 0/9] perf build: Make build-test faster "Wangnan (F)" <wangnan0@huawei.com> - 2016-01-14 03:00 +0100

Page 2 of 2 — ← Prev page 1 [2]


#1309135 — Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test

From"Wangnan (F)" <wangnan0@huawei.com>
Date2016-01-14 11:00 +0100
SubjectRe: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test
Message-ID<qQMRd-5dh-27@gated-at.bofh.it>
In reply to#1309119

On 2016/1/14 17:32, Jiri Olsa wrote:
> On Wed, Jan 13, 2016 at 12:17:15PM +0000, Wang Nan wrote:
>> Doesn't like tools/perf/Makefile, tools/perf/Makefile.perf obey 'O'
>> option when it is passed through cmdline only, because of code in
>> tools/scripts/Makefile.include:
>>
>>   ifneq ($(O),)
>>   ifeq ($(origin O), command line)
>>   	...
>>   	ABSOLUTE_O := $(shell cd $(O) ; pwd)
>>   	OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
>>   endif
>>   endif
>>
>> This patch passes 'O' to Makefile.perf through cmdline explicitly
>> to make it follow O variable during build-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 | 12 ++++++++++--
>>   1 file changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/perf/tests/make b/tools/perf/tests/make
>> index c0ee679..14d7b8d 100644
>> --- a/tools/perf/tests/make
>> +++ b/tools/perf/tests/make
>> @@ -5,7 +5,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 SET_PARALLEL=1
>> +	@echo "Testing Makefile.perf"; $(MAKE) -sf tests/make MK=Makefile.perf SET_PARALLEL=1 SET_O=1
>>   else
>>   # run only specific test over 'Makefile'
>>   %:
>> @@ -13,6 +13,14 @@ else
>>   endif
>>   else
>>   PERF := .
>> +O_OPT :=
>> +
>> +ifneq ($(O),)
>> +  FULL_O := $(shell readlink -f $(O) || echo $(O))
>> +  ifeq ($(SET_O),1)
>> +    O_OPT := 'O=$(FULL_O)'
>> +  endif
>> +endif
>>   
>>   PARALLEL_OPT=
>>   ifeq ($(SET_PARALLEL),1)
>> @@ -261,7 +269,7 @@ clean := @(cd $(PERF); make -s -f $(MK) clean >/dev/null)
>>   $(run):
>>   	$(call clean)
>>   	@TMP_DEST=$$(mktemp -d); \
>> -	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) DESTDIR=$$TMP_DEST $($@)"; \
>> +	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST $($@)"; \
> hum, but this set is to test make without O=... so why would you set it?
> run_O is the target for O=... tests

I have strong motivation to avoid polluting source directory.

I have different platforms and sometime I want to build them
(cross-compile) parallelly. I use yocto for this. Yocto appends 'O'
automatically. This is good for building, but when I use the
framework for build-test I have to manually adjust the generated
scripts (and it would be regenerated again in next run) to make it
work, and also I'm unable to test them in parallel.

For people who don't care about this, $(O_OPT) is empty so he/she
still tests without 'O=...' case.

Thank you.

[toc] | [prev] | [next] | [standalone]


#1309331 — Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test

FromJiri Olsa <jolsa@redhat.com>
Date2016-01-14 15:40 +0100
SubjectRe: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test
Message-ID<qQRe9-8oq-11@gated-at.bofh.it>
In reply to#1309135
On Thu, Jan 14, 2016 at 11:28:23AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Jan 14, 2016 at 05:56:06PM +0800, Wangnan (F) escreveu:
> > 
> > 
> > On 2016/1/14 17:32, Jiri Olsa wrote:
> > >On Wed, Jan 13, 2016 at 12:17:15PM +0000, Wang Nan wrote:
> > >>Doesn't like tools/perf/Makefile, tools/perf/Makefile.perf obey 'O'
> > >>option when it is passed through cmdline only, because of code in
> > >>tools/scripts/Makefile.include:
> > >>
> > >>  ifneq ($(O),)
> > >>  ifeq ($(origin O), command line)
> > >>  	...
> > >>  	ABSOLUTE_O := $(shell cd $(O) ; pwd)
> > >>  	OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
> > >>  endif
> > >>  endif
> > >>
> > >>This patch passes 'O' to Makefile.perf through cmdline explicitly
> > >>to make it follow O variable during build-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 | 12 ++++++++++--
> > >>  1 file changed, 10 insertions(+), 2 deletions(-)
> > >>
> > >>diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> > >>index c0ee679..14d7b8d 100644
> > >>--- a/tools/perf/tests/make
> > >>+++ b/tools/perf/tests/make
> > >>@@ -5,7 +5,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 SET_PARALLEL=1
> > >>+	@echo "Testing Makefile.perf"; $(MAKE) -sf tests/make MK=Makefile.perf SET_PARALLEL=1 SET_O=1
> > >>  else
> > >>  # run only specific test over 'Makefile'
> > >>  %:
> > >>@@ -13,6 +13,14 @@ else
> > >>  endif
> > >>  else
> > >>  PERF := .
> > >>+O_OPT :=
> > >>+
> > >>+ifneq ($(O),)
> > >>+  FULL_O := $(shell readlink -f $(O) || echo $(O))
> > >>+  ifeq ($(SET_O),1)
> > >>+    O_OPT := 'O=$(FULL_O)'
> > >>+  endif
> > >>+endif
> > >>  PARALLEL_OPT=
> > >>  ifeq ($(SET_PARALLEL),1)
> > >>@@ -261,7 +269,7 @@ clean := @(cd $(PERF); make -s -f $(MK) clean >/dev/null)
> > >>  $(run):
> > >>  	$(call clean)
> > >>  	@TMP_DEST=$$(mktemp -d); \
> > >>-	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) DESTDIR=$$TMP_DEST $($@)"; \
> > >>+	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST $($@)"; \
> > >hum, but this set is to test make without O=... so why would you set it?
> > >run_O is the target for O=... tests
> > 
> > I have strong motivation to avoid polluting source directory.
> 
> yeah!

heh, I knew you'd be excited ;-) but does that actually mean
that build-test will never run tests in source directory?

jirka

[toc] | [prev] | [next] | [standalone]


#1309344 — Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2016-01-14 15:50 +0100
SubjectRe: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test
Message-ID<qQRnQ-8rT-21@gated-at.bofh.it>
In reply to#1309331
Em Thu, Jan 14, 2016 at 03:37:28PM +0100, Jiri Olsa escreveu:
> On Thu, Jan 14, 2016 at 11:28:23AM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Jan 14, 2016 at 05:56:06PM +0800, Wangnan (F) escreveu:
> > > >>+	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST $($@)"; \
> > > >hum, but this set is to test make without O=... so why would you set it?
> > > >run_O is the target for O=... tests
> > > 
> > > I have strong motivation to avoid polluting source directory.
> > 
> > yeah!
> 
> heh, I knew you'd be excited ;-) but does that actually mean
> that build-test will never run tests in source directory?

Humm, I think this is something to be supported, but source code
repository polution is really bad and a pet peeve I have with
build-test, so the fact that Wang is working to remove that limitation
is indeed exciting :-)

- Arnaldo

[toc] | [prev] | [next] | [standalone]


#1309400 — Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test

Frompi3orama <pi3orama@163.com>
Date2016-01-14 16:30 +0100
SubjectRe: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test
Message-ID<qQS0y-uX-39@gated-at.bofh.it>
In reply to#1309331

发自我的 iPhone

> 在 2016年1月14日,下午10:37,Jiri Olsa <jolsa@redhat.com> 写道:
> 
>> On Thu, Jan 14, 2016 at 11:28:23AM -0300, Arnaldo Carvalho de Melo wrote:
>> Em Thu, Jan 14, 2016 at 05:56:06PM +0800, Wangnan (F) escreveu:
>>> 
>>> 
>>>> On 2016/1/14 17:32, Jiri Olsa wrote:
>>>>> On Wed, Jan 13, 2016 at 12:17:15PM +0000, Wang Nan wrote:
>>>>> Doesn't like tools/perf/Makefile, tools/perf/Makefile.perf obey 'O'
>>>>> option when it is passed through cmdline only, because of code in
>>>>> tools/scripts/Makefile.include:
>>>>> 
>>>>> ifneq ($(O),)
>>>>> ifeq ($(origin O), command line)
>>>>>    ...
>>>>>    ABSOLUTE_O := $(shell cd $(O) ; pwd)
>>>>>    OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
>>>>> endif
>>>>> endif
>>>>> 
>>>>> This patch passes 'O' to Makefile.perf through cmdline explicitly
>>>>> to make it follow O variable during build-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 | 12 ++++++++++--
>>>>> 1 file changed, 10 insertions(+), 2 deletions(-)
>>>>> 
>>>>> diff --git a/tools/perf/tests/make b/tools/perf/tests/make
>>>>> index c0ee679..14d7b8d 100644
>>>>> --- a/tools/perf/tests/make
>>>>> +++ b/tools/perf/tests/make
>>>>> @@ -5,7 +5,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 SET_PARALLEL=1
>>>>> +    @echo "Testing Makefile.perf"; $(MAKE) -sf tests/make MK=Makefile.perf SET_PARALLEL=1 SET_O=1
>>>>> else
>>>>> # run only specific test over 'Makefile'
>>>>> %:
>>>>> @@ -13,6 +13,14 @@ else
>>>>> endif
>>>>> else
>>>>> PERF := .
>>>>> +O_OPT :=
>>>>> +
>>>>> +ifneq ($(O),)
>>>>> +  FULL_O := $(shell readlink -f $(O) || echo $(O))
>>>>> +  ifeq ($(SET_O),1)
>>>>> +    O_OPT := 'O=$(FULL_O)'
>>>>> +  endif
>>>>> +endif
>>>>> PARALLEL_OPT=
>>>>> ifeq ($(SET_PARALLEL),1)
>>>>> @@ -261,7 +269,7 @@ clean := @(cd $(PERF); make -s -f $(MK) clean >/dev/null)
>>>>> $(run):
>>>>>    $(call clean)
>>>>>    @TMP_DEST=$$(mktemp -d); \
>>>>> -    cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) DESTDIR=$$TMP_DEST $($@)"; \
>>>>> +    cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST $($@)"; \
>>>> hum, but this set is to test make without O=... so why would you set it?
>>>> run_O is the target for O=... tests
>>> 
>>> I have strong motivation to avoid polluting source directory.
>> 
>> yeah!
> 
> heh, I knew you'd be excited ;-) but does that actually mean
> that build-test will never run tests in source directory?
> 

build-test should be able to run at source
directory, and I try to not passing extra
O option to make in this situation. This is the
reason why I choose to use O_OPT instead
of directly adding O=xxx to make command.

I tested all cases (with and without -O),
in and out of source directory (for v1. For v2
I remove some test cases). It should work.

Thank you.

[toc] | [prev] | [next] | [standalone]


#1309337 — Re: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2016-01-14 15:40 +0100
SubjectRe: [PATCH 2/9] perf build: Pass O option to Makefile.perf in build-test
Message-ID<qQRe9-8oq-13@gated-at.bofh.it>
In reply to#1309135
Em Thu, Jan 14, 2016 at 05:56:06PM +0800, Wangnan (F) escreveu:
> 
> 
> On 2016/1/14 17:32, Jiri Olsa wrote:
> >On Wed, Jan 13, 2016 at 12:17:15PM +0000, Wang Nan wrote:
> >>Doesn't like tools/perf/Makefile, tools/perf/Makefile.perf obey 'O'
> >>option when it is passed through cmdline only, because of code in
> >>tools/scripts/Makefile.include:
> >>
> >>  ifneq ($(O),)
> >>  ifeq ($(origin O), command line)
> >>  	...
> >>  	ABSOLUTE_O := $(shell cd $(O) ; pwd)
> >>  	OUTPUT := $(ABSOLUTE_O)/$(if $(subdir),$(subdir)/)
> >>  endif
> >>  endif
> >>
> >>This patch passes 'O' to Makefile.perf through cmdline explicitly
> >>to make it follow O variable during build-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 | 12 ++++++++++--
> >>  1 file changed, 10 insertions(+), 2 deletions(-)
> >>
> >>diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> >>index c0ee679..14d7b8d 100644
> >>--- a/tools/perf/tests/make
> >>+++ b/tools/perf/tests/make
> >>@@ -5,7 +5,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 SET_PARALLEL=1
> >>+	@echo "Testing Makefile.perf"; $(MAKE) -sf tests/make MK=Makefile.perf SET_PARALLEL=1 SET_O=1
> >>  else
> >>  # run only specific test over 'Makefile'
> >>  %:
> >>@@ -13,6 +13,14 @@ else
> >>  endif
> >>  else
> >>  PERF := .
> >>+O_OPT :=
> >>+
> >>+ifneq ($(O),)
> >>+  FULL_O := $(shell readlink -f $(O) || echo $(O))
> >>+  ifeq ($(SET_O),1)
> >>+    O_OPT := 'O=$(FULL_O)'
> >>+  endif
> >>+endif
> >>  PARALLEL_OPT=
> >>  ifeq ($(SET_PARALLEL),1)
> >>@@ -261,7 +269,7 @@ clean := @(cd $(PERF); make -s -f $(MK) clean >/dev/null)
> >>  $(run):
> >>  	$(call clean)
> >>  	@TMP_DEST=$$(mktemp -d); \
> >>-	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) DESTDIR=$$TMP_DEST $($@)"; \
> >>+	cmd="cd $(PERF) && make -f $(MK) $(PARALLEL_OPT) $(O_OPT) DESTDIR=$$TMP_DEST $($@)"; \
> >hum, but this set is to test make without O=... so why would you set it?
> >run_O is the target for O=... tests
> 
> I have strong motivation to avoid polluting source directory.

yeah!
 
> I have different platforms and sometime I want to build them
> (cross-compile) parallelly. I use yocto for this. Yocto appends 'O'
> automatically. This is good for building, but when I use the
> framework for build-test I have to manually adjust the generated
> scripts (and it would be regenerated again in next run) to make it
> work, and also I'm unable to test them in parallel.
> 
> For people who don't care about this, $(O_OPT) is empty so he/she
> still tests without 'O=...' case.
> 
> Thank you.

[toc] | [prev] | [next] | [standalone]


#1308354 — [PATCH 6/9] perf build: Introduce FEATURES_DUMP make variable

FromWang Nan <wangnan0@huawei.com>
Date2016-01-13 13:30 +0100
Subject[PATCH 6/9] perf build: Introduce FEATURES_DUMP make variable
Message-ID<qQsIO-84i-19@gated-at.bofh.it>
In reply to#1308335
From: Jiri Olsa <jolsa@kernel.org>

Introducing FEATURES_DUMP make variable to provide features
detection dump file and bypass the feature detection.

The intention is to use this during build tests to skip
repeated features detection, like:

Get feature dump static build into /tmp/fd file:
  $ make feature-dump FEATURE_DUMP_COPY=/tmp/fd LDFLAGS=-static
    BUILD:   Doing 'make -j4' parallel build

  Auto-detecting system features:
  ...                         dwarf: [ OFF ]

  SNIP

  FEATURE-DUMP file copied into /tmp/fd

Use /tmp/fd to build perf:
  $ make FEATURES_DUMP=/tmp/fd LDFLAGS=-static

  $ file perf
  perf: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for ...

Suggested-by: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-fhb47m6t18txuwrzu33is2bo@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
 tools/perf/Makefile.perf   | 14 +++++++++++++-
 tools/perf/config/Makefile |  4 ++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index f758a72..5d34815 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -77,6 +77,9 @@ include config/utilities.mak
 # Define NO_AUXTRACE if you do not want AUX area tracing support
 #
 # Define NO_LIBBPF if you do not want BPF support
+#
+# Define FEATURES_DUMP to provide features detection dump file
+# and bypass the feature detection
 
 # As per kernel Makefile, avoid funny character set dependencies
 unexport LC_ALL
@@ -166,6 +169,15 @@ ifeq ($(config),1)
 include config/Makefile
 endif
 
+# The FEATURE_DUMP_EXPORT holds location of the actual
+# FEATURE_DUMP file to be used to bypass feature detection
+# (for bpf or any other subproject)
+ifeq ($(FEATURES_DUMP),)
+FEATURE_DUMP_EXPORT := $(realpath $(OUTPUT)FEATURE-DUMP)
+else
+FEATURE_DUMP_EXPORT := $(FEATURES_DUMP)
+endif
+
 export prefix bindir sharedir sysconfdir DESTDIR
 
 # sparse is architecture-neutral, which means that we need to tell it
@@ -436,7 +448,7 @@ $(LIBAPI)-clean:
 	$(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) clean >/dev/null
 
 $(LIBBPF): fixdep FORCE
-	$(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a FEATURES_DUMP=$(realpath $(OUTPUT)FEATURE-DUMP)
+	$(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a FEATURES_DUMP=$(FEATURE_DUMP_EXPORT)
 
 $(LIBBPF)-clean:
 	$(call QUIET_CLEAN, libbpf)
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index e5959c1..511141b 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -181,7 +181,11 @@ LDFLAGS += -Wl,-z,noexecstack
 
 EXTLIBS = -lpthread -lrt -lm -ldl
 
+ifeq ($(FEATURES_DUMP),)
 include $(srctree)/tools/build/Makefile.feature
+else
+include $(FEATURES_DUMP)
+endif
 
 ifeq ($(feature-stackprotector-all), 1)
   CFLAGS += -fstack-protector-all
-- 
1.8.3.4

[toc] | [prev] | [next] | [standalone]


#1308954

From"Wangnan (F)" <wangnan0@huawei.com>
Date2016-01-14 03:00 +0100
Message-ID<qQFmF-8hY-3@gated-at.bofh.it>
In reply to#1308335
Hi, Jiri and Arnaldo,

  You can find this series on git-tree:

git://git.kernel.org/pub/scm/linux/kernel/git/pi3orama/linux.git 
perf/build-test

Other patches I sent these days can be found in perf/ebpf and 
perf/overwrite.

Thank you.

On 2016/1/13 20:17, Wang Nan wrote:
> Utilize Jiri's two RFCs to make build-test faster.
>
> Before his RFC on a 24 core machine:
>   real    21m16.579s
>   user    176m12.989s
>   sys    20m54.950s
>
> After his RFC:
>   real	16m0.619s
>   user	172m53.896s
>   sys	19m22.777s
>
> Speedup: 24.75%.
>
> Jiri Olsa (2):
>    perf build: Add feature-dump target
>    perf build: Introduce FEATURES_DUMP make variable
>
> Wang Nan (7):
>    perf build: Set parallel making options build-test
>    perf build: Pass O option to Makefile.perf in build-test
>    perf build: Test correct path of perf in build-test
>    perf build: Pass O option to kernel makefile in build-test
>    tools build: Allow subprojects select all feature checkers
>    perf build: Select all feature checkers for feature-dump
>    perf build: Use feature dump file for build-test
>
>   tools/build/Makefile.feature | 21 +++++++++++-
>   tools/perf/Makefile.perf     | 30 ++++++++++++++++-
>   tools/perf/config/Makefile   |  4 +++
>   tools/perf/tests/make        | 80 +++++++++++++++++++++++++++++++++++---------
>   4 files changed, 118 insertions(+), 17 deletions(-)
>

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | linux.kernel


csiph-web