On Thu, May 09, 2013 at 06:16:55PM +0800, Xiao Guangrong wrote: > On 05/09/2013 02:44 PM, Takuya Yoshikawa wrote: > > Rather than clearing the ACC_WRITE_MASK bit of pte_access in the > > "if (mmu_need_write_protect())" block not to call mark_page_dirty() in > > the following if statement, simply moving the call into the appropriate > > else block is better. > > > > Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya_b1@xxxxxxxxxxxxx> > > --- > > arch/x86/kvm/mmu.c | 7 ++----- > > 1 files changed, 2 insertions(+), 5 deletions(-) > > > > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c > > index 004cc87..08119a8 100644 > > --- a/arch/x86/kvm/mmu.c > > +++ b/arch/x86/kvm/mmu.c > > @@ -2386,14 +2386,11 @@ static int set_spte(struct kvm_vcpu *vcpu, u64 *sptep, > > pgprintk("%s: found shadow page for %llx, marking ro\n", > > __func__, gfn); > > ret = 1; > > - pte_access &= ~ACC_WRITE_MASK; > > spte &= ~(PT_WRITABLE_MASK | SPTE_MMU_WRITEABLE); > > - } > > + } else > > + mark_page_dirty(vcpu->kvm, gfn); > > } > > > > - if (pte_access & ACC_WRITE_MASK) > > - mark_page_dirty(vcpu->kvm, gfn); > > - > > set_pte: > > if (mmu_spte_update(sptep, spte)) > > kvm_flush_remote_tlbs(vcpu->kvm); > > That function is really magic, and this change do no really help it. I had several > patches posted some months ago to make these kind of code better understanding, but > i am too tired to update them. Can you point me to them? Your work is really appreciated, I am sorry you feel this way. -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html