Re: [PATCH] Allow RDTSC and RDTSCP from userspace

From: Joerg Roedel
Date: Sat Apr 25 2020 - 16:23:58 EST


On Sat, Apr 25, 2020 at 12:47:31PM -0700, Andy Lutomirski wrote:
> I assume the race you mean is:
>
> #VC
> Immediate NMI before IST gets shifted
> #VC
>
> Kaboom.
>
> How are you dealing with this? Ultimately, I think that NMI will need
> to turn off IST before engaging in any funny business. Let me ponder
> this a bit.

Right, I dealt with that by unconditionally shifting/unshifting the #VC IST entry
in do_nmi() (thanks to Davin Kaplan for the idea). It might cause
one of the IST stacks to be unused during nesting, but that is fine. The
stack memory for #VC is only allocated when SEV-ES is active (in an
SEV-ES VM).

Regards,

Joerg