On 3/29/21 8:17 PM, Michel Alexandre Salim wrote:
Hi again,
On Fri, 2021-03-26 at 17:29 -0700, Michel Alexandre Salim wrote:
>
[snip]
> Right now I'm just overriding _smp_build_ncpus to 1, but there is a
> more elegant solution I'd like to propose:
>
> What if one can declaratively set the required RAM per build job --
> either with a single macro, or maybe two if the LTO usecase requires
> even more RAM. e.g. to declare each core might take up to 8 GB:
>
> %global _smp_build_ram_per_cpu 8192
>
> then in case this is run on our aarch64 builder with 40GB RAM,
> dynamically take the minimum of the existing _smp_build_ncpus (which
> AIUI is determined by the number of cores on the machine) and (amount
> of RAM / _smp_build_ram_per_cpu), in this case capping the actual
> number passed to -j to 5.
>
> Is there interest in having this be available? I could imagine it
> might
> be useful for other resource-intensive package builds e.g. for
> Chromium.
>
Thanks to Dennis, Dan and Miroslav for the helpful pointers!
Short-term I'll look into adopting something similar to the Ceph
script, but medium-term - maybe we can get the scriptlet into redhat-
rpm-config and then eventually have it in RPM itself once Panu's patch
is reworked?
(Having it in redhat-rpm-config or some other RPM is probably needed
anyway, for older supported releases, so ideally we use the same macros
and only override them in redhat-rpm-config if they were undefined).
cc:ing Panu for context on the RPM PR status.
There's no progress on that front, other than occasionally thinking
about it.
It might not be a bad idea to be able to put an actual BuildRequire on
the amount of memory (and other similar - disk space also comes to mind)
into specs.
- Panu -