From: Borislav Petkov <bp@alien8.de>
To: Andy Lutomirski <luto@kernel.org>
Cc: Tom Lendacky <Thomas.Lendacky@amd.com>,
LKML <linux-kernel@vger.kernel.org>, X86 ML <x86@kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
John Stultz <john.stultz@linaro.org>
Subject: Re: [RFC PATCH 4/4] x86/TSC: Use RDTSCP
Date: Wed, 12 Dec 2018 11:08:14 +0100 [thread overview]
Message-ID: <20181212100814.GB6653@zn.tnic> (raw)
In-Reply-To: <CALCETrXvZ4avdUh2bTLVTTz3Jxogo3zK5akWTsJ=rkJpf1XiDg@mail.gmail.com>
On Tue, Dec 11, 2018 at 06:24:44PM -0800, Andy Lutomirski wrote:
> This makes me nervous, since no one knows what “serializing” means.
Why no one? If you wanna say that X86_FEATURE_LFENCE_SERIALIZING is not
really telling, so is X86_FEATURE_LFENCE_RDTSC, TBH. :)
> IIRC AMD specifically documents that MFENCE is required before RDTSC
> to get sensible ordering. So it’s entirely plausible to me that
> LFENCE is okay for Spectre mitigation but MFENCE is needed for RDTSC
> on some CPU.
Look at init_amd(), the if (cpu_has(c, X86_FEATURE_XMM2)) branch where
we make LFENCE serializing. The logic with the new names would be:
asm volatile(ALTERNATIVE_3("rdtsc",
"mfence; rdtsc", X86_FEATURE_MFENCE,
"lfence; rdtsc", X86_FEATURE_LFENCE_SERIALIZING,
"rdtscp", X86_FEATURE_RDTSCP)
RDTSC is put there during build. At boot time:
if CPU has MFENCE
use MFENCE to stop RDTSC speculation
if LFENCE is serializing
use LFENCE...
if CPU has RDTSCP
even better, use that as it is the fastest or on par.
Of course the order of those is important.
Ok?
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
next prev parent reply other threads:[~2018-12-12 10:08 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-11 22:23 [RFC PATCH 0/4] x86/alternative: Add ALTERNATIVE_3 Borislav Petkov
2018-12-11 22:23 ` [RFC PATCH 1/4] x86/alternatives: Add macro comments Borislav Petkov
2019-01-16 11:57 ` [tip:x86/alternatives] " tip-bot for Borislav Petkov
2018-12-11 22:23 ` [RFC PATCH 2/4] x86/alternatives: Print containing function Borislav Petkov
2019-01-16 11:58 ` [tip:x86/alternatives] " tip-bot for Borislav Petkov
2018-12-11 22:23 ` [RFC PATCH 3/4] x86/alternatives: Add an ALTERNATIVE_3() macro Borislav Petkov
2019-01-16 11:59 ` [tip:x86/alternatives] " tip-bot for Borislav Petkov
2018-12-11 22:23 ` [RFC PATCH 4/4] x86/TSC: Use RDTSCP Borislav Petkov
2018-12-11 22:59 ` Andy Lutomirski
2018-12-11 23:12 ` Lendacky, Thomas
2018-12-11 23:39 ` Borislav Petkov
2018-12-12 2:24 ` Andy Lutomirski
2018-12-12 9:59 ` Peter Zijlstra
2018-12-12 12:02 ` Andrea Parri
2018-12-12 10:08 ` Borislav Petkov [this message]
2018-12-12 18:07 ` Andy Lutomirski
2018-12-12 18:44 ` Borislav Petkov
2018-12-12 18:50 ` Andy Lutomirski
2018-12-12 20:00 ` Borislav Petkov
2018-12-12 20:09 ` Andy Lutomirski
2018-12-12 20:29 ` Borislav Petkov
2018-12-14 13:39 ` David Laight
2018-12-15 18:53 ` Andy Lutomirski
2018-12-12 14:15 ` Lendacky, Thomas
2018-12-12 14:18 ` Lendacky, Thomas
2018-12-11 23:37 Alexey Dobriyan
2018-12-11 23:43 ` Borislav Petkov
2018-12-12 0:06 ` Borislav Petkov
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=20181212100814.GB6653@zn.tnic \
--to=bp@alien8.de \
--cc=Thomas.Lendacky@amd.com \
--cc=hpa@zytor.com \
--cc=john.stultz@linaro.org \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=peterz@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;
as well as URLs for NNTP newsgroup(s).