Re: Improving www/chromium build time on arm64

From: Nuno Teixeira <eduardo_at_freebsd.org>
Date: Tue, 30 May 2023 10:07:21 UTC
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)