On Thu, May 16, 2024, Kai Huang wrote: > > > You had said up the thread, why not opt all non-normal VMs into the new > > > behavior. It will work great for TDX. But why do SEV and others want this > > > automatically? > > > > Because I want flexibility in KVM, i.e. I want to take the opportunity to try and > > break away from KVM's godawful ABI. It might be a pipe dream, as keying off the > > VM type obviously has similar risks to giving userspace a memslot flag. The one > > sliver of hope is that the VM types really are quite new (though less so for SEV > > and SEV-ES), whereas a memslot flag would be easily applied to existing VMs. > > Btw, does the "zap-leaf-only" approach always have better performance, > assuming we have to hold MMU write lock for that? I highly doubt it, especially given how much the TDP MMU can now do with mmu_lock held for read. > Consider a huge memslot being deleted/moved. > > If we can always have a better performance for "zap-leaf-only", then instead > of letting userspace to opt-in this feature, we perhaps can do the opposite: > > We always do the "zap-leaf-only" in KVM, but add a quirk for the VMs that > userspace know can have such bug and apply this quirk. Hmm, a quirk isn't a bad idea. It suffers the same problems as a memslot flag, i.e. who knows when it's safe to disable the quirk, but I would hope userspace would be much, much cautious about disabling a quirk that comes with a massive disclaimer. Though I suspect Paolo will shoot this down too ;-) > But again, I think it's just too overkill for TDX. We can just set the > ZAP_LEAF_ONLY flag for the slot when it is created in KVM. Ya, I'm convinced that adding uAPI is overkill at this point.