mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: David Laight <david.laight.linux@gmail.com>,
	Arnd Bergmann <arnd@kernel.org>
Cc: Tor Vic <torvic9@mailbox.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	Borislav Petkov <bp@alien8.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH] arch/x86: Add an option to build the kernel with '-march=native' on x86-64
Date: Sat, 22 Mar 2025 15:03:01 -0700	[thread overview]
Message-ID: <FA38B840-8F81-4D95-B0FE-797291BA38B3@zytor.com> (raw)
In-Reply-To: <20250322215310.7b69b8a1@pumpkin>

On March 22, 2025 2:53:10 PM PDT, David Laight <david.laight.linux@gmail.com> wrote:
>On Sat, 22 Mar 2025 12:40:08 +0100
>"Arnd Bergmann" <arnd@kernel.org> wrote:
>
>...
>> I assume that the difference here is that -march=native on
>> your machine gets turned into -march=skylake, which then turns
>> on both additional instructions and a different instruction
>> scheduler.
>> 
>> Are you able to quickly run the same tests again using
>> just one of the two?
>> 
>> a) -march=x86-64 -mtune=skylake
>> b) -march=skylake -mtune=generic
>
>I've wondered what -mtune=generic is actually optimised for?
>I've seen gcc convert 32 bit add into an lea and then have
>to use another instruction to clear the high bits.
>I've not fiddled with the options to see why it does that.
>My only guess is it is avoiding false dependencies against
>the flags register - but the flags are split on non-archaic
>cpu so that doesn't matter.
>
>	David

Not to mention that you can use leal to get the zero-extended low 32 bits. Sounds like a gcc bug report is in order. 

The general idea, I believe, is that "generic" is supposed to produce coffee that performs well on the majority of hardware currently in production, and doesn't outright suck on older hardware either. In other words, it is intentionally a moving target.

  reply	other threads:[~2025-03-22 22:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-21 14:28 Tor Vic
2025-03-21 17:35 ` H. Peter Anvin
2025-03-22 11:40 ` Arnd Bergmann
2025-03-22 12:08   ` Tor Vic
2025-03-22 21:53   ` David Laight
2025-03-22 22:03     ` H. Peter Anvin [this message]
2025-03-23 15:14   ` Tor Vic
2025-03-24  8:45     ` Arnd Bergmann
2025-04-03 13:33 ` [tip: x86/kconfig] x86/kbuild/64: Add the CONFIG_X86_NATIVE_CPU option to locally optimize the kernel with '-march=native' tip-bot2 for Tor Vic

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=FA38B840-8F81-4D95-B0FE-797291BA38B3@zytor.com \
    --to=hpa@zytor.com \
    --cc=arnd@kernel.org \
    --cc=bp@alien8.de \
    --cc=david.laight.linux@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=torvic9@mailbox.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®