From: Xiao Guangrong <guangrong.xiao@linux.intel.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
Lan Tianyu <tianyu.lan@intel.com>,
Thomas Gleixner <tglx@linutronix.de>
Cc: gleb@kernel.org, mingo@redhat.com, hpa@zytor.com, x86@kernel.org,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] KVM: Remove redundant smp_mb() in the kvm_mmu_commit_zap_page()
Date: Fri, 11 Mar 2016 02:08:05 +0800 [thread overview]
Message-ID: <56E1B805.3060906@linux.intel.com> (raw)
In-Reply-To: <56E1A9D3.7080803@redhat.com>
On 03/11/2016 01:07 AM, Paolo Bonzini wrote:
> On 09/03/2016 08:18, Lan Tianyu wrote:
>> How about the following comments.
>>
>> Log for kvm_mmu_commit_zap_page()
>> /*
>> * We need to make sure everyone sees our modifications to
>> * the page tables and see changes to vcpu->mode here.
>
> Please mention that this pairs with vcpu_enter_guest and
> walk_shadow_page_lockless_begin/end.
>
>> The
>> * barrier in the kvm_flush_remote_tlbs() helps us to achieve
>> * these. Otherwise, wait for all vcpus to exit guest mode
>> * and/or lockless shadow page table walks.
>> */
>> kvm_flush_remote_tlbs(kvm);
>
> The rest of the comment is okay, but please replace "Otherwise" with "In
> addition, we need to".
>
>> Log for kvm_flush_remote_tlbs()
>> /*
>> * We want to publish modifications to the page tables before
>> * reading mode. Pairs with a memory barrier in arch-specific
>> * code.
>> * - x86: smp_mb__after_srcu_read_unlock in vcpu_enter_guest.
>
> ... and smp_mb in walk_shadow_page_lockless_begin/end.
>
>> * - powerpc: smp_mb in kvmppc_prepare_to_enter.
>> */
>> smp_mb__before_atomic();
>
> The comment looks good, but the smp_mb__before_atomic() is not needed.
> As mentioned in the reply to Guangrong, only a smp_load_acquire is required.
>
> So the comment should say something like "There is already an smp_mb()
> before kvm_make_all_cpus_request reads vcpu->mode. We reuse that
> barrier here.".
>
> On top of this there is:
>
> - the change to paging_tmpl.h that Guangrong posted, adding smp_wmb()
> before each increment of vcpu->kvm->tlbs_dirty
Yes, please make it as a separated patch.
>
> - the change to smp_mb__after_atomic() in kvm_make_all_cpus_request
>
> - if you want :) you can also replace the store+mb in
> walk_shadow_page_lockless_begin with smp_store_mb, and the mb+store in
> walk_shadow_page_lockless_end with smp_store_release.
These changes are good to me.
TianYu, please CC me when you post the new version out.
next prev parent reply other threads:[~2016-03-10 18:18 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-04 1:35 [PATCH] KVM: Remove redundant smp_mb() in the kvm_mmu_commit_zap_page() Lan Tianyu
2016-03-04 7:21 ` Thomas Gleixner
2016-03-04 7:12 ` Lan Tianyu
2016-03-04 8:49 ` Paolo Bonzini
2016-03-08 8:36 ` Lan Tianyu
2016-03-08 15:27 ` Paolo Bonzini
2016-03-09 7:18 ` Lan Tianyu
2016-03-10 17:07 ` Paolo Bonzini
2016-03-10 18:08 ` Xiao Guangrong [this message]
2016-03-10 14:40 ` Xiao Guangrong
2016-03-10 15:26 ` Paolo Bonzini
2016-03-10 15:31 ` Paolo Bonzini
2016-03-10 15:45 ` Xiao Guangrong
2016-03-10 16:04 ` Paolo Bonzini
2016-03-10 17:57 ` Xiao Guangrong
2016-03-11 1:13 ` Lan Tianyu
2016-03-04 8:04 ` Paolo Bonzini
2016-03-04 13:48 ` Xiao Guangrong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56E1B805.3060906@linux.intel.com \
--to=guangrong.xiao@linux.intel.com \
--cc=gleb@kernel.org \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=tglx@linutronix.de \
--cc=tianyu.lan@intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.