All of lore.kernel.org
 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 2/4] V8 more sampling fun 2 mark gross
2020-03-17  0:56 ` [MODERATED] [PATCH 1/4] V8 more sampling fun 1 mark gross
2020-04-16 17:15 ` [MODERATED] " 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 \
    /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.