Re: [RFC PATCH v5 102/104] KVM: TDX: Add methods to ignore accesses to CPU state

From: Paolo Bonzini
Date: Tue Apr 12 2022 - 03:33:58 EST


On 4/12/22 08:49, Xiaoyao Li wrote:

+void tdx_cache_reg(struct kvm_vcpu *vcpu, enum kvm_reg reg)
+{
+    kvm_register_mark_available(vcpu, reg);
+    switch (reg) {
+    case VCPU_REGS_RSP:
+    case VCPU_REGS_RIP:
+    case VCPU_EXREG_PDPTR:
+    case VCPU_EXREG_CR0:
+    case VCPU_EXREG_CR3:
+    case VCPU_EXREG_CR4:
+        break;
+    default:
+        KVM_BUG_ON(1, vcpu->kvm);
+        break;
+    }
+}

Isaku,

We missed one case that some GPRs are accessible by KVM/userspace for TDVMCALL exit.

If a register is not in the VMX_REGS_LAZY_LOAD_SET it will never be passed to tdx_cache_reg. As far as I understand those TDVMCALL registers do not include either RSP or RIP.

Paolo