From: Peter Zijlstra <peterz@infradead.org>
To: Mateusz Guzik <mjguzik@gmail.com>
Cc: torvalds@linux-foundation.org, mingo@redhat.com, x86@kernel.org,
linux-kernel@vger.kernel.org, ubizjak@gmail.com
Subject: Re: [PATCH v2] x86: prevent gcc from emitting rep movsq/stosq for inlined ops
Date: Thu, 5 Jun 2025 21:00:54 +0200 [thread overview]
Message-ID: <20250605190054.GH30486@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <20250605164733.737543-1-mjguzik@gmail.com>
On Thu, Jun 05, 2025 at 06:47:33PM +0200, Mateusz Guzik wrote:
> gcc is over eager to use rep movsq/stosq (starts above 40 bytes), which
> comes with a significant penalty on CPUs without the respective fast
> short ops bits (FSRM/FSRS).
I don't suppose there's a magic compiler toggle to make it emit prefix
padded 'rep movs'/'rep stos' variants such that they are 5 bytes each,
right?
Something like:
2e 2e 2e f3 a4 cs cs rep movsb %ds:(%rsi),%es:(%rdi)
because if we can get the compilers to do this; then I can get objtool
to collect all these locations and then we can runtime patch them to be:
call rep_movs_alternative / rep_stos_alternative
or whatever other crap we want really.
next prev parent reply other threads:[~2025-06-05 19:01 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-05 16:47 [PATCH v2] x86: prevent gcc from emitting rep movsq/stosq for inlined ops Mateusz Guzik
2025-06-05 18:32 ` Linus Torvalds
2025-06-05 19:00 ` Peter Zijlstra [this message]
2025-06-06 6:13 ` Uros Bizjak
2025-06-06 6:27 ` Uros Bizjak
2025-06-06 7:20 ` Peter Zijlstra
2025-06-09 21:09 ` David Laight
2025-06-15 16:41 ` Uros Bizjak
2025-06-06 7:27 ` Uros Bizjak
2025-06-06 8:19 ` Peter Zijlstra
2025-06-08 20:51 ` David Laight
2025-06-09 6:04 ` Uros Bizjak
2025-06-09 16:38 ` Linus Torvalds
2025-06-09 19:25 ` Linus Torvalds
2025-06-09 19:04 ` David Laight
2025-06-06 15:36 ` Mateusz Guzik
2025-06-06 17:59 ` Linus Torvalds
2025-06-09 21:19 ` David Laight
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=20250605190054.GH30486@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=mjguzik@gmail.com \
--cc=torvalds@linux-foundation.org \
--cc=ubizjak@gmail.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.