Re: [PATCH] x86: vmx: Allow direct access to MSR_IA32_SPEC_CTRL

From: Andy Lutomirski
Date: Sun Jan 28 2018 - 15:53:24 EST





> On Jan 28, 2018, at 12:44 PM, David Woodhouse <dwmw2@xxxxxxxxxxxxx> wrote:
>
>> On Sun, 2018-01-28 at 12:40 -0800, Andy Lutomirski wrote:
>>
>> Do you mean that the host would intercept the guest WRMSR and do
>> WRMSR itself? I would suggest that doing so is inconsistent with the
>> docs. As specified, doing WRMSR to write 1 to IBRS does *not*
>> protect the guest.
>
> I believe it does. Guest kernel is protected from any guest userspace
> predictions learned before IBRS was last set to 1 in *any* mode,
> including host.

Hmm, you're probably right.

I would love to know what awful hack Intel did that resulted in these semantics.

>
>> For that matter, what are the semantics of VMRESUME doing a write to
>> IBRS as part of its MSR switch? Is it treated as IBRS=1 from guest
>> context?
>
> Why does it matter? We *have* confirmed, FWIW, that VMRESUME writing 1
> to IBRS as part of its MSR switch when it was already 1 is not
> optimised away and *is* treated as writing IBRS=1 again.

That's good news.