Re: [RFC PATCH V6 01/14] x86/sev: Add a #HV exception handler

From: Peter Zijlstra
Date: Wed May 31 2023 - 05:15:37 EST


On Tue, May 30, 2023 at 08:52:32PM +0200, Peter Zijlstra wrote:

> > That should really say that a nested #HV should never be raised by the
> > hypervisor, but if it is, then the guest should detect that and
> > self-terminate knowing that the hypervisor is possibly being malicious.
>
> I've yet to see code that can do that reliably.

Tom; could you please investigate if this can be enforced in ucode?

Ideally #HV would have an internal latch such that a recursive #HV will
terminate the guest (much like double #MC and tripple-fault).

But unlike the #MC trainwreck, can we please not leave a glaring hole in
this latch and use a spare bit in the IRET frame please?

So have #HV delivery:
- check internal latch; if set, terminate machine
- set latch
- write IRET frame with magic bit set

have IRET:
- check magic bit and reset #HV latch