# Goals
The purpose of this SIG is to quantify the potential benefits of
applying existing compiler technology to distribution packages,
targeting more recent CPUs, and evaluating different options for how
these optimizations can be maintained in a scalable way, and delivered
to end users.
Today, there is a significant delay between the release of new x86-64
ISAs and the adoption across the entire CentOS distribution. For
example, CentOS 9 Stream released with the x86-64-v2 ISA baseline, nine
to thirteen years after such CPUs became commercially available. The
concern is that this discrepancy leaves more recent CPU features unused,
and end users do not see the best possible performance for the CPUs they
use.
Parts of the distribution are built with run-time selected
optimizations, but this only applies to specialized functional areas,
such as string manipulation, certain mathematical operations, and
cryptography, but not (for example) to language interpreters that are
part of CentOS.
# Status
Proposed: RFC and looking for a sponsoring Governing Board member
# What’s in scope
* Explore the immediate runtime performance impact of package-specific
ISA-related work on key workloads e.g. language interpreters.
* Evaluate the performance benefit at run-time of building CentOS with
auto-vectorization and the very-cheap cost model and different x86-64
micro-architecture levels.
* Explore ways how these performance-enhancing builds can be maintained
at the distribution level and made available to end users for
installation.
* Assess the image/container size impact of those additional optimized
builds (this may not be applicable to some delivery mechanisms).
* Explore ways to alert users that they do not get optimal performance
because of misconfigured hypervisors.
* It is possible, but not likely, that work across the entire
distribution may be needed to enable shadow stacks. (Userspace
enablement happened as part of CentOS 8, but the kernel parts are not
upstream and have changed significantly, so there is some
uncertainty.) If large-scale work affecting many packages is needed,
the SIG would be a natural place to prototype changes before
integration into the distribution.
# What's not in scope
* Enablement for future x86 CPUs and chipsets, assemblers, linkers, and
compiler support for new ISAs including regular performance work on
individual packages (e.g., identified upstream backports). Hardware
enablement must follow existing processes.
* Any 32-bit work (such as 64-bit time_t, or a 32-bit kernel) is
explicitly excluded.
* The focus will be on userspace changes.
* Rebuilds for potential observability improvements are out of scope
(although shadow stacks are expected to help in this a
* Adding additional hosts to the CentOS infrastructure in support of
this SIG needs to be negotiated with the CentOS infrastructure
team. The CPU microarchitecture level of the existing infrastructure
is already sufficient.
# Roadmap
March 2023: Start the SIG and coordinate with partners
April 2023: Adopt existing CentOS builder resources to deliver the
required builds.
May 2023: Initial performance analysis results.
Rest TBD based on results of exploration.
Resources
They SIG could benefit from spare x86-64 Koji builder capacity.