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>

index | next in thread | previous in thread | raw e-mail

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.



home | help

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