Re: Improving www/chromium build time on arm64

From: Nuno Teixeira <eduardo_at_freebsd.org>
Date: Tue, 30 May 2023 10:53:24 UTC
(...)

(I've missed OPTIONS_EXCLUDE_aarch64=LTO so forgeting it.)

Conlusion:

Thats a big difference on compilation times:

---
build of www/firefox | firefox-113.0.2_1,2
build time: 05:35:57
---
build of www/chromium | chromium-113.0.5672.126
build time: 56:59:23
---
But I'm enjoying the fast and smooth chrome run.
Really nice.

Nuno Teixeira <eduardo@freebsd.org> escreveu no dia terça, 30/05/2023 à(s)
11:07:

> Hello Mark,
>
> Wrong poudriere.conf. Uploaded correct one.
>
> Summary:
> ---
> USE_TMPFS=no
> PARALLEL_JOBS=1
> ALLOW_MAKE_JOBS=yes
> MAX_EXECUTION_TIME=259200
> NOHANG_TIME=259200
> ---
>
> htop showed me 4<load<5 (around 4,70) with temperature at ~60/65 degrees
> Celsius
>
> Mark Millard <marklmi@yahoo.com> escreveu no dia terça, 30/05/2023 à(s)
> 10:47:
>
>> On May 30, 2023, at 01:39, Nuno Teixeira <eduardo@freebsd.org> wrote:
>>
>> > Hello Ronald and all!
>> >
>> > Finally I build it after 57 hours @ 2000MHz !!!
>>
>> So the prior "[88:53:28] Failed ports: www/chromium:build/timeout"
>> was not with the overclocking? Other differences that could
>> contribute to the time difference?
>>
>> MAX_EXECUTION_TIME=86400 (the default) only allows for 24 hours
>> before it starts analyzing the log for failure information (while
>> letting the build continue while that scanning is done).
>>
>> > Configs, photos and log at:
>> https://people.freebsd.org/~eduardo/logs/chromium/
>>
>> https://people.freebsd.org/~eduardo/logs/chromium/poudriere.conf
>> shows no assignments to MAX_EXECUTION_TIME or NOHANG_TIME or
>> other such (outside comments). In the comments are the default
>> values, not increases.
>>
>> Similarly for PARALLEL_JOBS , PREPARE_PARALLEL_JOBS , ALLOW_MAKE_JOBS ,
>> and so on. (It is not clear what the load average behavior/ idle time
>> behavior might have been.)
>>
>> The file does show explicit assignments to: ZPOOL, FREEBSD_HOST ,
>> RESOLV_CONF , BASEFS , USE_PORTLINT , USE_TMPFS , DISTFILES_CACHE ,
>> and PACKAGE_FETCH_URL .
>>
>> > I'm running it right now and it runs very smooth!
>> >
>> > Next step will be compiling with LTO to check compile time and do some
>> comparisons on binary size and run performance.
>> >
>> > Should I bother with LTO? Will it add performance?
>> >
>> > Thanks all!
>> >
>> >
>> > Ronald Klop <ronald-lists@klop.ws> escreveu no dia terça, 23/05/2023
>> à(s) 11:23:
>> >> Â
>> >>> Van: Nuno Teixeira <eduardo@freebsd.org>
>> >>> Datum: dinsdag, 23 mei 2023 09:48
>> >>> Aan: FreeBSD Mailing List <freebsd-ports@freebsd.org>,
>> freebsd-arm@freebsd.org
>> >>> Onderwerp: Re: Improving www/chromium build time on arm64
>> >>> (...)
>> >>> Â
>> >>> But I also found that poudriere:
>> >>> [88:53:28] Failed ports: www/chromium:build/timeout
>> >>> Â
>> >>> So I will search how do I increase build time to avoid timeout:
>> >>> ---
>> >>> # This defines the max time (in seconds) that a command may run for a
>> build
>> >>> # before it is killed for taking too long. Default: 86400
>> >>> #MAX_EXECUTION_TIME=86400
>> >>> ---
>> >>> Â
>> >>> I suspect it can be the cause of build failure because build >24h.
>> >>> Â
>> >>> Nuno Teixeira <eduardo@freebsd.org> escreveu no dia terça,
>> 23/05/2023 Ã (s) 08:31:
>> >>> Hello all,
>> >>> Â
>> >>> I'm running 13-STABLE on rpi4 8 and since firefox{-esr} is constantly
>> tab crashing and seg faulting I decided to give chromium a try.
>> >>> chromium pkg isn't available for arm64 and I didn't found error log
>> at https://pkg-status.freebsd.org/ so I decided to build it on poudriere.
>> >>> Â
>> >>> It fails to build around 70% but my biggest concern is build time: 27
>> hours for 70% compilation!
>> >>> Â
>> >>> Just for comparison:
>> >>> llvm15: 12h
>> >>> rust: 9h
>> >>> firefox: 6h
>> >>> Â
>> >>> rip4 v1.5 8GB @ 2000Hz ~62 Celsius
>> >>> zfs
>> >>> poudriere:
>> >>> USE_TMPFS=no
>> >>> PARALLEL_JOBS=1
>> >>> ALLOW_MAKE_JOBS=yes
>> >>> Â
>> >>> Any hints on how to speed build? ccache?
>> >>> Does cflags "-O -pipe" not present in compilation is related to build
>> time?
>> >>> Â
>> >>> Full log:
>> >>>
>> https://people.freebsd.org/~eduardo/logs/chromium/chromium-113.0.5672.126.log
>> >>> Â
>> >>> Thanks!
>> >>> Â
>> >>> ---
>> >>> <SNIP>
>> >>> In file included from ../../base/check.h:11:
>> >>> ../../base/compiler_specific.h:8:10: fatal error:
>> 'build/build_config.h' file not found
>> >>> #include "build/build_config.h"
>> >>>          ^~~~~~~~~~~~~~~~~~~~~~
>> >>> 1 error generated.
>> >>> ninja: build stopped: subcommand failed.
>> >>> ===> Compilation failed unexpectedly.
>> >>> Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the
>> failure to
>> >>> the maintainer.
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make: stopped in /usr/ports/www/chromium
>> >>> build of www/chromium | chromium-113.0.5672.126 ended at Tue May 23
>> 02:22:56 WEST 2023
>> >>> build time: 27:15:37
>> >>> !!! build failure encountered !!!
>> >>> ---
>> >>> -- Nuno Teixeira
>> >>> FreeBSD Committer (ports)
>> >>>   Â
>> >>> -- Nuno Teixeira
>> >>> FreeBSD Committer (ports)
>> >>>
>> >>
>> >> Hi,
>> >>
>> >> My poudriere.conf for building ports on rpi4 contains these two
>> changes:
>> >>
>> >> # This defines the max time (in seconds) that a command may run for a
>> build
>> >> # before it is killed for taking too long. Default: 86400
>> >> #MAX_EXECUTION_TIME=86400
>> >> MAX_EXECUTION_TIME=172800
>> >>
>> >> # This defines the time (in seconds) before a command is considered to
>> >> # be in a runaway state for having no output on stdout. Default: 7200
>> >> #NOHANG_TIME=7200
>> >> NOHANG_TIME=172800
>> >>
>> >>
>> >> I'm maintaining some mongodb ports which also take a long long time to
>> build on rpi4.
>> >> But I don't remember which of these settings has the preferred impact
>> on your situation.
>> >>
>> >> Oh... now I'm reading your log better. It contains this:
>> >> "=>> Killing timed out build after 86400 seconds"
>> >>
>> >> And some time later:
>> >> "=>> Cleaning up wrkdir
>> >> ===> Cleaning for chromium-113.0.5672.126"
>> >>
>> >> So the errors about missing files happen because poudriere is removing
>> files while some processes of the build are still running.
>> >>
>> >> I'm curious how far it gets after you increase MAX_EXECUTION_TIME.
>> >
>>
>> ===
>> Mark Millard
>> marklmi at yahoo.com
>>
>>
>
> --
> Nuno Teixeira
> FreeBSD Committer (ports)
>


-- 
Nuno Teixeira
FreeBSD Committer (ports)