[CentOS-devel] Proposal: CentOS x86 SIG

Mon Feb 27 23:42:30 UTC 2023
Brian Stinson <brian at bstinson.com>


On Mon, Feb 27, 2023, at 15:45, Neal Gompa wrote:
> On Mon, Feb 27, 2023 at 12:23 PM Florian Weimer <fweimer at redhat.com> wrote:
>>
>> # 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.
>
> Note that SIGs do not have access to distribution Koji. This would be
> hugely problematic to do in CBS given all the potential collisions in
> NVRs that it could create. I would suggest if this SIG is greenlit
> that a dedicated Koji instance would be spun up for this.

We can provide separate disttags to this group. I think that given the mission they'll be incentivized to pay close attention to the NVRs between the distro and SIG content. 

>
> I also would not suggest calling this the x86 SIG, since that is
> misleading. Consider expanding to compiler flag analysis and tuning
> across all CentOS architectures rather than just narrowly looking at
> x86_64 micro-architecture levels. That ensures this SIG has some
> reasonable longevity rather than being a weird short-term experiment
> thing. It is worth exploring improvements for all architectures, since
> research on that front doesn't happen enough as it is. You could still
> start with x86, but giving opportunities to grow beyond that would be
> better for the community overall if this is done.
>
> Another aspect, I'm not sure what value this provides because existing
> CentOS/RHEL releases can't change, so wouldn't this make more sense to
> do as alternative Koji roots for Fedora ELN, which is closer to CentOS
> Stream 10 than anything in the CentOS Project has?
>
> Additionally, what is your plan for community engagement? What kind of
> contribution model do you plan to have? Finally, do you have a group
> of folks in mind you're interested in reaching out to participate in
> CentOS for this?
>
>
>
>
> --
> 真実はいつも一つ!/ Always, there's only one truth!
> _______________________________________________
> CentOS-devel mailing list
> CentOS-devel at centos.org
> https://lists.centos.org/mailman/listinfo/centos-devel

--Brian