public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Jia Zhang <qianyue.zj@alibaba-inc.com>
Cc: bp@alien8.de, tglx@linutronix.de, mingo@redhat.com,
	hpa@zytor.com, x86@kernel.org, linux-kernel@vger.kernel.org,
	tony.luck@intel.com
Subject: Re: [PATCH v4] x86/microcode/intel: Blacklist the specific BDW-EP for late loading
Date: Fri, 29 Dec 2017 13:48:35 +0100	[thread overview]
Message-ID: <20171229124835.tt5ttpf7i6tkmlnq@gmail.com> (raw)
In-Reply-To: <8d92a7af-c583-335d-0f2d-c3faa3c29e64@alibaba-inc.com>


* Jia Zhang <qianyue.zj@alibaba-inc.com> wrote:

> 
> 
> 在 2017/12/28 下午8:24, Ingo Molnar 写道:
> > 
> > * Jia Zhang <qianyue.zj@alibaba-inc.com> wrote:
> > 
> >> Instead of blacklisting all types of Broadwell processor when running
> >> a late loading, only BDW-EP (signature 0x406f1, aka family 6, model 79,
> >> stepping 1) with the microcode version less than 0x0b000021 needs to
> >> be blacklisted.
> >>
> >> The erratum is documented in the the public documentation #334165 (See
> >> the item BDF90 for details).
> >>
> >> Signed-off-by: Jia Zhang <qianyue.zj@alibaba-inc.com>
> >> ---
> >>  arch/x86/kernel/cpu/microcode/intel.c | 12 ++++++++++--
> >>  1 file changed, 10 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
> >> index 8ccdca6..79cad85 100644
> >> --- a/arch/x86/kernel/cpu/microcode/intel.c
> >> +++ b/arch/x86/kernel/cpu/microcode/intel.c
> >> @@ -910,8 +910,16 @@ static bool is_blacklisted(unsigned int cpu)
> >>  {
> >>  	struct cpuinfo_x86 *c = &cpu_data(cpu);
> >>  
> >> -	if (c->x86 == 6 && c->x86_model == INTEL_FAM6_BROADWELL_X) {
> >> -		pr_err_once("late loading on model 79 is disabled.\n");
> >> +	/*
> >> +	 * The Broadwell-EP processor with the microcode version less
> >> +	 * then 0x0b000021 may result in system hang when running a late
> >> +	 * loading. This behavior is documented in item BDF90, #334165
> >> +	 * (Intel Xeon Processor E7-8800/4800 v4 Product Family).
> >> +	 */
> >> +	if (c->x86 == 6 && c->x86_model == INTEL_FAM6_BROADWELL_X &&
> >> +	    c->x86_mask == 0x01 && c->microcode < 0x0b000021) {
> >> +		pr_err_once("late loading on cpu (sig 0x406f1) is disabled "
> >> +			    "due to erratum causing system hang.\n");
> > 
> > Please never break user-readable messages mid-sentence!
> > 
> > This should be something like:
> > 
> > 		pr_err_once("Late loading of the CPU microcode (sig 0x406f1) is disabled due to Intel erratum BDF90 causing system hangs.\n");
> > 
> > (note the spelling and readability improvements as well)
> > 
> > Btw., what does 'sig 0x406f1' refer to?
> 
> It is so-called processor signature which can be used to identify a
> model of x86 processor uniquely. It's the return value of cpuid
> instruction with leaf 1(eax == 1).

Ah, indeed, the (somewhat weird) encoding described in arch/x86/lib/cpu.c, which 
is essentially family+model+stepping encoded into a single integer, right?

That whole area needs a good cleanup to be less confusing (we refer to the CPU 
stepping as x86_stepping(), but the field is called ->x86_mask?), but in the 
meanwhile, let's please make it more obvious in user facing message what's 
happening.

Instead of using the microcode signature of the CPU model, please write out what's 
going on:

	pr_err_once("Not loading old microcode version: erratum BDF90 on Intel Broadwell-EP stepping 1 CPUs may cause system hangs.\n");

... and please also tell the user what to do about it:

	pr_err_once("Please update your microcode files.\n");

!!

Agreed?

Thanks,

	Ingo

  reply	other threads:[~2017-12-29 12:48 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-26 12:42 [PATCH v4] x86/microcode/intel: Blacklist the specific BDW-EP for late loading Jia Zhang
2017-12-27  4:52 ` Luck, Tony
2017-12-28 12:24 ` Ingo Molnar
2017-12-28 13:23   ` Jia Zhang
2017-12-29 12:48     ` Ingo Molnar [this message]
2017-12-29 13:17       ` Jia Zhang
2017-12-29 13:44         ` Borislav Petkov
2017-12-29 14:12           ` Jia Zhang
2017-12-29 14:40             ` 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=20171229124835.tt5ttpf7i6tkmlnq@gmail.com \
    --to=mingo@kernel.org \
    --cc=bp@alien8.de \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=qianyue.zj@alibaba-inc.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox