Re: [RFC v2 PATCH 09/13] KVM: Introduce kvm_memfd_invalidate_range

Paolo Bonzini
2021-11-23T08:46:58Z

On 11/19/21 14:47, Chao Peng wrote:
> +
> + /* Prevent memslot modification */
> + spin_lock(&kvm->mn_invalidate_lock);
> + kvm->mn_active_invalidate_count++;
> + spin_unlock(&kvm->mn_invalidate_lock);
> +
> + ret = __kvm_handle_useraddr_range(kvm, &useraddr_range);
> +
> + spin_lock(&kvm->mn_invalidate_lock);
> + kvm->mn_active_invalidate_count--;
> + spin_unlock(&kvm->mn_invalidate_lock);
> +

You need to follow this with a rcuwait_wake_up as in
kvm_mmu_notifier_invalidate_range_end.

It's probably best if you move the manipulations of
mn_active_invalidate_count from kvm_mmu_notifier_invalidate_range_* to
two separate functions.

Paolo