On Wed, Aug 16, 2023 at 03:29:22PM +0800, bibo mao wrote: > > Flush must be done before kvm->mmu_lock is unlocked, otherwise, > > confusion will be caused when multiple threads trying to update the > > secondary MMU. > Since tlb flush is delayed after all pte entries are cleared, and currently > there is no tlb flush range supported for secondary mmu. I do know why there > is confusion before or after kvm->mmu_lock. Oh, do you mean only do kvm_unmap_gfn_range() in .invalidate_range_end()? Then check if PROT_NONE is set in primary MMU before unmap? Looks like a good idea, I need to check if it's feasible. Thanks!