From: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
To: speck@linutronix.de
Subject: [MODERATED] Re: [PATCH v7 04/10] TAAv7 4
Date: Tue, 22 Oct 2019 10:44:52 -0700 [thread overview]
Message-ID: <20191022174452.GE29216@guptapadev.amr> (raw)
In-Reply-To: <20191022165112.GK31458@zn.tnic>
On Tue, Oct 22, 2019 at 06:51:12PM +0200, speck for Borislav Petkov wrote:
> On Mon, Oct 21, 2019 at 01:26:02PM -0700, speck for Pawan Gupta wrote:
> > @@ -268,6 +270,110 @@ static int __init mds_cmdline(char *str)
> > }
> > early_param("mds", mds_cmdline);
> >
> > +#undef pr_fmt
> > +#define pr_fmt(fmt) "TAA: " fmt
> > +
> > +/* Default mitigation for TAA-affected CPUs */
> > +static enum taa_mitigations taa_mitigation __ro_after_init = TAA_MITIGATION_VERW;
> > +static bool taa_nosmt __ro_after_init;
> > +
> > +static const char * const taa_strings[] = {
> > + [TAA_MITIGATION_OFF] = "Vulnerable",
> > + [TAA_MITIGATION_UCODE_NEEDED] = "Vulnerable: Clear CPU buffers attempted, no microcode",
> > + [TAA_MITIGATION_VERW] = "Mitigation: Clear CPU buffers",
> > + [TAA_MITIGATION_TSX_DISABLE] = "Mitigation: TSX disabled",
> > +};
> > +
> > +static void __init taa_select_mitigation(void)
> > +{
> > + u64 ia32_cap = x86_read_arch_cap_msr();
>
> Do that MSR access...
>
> > +
> > + if (!boot_cpu_has_bug(X86_BUG_TAA)) {
> > + taa_mitigation = TAA_MITIGATION_OFF;
> > + return;
> > + }
>
> ... here.
ok.
> > +
> > + /*
> > + * As X86_BUG_TAA=1, TSX feature is supported by the hardware. If
> > + * TSX was disabled (X86_FEATURE_RTM=0) earlier during tsx_init().
>
> That sentence is having trouble saying whatever it is trying to say. :)
I will fix it.
> > + if (!boot_cpu_has(X86_FEATURE_RTM)) {
> > + taa_mitigation = TAA_MITIGATION_TSX_DISABLE;
> > + pr_info("%s\n", taa_strings[taa_mitigation]);
> > + return;
> > + }
> > +
> > + /* All mitigations turned off from cmdline (mitigations=off) */
> > + if (cpu_mitigations_off()) {
> > + taa_mitigation = TAA_MITIGATION_OFF;
> > + return;
> > + }
> > +
> > + /* TAA mitigation is turned off from cmdline (tsx_async_abort=off) */
> > + if (taa_mitigation == TAA_MITIGATION_OFF) {
>
> goto out;
>
> and you slap an out label above the pr_info at the end of this function.
>
> To show better what I mean, here's the whole function fixed up:
>
> static void __init taa_select_mitigation(void)
> {
> u64 ia32_cap;
>
> if (!boot_cpu_has(X86_FEATURE_RTM)) {
> taa_mitigation = TAA_MITIGATION_TSX_DISABLE;
> goto out;
> }
There is a small problem with this, it will set
taa_mitigation = TAA_MITIGATION_TSX_DISABLE;
when there is no X86_BUG_TAA.
>
> if (!boot_cpu_has_bug(X86_BUG_TAA) || cpu_mitigations_off()) {
> taa_mitigation = TAA_MITIGATION_OFF;
> goto out;
> }
goto will cause it to differ from other mitigations that don't print
individual mitigation status when mitigations are turned off globally
(when cpu_mitigations_off() is true).
> > +
> > +static int __init tsx_async_abort_cmdline(char *str)
>
> That function name needs a verb: tsx_async_abort_parse_cmdline()
Ok.
>
> > +{
> > + if (!boot_cpu_has_bug(X86_BUG_TAA))
> > + return 0;
> > +
> > + if (!str)
> > + return -EINVAL;
> > +
> > + if (!strcmp(str, "off")) {
> > + taa_mitigation = TAA_MITIGATION_OFF;
> > + } else if (!strcmp(str, "full")) {
> > + taa_mitigation = TAA_MITIGATION_VERW;
> > + } else if (!strcmp(str, "full,nosmt")) {
> > + taa_mitigation = TAA_MITIGATION_VERW;
> > + taa_nosmt = true;
> > + }
> > +
> > + return 0;
> > +}
> > +early_param("tsx_async_abort", tsx_async_abort_cmdline);
>
> Say what now?!
>
> The previous patch added this:
>
> tsx= [X86] Control Transactional Synchronization
> Extensions (TSX) feature in Intel processors that
> support TSX control.
>
> This parameter controls the TSX feature. The options are:
>
> on - Enable TSX on the system.
> off - Disable TSX on the system.
>
> So what is the final name of command line option now?
We support two cmdline parameters:
tsx= To control TSX feature.
tsx_async_abort= To control the TAA mitigation.
>
> > diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> > index 885d4ac2111a..86f22c1e5912 100644
> > --- a/arch/x86/kernel/cpu/common.c
> > +++ b/arch/x86/kernel/cpu/common.c
> > @@ -1128,6 +1128,21 @@ static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c)
> > if (!cpu_matches(NO_SWAPGS))
> > setup_force_cpu_bug(X86_BUG_SWAPGS);
> >
> > + /*
> > + * When processor is not mitigated for TAA (TAA_NO=0) set TAA bug when:
> > + * - TSX is supported or
> > + * - TSX_CTRL is supported
>
> s/supported/present/
Ok.
>
> > + *
> > + * TSX_CTRL check is needed for cases when TSX could be disabled before
> > + * the kernel boot e.g. kexec
> > + * TSX_CTRL check alone is not sufficient for cases when the microcode
> > + * update is not present or running as guest that don't get TSX_CTRL.
> > + */
> > + if (!(ia32_cap & ARCH_CAP_TAA_NO) &&
> > + (boot_cpu_has(X86_FEATURE_RTM) ||
>
> You have a @c parameter passed in, use it:
>
> cpu_has(c, X86_FEATURE_RTM)
Ok.
Thanks,
Pawan
next prev parent reply other threads:[~2019-10-22 17:51 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-21 20:22 [MODERATED] [PATCH v7 00/10] TAAv7 0 Pawan Gupta
2019-10-21 20:23 ` [MODERATED] [PATCH v7 01/10] TAAv7 1 Pawan Gupta
2019-10-21 20:24 ` [MODERATED] [PATCH v7 02/10] TAAv7 2 Pawan Gupta
2019-10-21 20:25 ` [MODERATED] [PATCH v7 03/10] TAAv7 3 Pawan Gupta
2019-10-21 20:26 ` [MODERATED] [PATCH v7 04/10] TAAv7 4 Pawan Gupta
2019-10-21 20:27 ` [MODERATED] [PATCH v7 05/10] TAAv7 5 Pawan Gupta
2019-10-21 20:28 ` [MODERATED] [PATCH v7 06/10] TAAv7 6 Pawan Gupta
2019-10-21 20:29 ` [MODERATED] [PATCH v7 07/10] TAAv7 7 Pawan Gupta
2019-10-21 20:30 ` [MODERATED] [PATCH v7 08/10] TAAv7 8 Pawan Gupta
2019-10-21 20:31 ` [MODERATED] [PATCH v7 09/10] TAAv7 9 Michal Hocko
2019-10-21 20:32 ` [MODERATED] [PATCH v7 10/10] TAAv7 10 Pawan Gupta
2019-10-21 21:32 ` [MODERATED] Re: [PATCH v7 00/10] TAAv7 0 Andy Lutomirski
2019-10-21 23:06 ` Andrew Cooper
2019-10-22 0:34 ` Pawan Gupta
2019-10-22 4:10 ` [MODERATED] Jon Masters
2019-10-22 5:53 ` [MODERATED] Pawan Gupta
2019-10-22 7:58 ` [MODERATED] Re: ***UNCHECKED*** [PATCH v7 07/10] TAAv7 7 Michal Hocko
2019-10-22 16:55 ` [MODERATED] " Pawan Gupta
2019-10-22 8:00 ` [MODERATED] Re: ***UNCHECKED*** [PATCH v7 09/10] TAAv7 9 Michal Hocko
2019-10-22 8:15 ` [MODERATED] Re: ***UNCHECKED*** [PATCH v7 03/10] TAAv7 3 Michal Hocko
2019-10-22 14:42 ` Josh Poimboeuf
2019-10-22 16:48 ` [MODERATED] " Pawan Gupta
2019-10-22 17:01 ` [MODERATED] Re: ***UNCHECKED*** " Michal Hocko
2019-10-22 17:35 ` Josh Poimboeuf
2019-10-22 14:38 ` [MODERATED] " Borislav Petkov
2019-10-22 16:58 ` Pawan Gupta
2019-10-22 14:48 ` Borislav Petkov
2019-10-22 17:00 ` Pawan Gupta
2019-10-22 17:16 ` [MODERATED] " Borislav Petkov
2019-10-22 18:07 ` [MODERATED] " Pawan Gupta
2019-10-22 15:07 ` Borislav Petkov
2019-10-22 18:36 ` Pawan Gupta
2019-10-22 18:59 ` [MODERATED] " Borislav Petkov
2019-10-22 16:51 ` [MODERATED] Re: [PATCH v7 04/10] TAAv7 4 Borislav Petkov
2019-10-22 17:02 ` Borislav Petkov
2019-10-22 18:00 ` Pawan Gupta
2019-10-22 18:12 ` [MODERATED] " Borislav Petkov
2019-10-22 19:16 ` Luck, Tony
2019-10-22 19:28 ` [MODERATED] " Borislav Petkov
2019-10-22 20:02 ` Luck, Tony
2019-10-22 20:48 ` [MODERATED] Jon Masters
2019-10-22 20:54 ` [MODERATED] Re: [PATCH v7 04/10] TAAv7 4 Borislav Petkov
2019-10-22 21:38 ` Josh Poimboeuf
2019-10-22 21:46 ` Borislav Petkov
2019-10-22 22:06 ` Josh Poimboeuf
2019-10-22 22:13 ` Borislav Petkov
2019-10-22 17:44 ` Pawan Gupta [this message]
2019-10-22 19:04 ` [MODERATED] " Borislav Petkov
2019-10-22 21:29 ` [MODERATED] " Pawan Gupta
2019-10-22 21:53 ` Borislav Petkov
2019-10-22 22:05 ` Borislav Petkov
2019-10-23 0:27 ` Pawan Gupta
2019-10-23 5:25 ` Pawan Gupta
2019-10-23 6:46 ` Borislav Petkov
2019-10-23 13:28 ` Pawan Gupta
2019-10-23 14:39 ` Borislav Petkov
2019-10-23 1:33 ` Pawan Gupta
2019-10-23 6:48 ` Borislav Petkov
2019-10-22 17:25 ` [MODERATED] Re: [PATCH v7 01/10] TAAv7 1 Josh Poimboeuf
2019-10-23 9:26 ` Borislav Petkov
2019-10-22 17:26 ` Josh Poimboeuf
2019-10-22 20:44 ` [MODERATED] Jon Masters
2019-10-22 17:47 ` [MODERATED] Re: [PATCH v7 03/10] TAAv7 3 Josh Poimboeuf
2019-10-22 18:39 ` [MODERATED] Re: [PATCH v7 10/10] TAAv7 10 Josh Poimboeuf
2019-10-23 7:24 ` Borislav Petkov
2019-10-22 21:20 ` [MODERATED] Re: [PATCH v7 04/10] TAAv7 4 Josh Poimboeuf
2019-10-22 21:35 ` Andrew Cooper
2019-10-22 21:44 ` Josh Poimboeuf
2019-10-22 22:03 ` Andrew Cooper
2019-10-23 1:16 ` Josh Poimboeuf
2019-10-23 15:46 ` [MODERATED] Re: [PATCH v7 00/10] TAAv7 0 Borislav Petkov
2019-10-23 17:11 ` Josh Poimboeuf
2019-10-23 21:49 ` Borislav Petkov
2019-10-23 22:12 ` Pawan Gupta
2019-10-24 14:08 ` Borislav Petkov
[not found] ` <5dae165e.1c69fb81.4beee.e271SMTPIN_ADDED_BROKEN@mx.google.com>
2019-10-24 20:53 ` [MODERATED] Re: [PATCH v7 06/10] TAAv7 6 Paolo Bonzini
2019-10-24 21:00 ` Luck, Tony
2019-10-24 21:33 ` Paolo Bonzini
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=20191022174452.GE29216@guptapadev.amr \
--to=pawan.kumar.gupta@linux.intel.com \
--cc=speck@linutronix.de \
/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).