From: "Arnd Bergmann" <arnd@arndb.de>
To: "Linus Torvalds" <torvalds@linux-foundation.org>,
"Arnd Bergmann" <arnd@kernel.org>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
"Thomas Gleixner" <tglx@linutronix.de>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Matthew Wilcox" <willy@infradead.org>,
"Sean Christopherson" <seanjc@google.com>,
"Davide Ciminaghi" <ciminaghi@gnudd.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
kvm@vger.kernel.org
Subject: Re: [PATCH 09/11] x86: rework CONFIG_GENERIC_CPU compiler flags
Date: Wed, 04 Dec 2024 20:43:35 +0100 [thread overview]
Message-ID: <d189f1a1-40d4-4f19-b96e-8b5dd4b8cefe@app.fastmail.com> (raw)
In-Reply-To: <CAHk-=wh_b8b1qZF8_obMKpF+xfYnPZ6t38F1+5pK-eXNyCdJ7g@mail.gmail.com>
On Wed, Dec 4, 2024, at 19:10, Linus Torvalds wrote:
> "On second thought , let’s not go to x86-64 microarchitectural
> levels. ‘Tis a silly place"
Fair enough. I'll just make it use -march=x86_64 to override
the compiler default then.
> On Wed, 4 Dec 2024 at 02:31, Arnd Bergmann <arnd@kernel.org> wrote:
>>
>> To allow reliably building a kernel for either the oldest x86-64
>> CPUs or a more recent level, add three separate options for
>> v1, v2 and v3 of the architecture as defined by gcc and clang
>> and make them all turn on CONFIG_GENERIC_CPU.
>
> The whole "v2", "v3", "v4" etc naming seems to be some crazy glibc
> artifact and is stupid and needs to die.
>
> It has no relevance to anything. Please do *not* introduce that
> mind-fart into the kernel sources.
>
> I have no idea who came up with the "microarchitecture levels"
> garbage, but as far as I can tell, it's entirely unofficial, and it's
> a completely broken model.
I agree that both the name and the concept are broken.
My idea was based on how distros (Red Hat Enterprise Linux
at least) already use the same levels for making userspace
require newer CPUs, so using the same flag for the kernel
makes some sense.
Making a point about the levels being stupid is a useful
goal as well.
> There is a very real model for microarchitectural features, and it's
> the CPUID bits. Trying to linearize those bits is technically wrong,
> since these things simply aren't some kind of linear progression.
>
> And worse, it's a "simplification" that literally adds complexity. Now
> instead of asking "does this CPU support the cmpxchgb16 instruction?",
> the question instead becomes one of "what the hell does 'v3' mean
> again?"
I guess the other side of it is that the current selection
between pentium4/core2/k8/bonnell/generic is not much better,
given that in practice nobody has any of the
pentium4/core2/k8/bonnell variants any more.
A more radical solution would be to just drop the entire
menu for 64-bit kernels and always default to "-march=x86_64
-mtune=generic" and 64 byte L1 cachelines.
Arnd
next prev parent reply other threads:[~2024-12-04 19:44 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-04 10:30 [PATCH 00/11] x86: 32-bit cleanups Arnd Bergmann
2024-12-04 10:30 ` [PATCH 01/11] x86/Kconfig: Geode CPU has cmpxchg8b Arnd Bergmann
2024-12-04 10:30 ` [PATCH 02/11] x86: drop 32-bit "bigsmp" machine support Arnd Bergmann
2024-12-04 10:30 ` [PATCH 03/11] x86: Kconfig.cpu: split out 64-bit atom Arnd Bergmann
2024-12-04 13:16 ` Thomas Gleixner
2024-12-04 15:55 ` H. Peter Anvin
2024-12-04 18:21 ` Andy Shevchenko
2024-12-04 10:30 ` [PATCH 04/11] x86: split CPU selection into 32-bit and 64-bit Arnd Bergmann
2024-12-04 18:31 ` Andy Shevchenko
2024-12-04 21:18 ` Arnd Bergmann
2024-12-04 10:30 ` [PATCH 05/11] x86: remove HIGHMEM64G support Arnd Bergmann
2024-12-04 13:29 ` Brian Gerst
2024-12-04 13:43 ` Arnd Bergmann
2024-12-04 14:02 ` Brian Gerst
2024-12-04 15:00 ` Brian Gerst
2024-12-04 15:58 ` H. Peter Anvin
2024-12-04 15:53 ` H. Peter Anvin
2024-12-04 16:37 ` H. Peter Anvin
2024-12-04 16:55 ` Arnd Bergmann
2024-12-04 18:37 ` Andy Shevchenko
2024-12-04 21:14 ` Arnd Bergmann
2025-04-11 23:44 ` Dave Hansen
2025-04-12 8:39 ` Ingo Molnar
2025-04-12 10:05 ` Mike Rapoport
2025-04-12 10:44 ` Arnd Bergmann
2025-04-12 19:48 ` Ingo Molnar
2025-04-13 8:08 ` [PATCH] x86/e820: discard high memory that can't be addressed by 32-bit systems Mike Rapoport
2025-04-13 9:23 ` [tip: x86/urgent] x86/e820: Discard " tip-bot2 for Mike Rapoport (Microsoft)
2025-04-14 14:19 ` Dave Hansen
2025-04-15 7:18 ` Mike Rapoport
2025-04-15 13:43 ` Dave Hansen
2025-04-16 7:17 ` Ingo Molnar
2025-04-16 7:51 ` Ingo Molnar
2025-04-16 7:24 ` tip-bot2 for Mike Rapoport (Microsoft)
2025-04-16 8:16 ` tip-bot2 for Mike Rapoport (Microsoft)
2025-04-17 16:22 ` [PATCH] x86/e820: discard " Nathan Chancellor
2025-04-18 6:33 ` Ingo Molnar
2025-04-18 9:01 ` Mike Rapoport
2025-04-18 12:59 ` Ingo Molnar
2025-04-18 19:25 ` Mike Rapoport
2025-04-18 19:29 ` Dave Hansen
2025-04-18 19:49 ` Guenter Roeck
2025-04-12 10:40 ` [PATCH 05/11] x86: remove HIGHMEM64G support Arnd Bergmann
2024-12-04 10:30 ` [PATCH 06/11] x86: drop SWIOTLB and PHYS_ADDR_T_64BIT for PAE Arnd Bergmann
2024-12-04 18:41 ` Andy Shevchenko
2024-12-04 20:52 ` Arnd Bergmann
2024-12-05 7:59 ` Andy Shevchenko
2024-12-04 10:30 ` [PATCH 07/11] x86: drop support for CONFIG_HIGHPTE Arnd Bergmann
2024-12-04 10:30 ` [PATCH 08/11] x86: document X86_INTEL_MID as 64-bit-only Arnd Bergmann
2024-12-04 18:55 ` Andy Shevchenko
2024-12-04 20:38 ` Arnd Bergmann
2024-12-05 8:03 ` Andy Shevchenko
2024-12-06 11:23 ` Ferry Toth
2024-12-06 14:27 ` Arnd Bergmann
2024-12-04 10:30 ` [PATCH 09/11] x86: rework CONFIG_GENERIC_CPU compiler flags Arnd Bergmann
2024-12-04 15:36 ` Tor Vic
2024-12-04 17:51 ` Arnd Bergmann
2024-12-04 17:09 ` Nathan Chancellor
2024-12-04 17:52 ` Arnd Bergmann
2024-12-04 18:10 ` Linus Torvalds
2024-12-04 19:43 ` Arnd Bergmann [this message]
2024-12-04 23:33 ` Linus Torvalds
2024-12-05 8:13 ` Andy Shevchenko
2024-12-05 10:09 ` Arnd Bergmann
2024-12-05 11:17 ` Andy Shevchenko
2024-12-05 11:58 ` Arnd Bergmann
2024-12-05 12:35 ` Jason A. Donenfeld
2024-12-05 9:46 ` Arnd Bergmann
2024-12-05 10:01 ` Andy Shevchenko
2024-12-05 10:47 ` Arnd Bergmann
2024-12-05 8:07 ` Andy Shevchenko
2024-12-06 13:56 ` David Laight
2024-12-04 10:30 ` [PATCH 10/11] x86: remove old STA2x11 support Arnd Bergmann
2024-12-05 7:35 ` Davide Ciminaghi
2024-12-04 10:30 ` [PATCH 11/11] x86: drop 32-bit KVM host support Arnd Bergmann
2024-12-04 15:30 ` Sean Christopherson
2024-12-04 16:33 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d189f1a1-40d4-4f19-b96e-8b5dd4b8cefe@app.fastmail.com \
--to=arnd@arndb.de \
--cc=andy@kernel.org \
--cc=arnd@kernel.org \
--cc=bp@alien8.de \
--cc=ciminaghi@gnudd.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=willy@infradead.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®