On Thu, Feb 8, 2024 at 6:27 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > No. KVM does not yet support SNP, so as far as KVM's ABI goes, there are no > existing guests. Yes, I realize that I am burying my head in the sand to some > extent, but it is simply not sustainable for KVM to keep trying to pick up the > pieces of poorly defined hardware specs and broken guest firmware. 101% agreed. There are cases in which we have to and should bend together backwards for guests (e.g. older Linux kernels), but not for code that---according to current practices---is chosen by the host admin. (I am of the opinion that "bring your own firmware" is the only sane way to handle attestation/measurement, but that's not how things are done currently). Paolo > > > > +static bool kvm_mmu_fault_is_private(struct kvm *kvm, gpa_t gpa, u64 err) > > > > +{ > > > > + bool private_fault = false; > > > > + > > > > + if (kvm_is_vm_type(kvm, KVM_X86_SNP_VM)) { > > > > + private_fault = !!(err & PFERR_GUEST_ENC_MASK); > > > > + } else if (kvm_is_vm_type(kvm, KVM_X86_SW_PROTECTED_VM)) { > > > > + /* > > > > + * This handling is for gmem self-tests and guests that treat > > > > + * userspace as the authority on whether a fault should be > > > > + * private or not. > > > > + */ > > > > + private_fault = kvm_mem_is_private(kvm, gpa >> PAGE_SHIFT); > > > > + } > > > > > > This can be more simply: > > > > > > if (kvm_is_vm_type(kvm, KVM_X86_SNP_VM)) > > > return !!(err & PFERR_GUEST_ENC_MASK); > > > > > > if (kvm_is_vm_type(kvm, KVM_X86_SW_PROTECTED_VM)) > > > return kvm_mem_is_private(kvm, gpa >> PAGE_SHIFT); > > > > > > > Yes, indeed. But TDX has taken a different approach for SW_PROTECTED_VM > > case where they do this check in kvm_mmu_page_fault() and then synthesize > > the PFERR_GUEST_ENC_MASK into error_code before calling > > kvm_mmu_do_page_fault(). It's not in the v18 patchset AFAICT, but it's > > in the tdx-upstream git branch that corresponds to it: > > > > https://github.com/intel/tdx/commit/3717a903ef453aa7b62e7eb65f230566b7f158d4 > > > > Would you prefer that SNP adopt the same approach? > > Ah, yes, 'twas my suggestion in the first place. FWIW, I was just reviewing the > literal code here and wasn't paying much attention to the content. > > https://lore.kernel.org/all/f474282d701aca7af00e4f7171445abb5e734c6f.1689893403.git.isaku.yamahata@xxxxxxxxx >