On Tue, Jun 25, 2024 at 07:15:09AM +0800, Edgecombe, Rick P wrote: > On Mon, 2024-06-24 at 16:29 +0800, Yan Zhao wrote: > > > @@ -1057,7 +1057,7 @@ void kvm_tdp_mmu_zap_all(struct kvm *kvm) > > > * KVM_RUN is unreachable, i.e. no vCPUs will ever service the > > > request. > > > */ > > > lockdep_assert_held_write(&kvm->mmu_lock); > > > - for_each_tdp_mmu_root_yield_safe(kvm, root) > > > + __for_each_tdp_mmu_root_yield_safe(kvm, root, -1, KVM_DIRECT_ROOTS) > > nit: update the comment of kvm_tdp_mmu_zap_all() > > Yea, good idea. It's definitely needs some explanation, considering the function > is called "zap_all". A bit unfortunate actually. > > > and explain why it's > > KVM_DIRECT_ROOTS, not KVM_DIRECT_ROOTS | KVM_INVALID_ROOTS. > > Explain why not to zap invalid mirrored roots? No. Explain why not to zap invalid direct roots. Just passing KVM_DIRECT_ROOTS will zap only valid direct roots, right? The original kvm_tdp_mmu_zap_all() "Zap all roots, including invalid roots". It might be better to explain why not to zap invalid direct roots here.