[LEDE-DEV] [PATCH] build: log time taken by each packages/steps
Etienne Champetier
champetier.etienne at gmail.com
Wed Apr 4 11:21:38 PDT 2018
Hi Florian,
2018-04-04 13:44 GMT-03:00 Florian Fainelli <f.fainelli at gmail.com>:
> Hi Etienne,
>
> On 03/30/2018 09:22 PM, Etienne Champetier wrote:
>> The idea is to easily get the list of packages taking the most time to build,
>> and see if we can improve them
>
> I like the idea a lot although I was not getting timestamps printed for
> all steps of the build, for instance tools/* seems to have been
> completely missing while I would expect to see some timestamps printed
> there to possibly optimize the tools builds. This also applied to the
> toolchain part, does that match what you would be expecting?
I just wanted to know what packages take the most times but I agree
that extending it to all build step is a good thing.
I don't fully understand the build process, so if you see a better
spot to put this please go ahead
>
>>
>> Use SetupHostCommand as recommended by John
>>
>> Signed-off-by: Etienne Champetier <champetier.etienne at gmail.com>
>> ---
>> include/prereq-build.mk | 5 +++++
>> include/subdir.mk | 1 +
>> 2 files changed, 6 insertions(+)
>>
>> diff --git a/include/prereq-build.mk b/include/prlereq-build.mk
>> index 6a423d2c7d..7d5b2f2b45 100644
>> --- a/include/prereq-build.mk
>> +++ b/include/prereq-build.mk
>> @@ -139,6 +139,11 @@ $(eval $(call SetupHostCommand,bzip2,Please install 'bzip2', \
>> $(eval $(call SetupHostCommand,wget,Please install GNU 'wget', \
>> wget --version | grep GNU))
>>
>> +$(eval $(call SetupHostCommand,gtime,Please install GNU 'time', \
>> + gtime --version 2>&1 | grep GNU, \
>> + /usr/bin/time --version 2>&1 | grep GNU, \
>> + time --version 2>&1 | grep GNU))
>> +
>> $(eval $(call SetupHostCommand,perl,Please install Perl 5.x, \
>> perl --version | grep "perl.*v5"))
>>
>> diff --git a/include/subdir.mk b/include/subdir.mk
>> index 79a80528ae..546ed57ae6 100644
>> --- a/include/subdir.mk
>> +++ b/include/subdir.mk
>> @@ -43,6 +43,7 @@ log_make = \
>> $(if $(BUILD_LOG), \
>> set -o pipefail; \
>> mkdir -p $(BUILD_LOG_DIR)/$(1)$(if $(4),/$(4));) \
>> + gtime -f "time:$(1)$(if $(4),/$(4))/$(if $(3),$(3)-)$(2)\#%U\#%S\#%e" -- \
>
> Can we add a space between time and $(1) here?
Fine with me (I just want something easy to extract then parse)
Etienne
>
>> $$(SUBMAKE) $(subdir_make_opts) $(if $(3),$(3)-)$(2) \
>> $(if $(BUILD_LOG),SILENT= 2>&1 | tee $(BUILD_LOG_DIR)/$(1)$(if $(4),/$(4))/$(if $(3),$(3)-)$(2).txt)
>>
>>
>
> --
> Florian
More information about the Lede-dev
mailing list