historical-speck.lore.kernel.org archive mirror
 help / color / mirror / Atom feed
From: mark gross <mgross@linux.intel.com>
To: speck@linutronix.de
Subject: [MODERATED] Re: [PATCH 3/4] V8 more sampling fun 3
Date: Thu, 16 Apr 2020 15:54:56 -0700	[thread overview]
Message-ID: <20200416225455.GC2583@u1904> (raw)
In-Reply-To: <20200416171723.zk3lzznvslmtt4zf@treble>

On Thu, Apr 16, 2020 at 12:17:23PM -0500, speck for Josh Poimboeuf wrote:
> On Thu, Jan 16, 2020 at 02:16:07PM -0800, speck for mark gross wrote:
> > From: mark gross <mgross@linux.intel.com>
> > Subject: [PATCH 3/4] x86/speculation: Special Register Buffer Data Sampling
> >  (SRBDS) mitigation control.
> 
> Subjects don't need periods.
> 
> > +static enum srbds_mitigations srbds_mitigation __ro_after_init = SRBDS_MITIGATION_FULL;
> > +static const char * const srbds_strings[] = {
> > +	[SRBDS_MITIGATION_OFF]		= "Vulnerable",
> > +	[SRBDS_MITIGATION_UCODE_NEEDED]	= "Vulnerable: No microcode",
> > +	[SRBDS_MITIGATION_FULL]		= "Mitigated: Microcode",
> 
> FWIW, this is at least the third time I've made this comment...
I'm very sorry I miss this multiple times.

> s/Mitigated/Mitigation/
> 
> > +	[SRBDS_MITIGATION_TSX_OFF]	= "Mitigated: TSX disabled",
> 
> s/Mitigated/Mitigation
> 
> > @@ -1142,6 +1177,26 @@ static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c)
> >  	     (ia32_cap & ARCH_CAP_TSX_CTRL_MSR)))
> >  		setup_force_cpu_bug(X86_BUG_TAA);
> >  
> > +	/*
> > +	 * Some parts on the list don't have RDRAND or RDSEED. Make sure
> > +	 * they show as "Not affected".
> > +	 */
> > +	if (cpu_has(c, X86_FEATURE_RDRAND) || cpu_has(c, X86_FEATURE_RDSEED)) {
> > +		if (cpu_matches(SRBDS, cpu_vuln_blacklist)) {
> > +			/*
> > +			 * Parts in the blacklist that enumerate MDS_NO are
> > +			 * only vulnerable if TSX can be used.  To handle cases
> > +			 * where TSX gets fused off check to see if TSX is
> > +			 * fused off and thus not affected.
> > +			 */
> > +			if ((ia32_cap & ARCH_CAP_MDS_NO) && tsx_fused_off(c))
> > +				goto srbds_not_affected;
> > +
> > +			setup_force_cpu_bug(X86_BUG_SRBDS);
> > +		}
> > +	}
> > +
> > +srbds_not_affected:
> >  	if (cpu_matches(NO_MELTDOWN, cpu_vuln_whitelist))
> >  		return;
> 
> When nitpicking the whitespace before, I think I completely missed the
> fact that this goto is extremely ugly.  And there are a lot of
> unnecessary nested ifs.  And the comment is redundant.
> 
> How about something like this:
> 
> 	/*
> 	 * Parts in the SRBDS blacklist that enumerate MDS_NO are only
> 	 * vulnerable if TSX isn't fused off.
> 	 */
> 	if (cpu_matches(SRBDS, cpu_vuln_blacklist) &&
> 	    (cpu_has(c, X86_FEATURE_RDRAND) || cpu_has(c, X86_FEATURE_RDSEED)) &&
> 	    (!(ia32_cap & ARCH_CAP_MDS_NO) || !tsx_fused_off(c)))
> 		setup_force_cpu_bug(X86_BUG_SRBDS);
I had this in an unreleased version but, I thought the redability of the
conditional too much for me so I created the tsx_fused_off funtion to.

I also considerd the contropositive of what I did have 

		if (!(ia32_cap & ARCH_CAP_MDS_NO) || !tsx_fused_off(c))
			goto srbds_not_affected;

also hard to read / parse

finally I thought of:
		if ((ia32_cap & ARCH_CAP_MDS_NO) && tsx_fused_off(c))
			continue;
		else
	 		setup_force_cpu_bug(X86_BUG_SRBDS);

and thought that looked pretty dumb too.

But, Like I said I'm not going to argue.  

--mark

  parent reply	other threads:[~2020-04-16 22:55 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-16  0:14 [MODERATED] [PATCH 0/4] V8 more sampling fun 0 mark gross
2020-01-16 22:16 ` [MODERATED] [PATCH 3/4] V8 more sampling fun 3 mark gross
2020-01-30 19:12 ` [MODERATED] [PATCH 4/4] V8 more sampling fun 4 mark gross
2020-03-17  0:56 ` [MODERATED] [PATCH 1/4] V8 more sampling fun 1 mark gross
2020-03-17  0:56 ` [MODERATED] [PATCH 2/4] V8 more sampling fun 2 mark gross
2020-04-16 17:15 ` [MODERATED] Re: [PATCH 1/4] V8 more sampling fun 1 Josh Poimboeuf
2020-04-16 17:30   ` Borislav Petkov
2020-04-16 17:16 ` [MODERATED] Re: [PATCH 2/4] V8 more sampling fun 2 Josh Poimboeuf
2020-04-16 17:33   ` [MODERATED] " Borislav Petkov
2020-04-16 22:47     ` mark gross
2020-04-16 17:17 ` [MODERATED] Re: [PATCH 3/4] V8 more sampling fun 3 Josh Poimboeuf
2020-04-16 17:44   ` Borislav Petkov
2020-04-16 18:01     ` Josh Poimboeuf
2020-04-16 22:45       ` mark gross
2020-04-16 22:57     ` mark gross
2020-04-17 12:34     ` Thomas Gleixner
2020-04-17 13:19       ` [MODERATED] " Josh Poimboeuf
2020-04-17 16:46         ` Luck, Tony
2020-04-17 19:22         ` Thomas Gleixner
2020-04-16 22:54   ` mark gross [this message]
2020-04-16 17:20 ` [MODERATED] Re: [PATCH 4/4] V8 more sampling fun 4 Josh Poimboeuf
2020-04-16 17:49   ` [MODERATED] " Borislav Petkov
2020-04-16 22:57     ` mark gross
2020-04-20 14:30     ` mark gross
2020-04-20 16:17       ` Thomas Gleixner
2020-04-20 22:30         ` [MODERATED] " mark gross
2020-04-20 21:45       ` Slow Randomizing Boosts Denial of Service - Bulletin #1 Thomas Gleixner
2020-04-23 21:35         ` [MODERATED] " mark gross
2020-04-24  7:01           ` Greg KH
2020-04-27 15:10             ` mark gross
2020-04-21 17:30 ` [MODERATED] Re: [PATCH 4/4] V8 more sampling fun 4 Borislav Petkov
2020-04-21 17:34   ` Andrew Cooper
2020-04-21 18:19     ` 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=20200416225455.GC2583@u1904 \
    --to=mgross@linux.intel.com \
    --cc=speck@linutronix.de \
    --subject='[MODERATED] Re: [PATCH 3/4] V8 more sampling fun 3' \
    /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

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).