All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	arjan@linux.intel.com, karahmed@amazon.de, x86@kernel.org,
	linux-kernel@vger.kernel.org, tim.c.chen@linux.intel.com,
	bp@alien8.de, pbonzini@redhat.com, ak@linux.intel.com,
	torvalds@linux-foundation.org, gregkh@linux-foundation.org,
	dave.hansen@intel.com, gnomes@lxorguk.ukuu.org.uk,
	ashok.raj@intel.com, mingo@kernel.org
Subject: Re: [PATCH v4 5/7] x86/pti: Do not enable PTI on processors which are not vulnerable to Meltdown
Date: Thu, 25 Jan 2018 11:01:00 +0100 (CET)	[thread overview]
Message-ID: <alpine.DEB.2.20.1801251059410.2020@nanos> (raw)
In-Reply-To: <1516874209.30244.38.camel@infradead.org>

[-- Attachment #1: Type: text/plain, Size: 1402 bytes --]

On Thu, 25 Jan 2018, David Woodhouse wrote:
> On Thu, 2018-01-25 at 10:42 +0100, Peter Zijlstra wrote:
> > On Thu, Jan 25, 2018 at 09:23:07AM +0000, David Woodhouse wrote:
> > > +static bool __init early_cpu_vulnerable_meltdown(struct cpuinfo_x86 *c)
> > > +{
> > > +     u64 ia32_cap = 0;
> > > +
> > > +     if (x86_match_cpu(cpu_no_meltdown))
> > > +                return false;
> > > +
> > > +     if (cpu_has(c, X86_FEATURE_ARCH_CAPABILITIES))
> > > +             rdmsrl(MSR_IA32_ARCH_CAPABILITIES, ia32_cap);
> > 
> > I think it was suggested a while back to write this like:
> > 
> >         if (cpu_has(c, X86_FEATURE_ARCH_CAPABILITIES) &&
> >             !rdmsrl_safe(MSR_IA32_ARCH_CAPABILITIES, ia32_cap))
> > 
> > to deal with funny virt scenarios where they accidentally advertise the
> > CPUID bit but don't in fact provide the MSR.
> 
> It was indeed suggested, but I was a bit confused by that. Because the
> CPUID bit exists *purely* to advertise the existence of that MSR;
> nothing more.
> 
> If it doesn't exist we'll end up with zero in ia32_cap anyway, which
> will mean we *won't* see the RDCL_NO bit, and won't disable the
> Meltdown flag.

And using rdmsrl() has the benefit of running into the
ex_handler_rdmsr_unsafe() exception handler, which emits a warning. The
value returned in ia32_cap is 0.

Thanks,

	tglx

  reply	other threads:[~2018-01-25 10:01 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-25  9:23 [PATCH v4 0/7] Basic Speculation Control feature support David Woodhouse
2018-01-25  9:23 ` [PATCH v4 1/7] x86/cpufeatures: Add CPUID_7_EDX CPUID leaf David Woodhouse
2018-01-25  9:23 ` [PATCH v4 2/7] x86/cpufeatures: Add Intel feature bits for Speculation Control David Woodhouse
2018-01-25  9:23 ` [PATCH v4 3/7] x86/cpufeatures: Add AMD " David Woodhouse
2018-01-25  9:23 ` [PATCH v4 4/7] x86/msr: Add definitions for new speculation control MSRs David Woodhouse
2018-01-25  9:23 ` [PATCH v4 5/7] x86/pti: Do not enable PTI on processors which are not vulnerable to Meltdown David Woodhouse
2018-01-25  9:42   ` Peter Zijlstra
2018-01-25  9:56     ` David Woodhouse
2018-01-25 10:01       ` Thomas Gleixner [this message]
2018-01-25 15:12   ` Alan Cox
2018-01-25  9:23 ` [PATCH v4 6/7] x86/cpufeature: Blacklist SPEC_CTRL on early Spectre v2 microcodes David Woodhouse
2018-01-25 10:43   ` David Woodhouse
2018-01-25 10:54     ` Thomas Gleixner
2018-01-25 11:20       ` David Woodhouse
2018-01-25 11:34         ` Thomas Gleixner
2018-01-25 13:41           ` David Woodhouse
2018-01-25 14:58             ` Thomas Gleixner
2018-01-25 16:16             ` Alan Cox
2018-01-25 16:24               ` Thomas Gleixner
2018-01-25 16:35                 ` David Woodhouse
2018-01-26  9:40             ` Ingo Molnar
2018-01-25  9:23 ` [PATCH v4 7/7] x86/speculation: Add basic IBPB (Indirect Branch Prediction Barrier) support David Woodhouse
2018-01-25 11:41   ` Borislav Petkov
2018-01-25 11:47     ` David Woodhouse
2018-01-25 11:50       ` Borislav Petkov
2018-01-25 11:58         ` David Woodhouse
2018-01-25 12:03           ` Borislav Petkov
2018-01-25 12:11             ` David Woodhouse

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=alpine.DEB.2.20.1801251059410.2020@nanos \
    --to=tglx@linutronix.de \
    --cc=ak@linux.intel.com \
    --cc=arjan@linux.intel.com \
    --cc=ashok.raj@intel.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@intel.com \
    --cc=dwmw2@infradead.org \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=gregkh@linux-foundation.org \
    --cc=karahmed@amazon.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tim.c.chen@linux.intel.com \
    --cc=torvalds@linux-foundation.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 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.