Re: [PATCH] KVM: Remove redundant smp_mb() in the kvm_mmu_commit_zap_page()

From: Paolo Bonzini
Date: Fri Mar 04 2016 - 03:04:25 EST


On 04/03/2016 02:35, Lan Tianyu wrote:
> The following kvm_flush_remote_tlbs() will call smp_mb() inside and so
> remove smp_mb() here.
>
> Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx>
> ---
> arch/x86/kvm/mmu.c | 6 ------
> 1 file changed, 6 deletions(-)
>
> diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
> index a54ecd9..6315416 100644
> --- a/arch/x86/kvm/mmu.c
> +++ b/arch/x86/kvm/mmu.c
> @@ -2383,12 +2383,6 @@ static void kvm_mmu_commit_zap_page(struct kvm *kvm,
> return;
>
> /*
> - * wmb: make sure everyone sees our modifications to the page tables
> - * rmb: make sure we see changes to vcpu->mode
> - */
> - smp_mb();
> -
> - /*
> * Wait for all vcpus to exit guest mode and/or lockless shadow
> * page table walks.
> */
>

kvm_flush_remote_tlbs loads kvm->tlbs_dirty before issuing the memory
barrier. I think it's okay if the load is done earlier, but I'd like
Guangrong to take a look.

In any case, this patch is not going to be included in 4.6. I'll queue
it directly for 4.7.

Paolo

Looks good, but I'd like Xiao to take a look.