Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Feb 2023 14:10:58 +0100
From:      Matthias Andree <matthias.andree@tu-dortmund.de>
To:        Alexey Dokuchaev <danfe@freebsd.org>
Cc:        Piotr Kubaj <pkubaj@freebsd.org>, ports-committers@freebsd.org, dev-commits-ports-all@freebsd.org, dev-commits-ports-main@freebsd.org
Subject:   Re: git: c8c2d4f22536 - main - lang/python3: allow using LTO on powerpc64
Message-ID:  <b55eb60d-35b4-6b00-8f4a-9f60c7c71c42@tu-dortmund.de>
In-Reply-To: <Y/tP6VomDdWJGjhj@FreeBSD.org>
References:  <202302241548.31OFmQ39049727@gitrepo.freebsd.org> <98e988fa-9c8b-abee-8357-1cacd7462014@tu-dortmund.de> <Y/tP6VomDdWJGjhj@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 26.02.23 um 13:26 schrieb Alexey Dokuchaev:
> On Sun, Feb 26, 2023 at 01:00:19PM +0100, Matthias Andree wrote:
>> Am 24.02.23 um 16:48 schrieb Piotr Kubaj:
>>> commit c8c2d4f2253694802ef720f098c57800570ad2fc
>>>
>>>    lang/python3: allow using LTO on powerpc64
>>>
>>>    It was recently fixed and will be available in 13.2-RELEASE.
>>>    Since LTO is not enabled by default, it's ok to make it available.
>>
>> Careful. LTO causes EXCESSIVE memory use for the build.
>> I've had to disable it for a low-memory server I operate (amd64 based,
>> but that's the LTO feature itself, not the CPU).
> 
> I think most people just disable LTO because they don't have 256GB+ or
> whatever amount of RAM it demands for arguably rather little gain.
> 
> Putting OPTIONS_UNSET+=LTO in your /etc/make.conf makes the ports tree
> much more usable.

It depends how well software is written, and LTO can make a considerable 
difference.  But it is extremely expensive currently, so it's probably 
easier to enable only on certain ports that really benefit at run-time.

We would require something like a resource scheduler for poudriere or 
the ports build system, which tracks how much RAM and disk space we need 
on a certain port, architecture, possibly FreeBSD version, and with 
certain specific options.

My builder has 16 GB RAM (virtually, it's normally in a virtual machine, 
but can boot natively) and building compilers in parallel usually fails. 
I have limited JOBS to like 6 or so.

If the builds framework could track how much memory and disk space a 
certain build needed, and possibly the expected build time, it could 
make better decisions, for instance, if it dispatched a rust or llvm 
build, it would hold off on other compiler builds and instead build 
several dozen Perl or Python ports in parallel to rust.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b55eb60d-35b4-6b00-8f4a-9f60c7c71c42>