Re: [PATCH] x86/speculation: Add document to describe Spectre and its mitigations

From: Ben Greear
Date: Tue Jan 08 2019 - 19:58:39 EST


On 1/7/19 9:57 AM, Tim Chen wrote:
On 12/31/18 8:22 AM, Ben Greear wrote:


On 12/21/2018 05:17 PM, Tim Chen wrote:

If you don't worry about security and performance is paramount, then
boot with "nospectre_v2". That's explained in the document.

There seem to be lots of different variants of this type of problem. It was not clear
to me that just doing nospectre_v2 would be sufficient to get back full performance.

The performance penalty comes from retpoline penalizing indirect branch predictions in kernel.
With nospectre_v2, retpoline is disabled so you should get all the performance
back from spectre mitigation.

This does not disable kernel page table isolation for meltdown mitigation, which also
needs to be turned off if you want to get the full performance back. That's somewhat
beyond the scope of this doc on Spectre.

The two bug families (spectre and meltdown) are conflated in my mind, at least.

For those of us who do not really understand this stuff in detail, it would
be good to at least mention some notes about Meltdown I think.

And anyway, I would like to compile the kernel to not need that command-line option,
so I am still interesting in what compile options need to be set to what values...


If you just want to disable spectre mitigation, setting CONFIG_RETPOLINE=n should do
the trick. If you also want to disable meltdown mitigation,
set CONFIG_PAGE_TABLE_ISOLATION=n.

Ok, are there any other CONFIG options that relate to fixing security bugs that
have noticeable performance impacts or are these two the complete list?

Thanks,
Ben

--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com