Re: [PATCH v2] Linux VM workaround for Knights Landing A/D leak

From: H. Peter Anvin
Date: Tue Jun 14 2016 - 16:21:15 EST


On 06/14/16 12:19, Borislav Petkov wrote:
> On Tue, Jun 14, 2016 at 11:54:24AM -0700, Dave Hansen wrote:
>> Lukasz, Borislav suggested using static_cpu_has_bug(), which will do the
>> alternatives patching. It's definitely the right thing to use here.
>
> Yeah, either that or do an
>
> alternative_call(null_func, fix_pte_peak, X86_BUG_PTE_LEAK, ...)
>
> or so and you'll need a dummy function to call on !X86_BUG_PTE_LEAK
> CPUs.
>
> The static_cpu_has_bug() thing should be most likely a penalty
> of a single JMP (I have to look at the asm) but then since the
> callers are inlined, you'll have to patch all those places where
> *ptep_get_and_clear() get inlined.
>
> Shouldn't be a big deal still but...
>
> "debug-alternative" and a kvm guest should help you there to get a quick
> idea.
>

static_cpu_has_bug() should turn into 5-byte NOP in the common (bugless)
case.

-hpa