On 16/09/20 02:19, Sean Christopherson wrote:
TDX also selectively blocks/skips portions of other ioctl()s so that the TDX code itself can yell loudly if e.g. .get_cpl() is invoked. The event injection restrictions are due to direct injection not being allowed (except for NMIs); all IRQs have to be routed through APICv (posted interrupts) and exception injection is completely disallowed. kvm_vcpu_ioctl_x86_get_vcpu_events: if (!vcpu->kvm->arch.guest_state_protected) events->interrupt.shadow = kvm_x86_ops.get_interrupt_shadow(vcpu);
Perhaps an alternative implementation can enter the vCPU with immediate exit until no events are pending, and then return all zeroes?
Paolo