On Wed, Sep 14, 2022 at 12:59 PM Marc Orr <marcorr@xxxxxxxxxx> wrote:
On Wed, Sep 14, 2022 at 12:13 PM Peter Gonda <pgonda@xxxxxxxxxx> wrote:
On Thu, Sep 8, 2022 at 6:05 PM Adam Dunlap <acdunlap@xxxxxxxxxx> wrote:
Previously, when compiled with clang, native_apic_mem_read gets inlined
into __xapic_wait_icr_idle and optimized to a testl instruction. When
run in a VM with SEV-ES enabled, it attempts to emulate this
instruction, but the emulator does not support it. Instead, use inline
assembly to force native_apic_mem_read to use the mov instruction which
is supported by the emulator.
This seems to be an issue with the SEV-ES in guest #VC handler's
"emulator" right?
If that's the case I think this should be fixed in the #VC handler
instead of fixing the code that is failing to be emulated. What if
there are other places where a testl is used and our tests have not
caught them.
That was my initial reaction too. But we spoke w/ Tom offline (before
sending this) and my understanding was that we really should be using
MOV for MMIO. I've cc'd Tom so he can speak to this directly though.
Actually cc'ing Tom :-).