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

From: Tim Chen
Date: Mon Jan 07 2019 - 12:57:24 EST


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.

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

Thanks.

Tim