On Wed, Dec 11, 2024 at 10:19:40AM -0800, Sean Christopherson wrote:
+static void guest_code_mmio_during_vectoring(void) +{
const struct desc_ptr idt_desc = {
.address = MEM_REGION_GPA,
.size = 0xFFF,
};
set_idt(&idt_desc);
/* Generate a #GP by dereferencing a non-canonical address */
*((uint8_t *)NONCANONICAL) = 0x1;
Now I'm curious what happens if this uses vcpu_arch_put_guest(), i.e. if the test forces KVM to emulate the write.
No action needed, the test is a-ok as-is. I'm really just curious :-)
:) Just tried enabling `force_emulation_prefix` kvm parameter and replacing the write with
vcpu_arch_put_guest(*((uint8_t *)NONCANONICAL), 0x1);
And the test simply passes (so it returns the same internal error with suberror=3, patches applied)
-- Kind regards, Ivan Orlov