[CentOS-devel] Proposal: CentOS x86 SIG

Mon Feb 27 21:54:58 UTC 2023
Josh Boyer <jwboyer at redhat.com>

On Mon, Feb 27, 2023 at 4:46 PM Neal Gompa <ngompa13 at gmail.com> 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.
>
> I also would not suggest calling this the x86 SIG, since that is
> misleading. Consider expanding to compiler flag analysis and tuning

I don't think it's misleading at all.  The proposal is pretty clear
that they're looking at x86_64 and that's it.  It might not be what
you would recommend, but I don't think they are misleading anyone with
the proposal as written.

> 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.

I disagree.  What you suggest is certainly a direction that could
happen, but it's big, grand, and unwieldy.  By retaining a scope on a
specific architecture, the SIG can focus and make concrete, actionable
suggestions and improvements.

I certainly appreciate larger and more comprehensive efforts, but I
think we collectively bite off more than we can chew sometimes.  I
find a SIG with a specific goal refreshing.

> 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?

I think there's certainly an aspect of this that ELN plays a part in,
but I don't see it as a good basis for the comparison aspects without
doing more throwaway work.

josh

> 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