On Sat, Apr 22, 2023, Zhi Wang wrote: > On Sun, 12 Mar 2023 10:56:12 -0700 > isaku.yamahata@xxxxxxxxx wrote: > > > From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > > > > TDX doesn't support dirty logging. Report dirty logging isn't supported so > > that device model, for example qemu, can properly handle it. Silently > > ignore on dirty logging on private GFNs of TDX. ... > > +bool kvm_arch_dirty_log_supported(struct kvm *kvm) > > +{ > > + return kvm->arch.vm_type != KVM_X86_PROTECTED_VM; > > +} > > + > > Maybe introduce a new x86 ops for SNP/TDX to check this separately as SNP > might still support it? With the current approach, I think both SNP/TDX > will be affected. So does the later patch about page-tracking. This patch is unnecessary, the plan is to disallow dirty logging on memslots that support private mapping, e.g. we'll end up with something like this: static int check_memory_region_flags(struct kvm *kvm, const struct kvm_userspace_memory_region2 *mem) { u32 valid_flags = KVM_MEM_LOG_DIRTY_PAGES; if (kvm_arch_has_private_mem(kvm)) valid_flags |= KVM_MEM_PRIVATE; /* Dirty logging private memory is not currently supported. */ if (mem->flags & KVM_MEM_PRIVATE) valid_flags &= ~KVM_MEM_LOG_DIRTY_PAGES; #ifdef __KVM_HAVE_READONLY_MEM valid_flags |= KVM_MEM_READONLY; #endif if (mem->flags & ~valid_flags) return -EINVAL; return 0; } > Michael, can you confirm this? No need to confirm (or deny) at this point, enabling dirty logging for private memory is not something I want to merge in the initial TDX/SNP series, regardless of whether or not it's supported by "hardware", a.k.a. trusted firmware.