From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [PATCH v7 02/10] KVM: MMU: abstract spte write-protect Date: Wed, 20 Jun 2012 17:11:06 +0800 Message-ID: <4FE193AA.8010801@linux.vnet.ibm.com> References: <4FE1822D.8010002@linux.vnet.ibm.com> <4FE1825B.1030402@linux.vnet.ibm.com> <20120620180254.8b3a42f8.yoshikawa.takuya@oss.ntt.co.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Avi Kivity , Marcelo Tosatti , LKML , KVM To: Takuya Yoshikawa Return-path: In-Reply-To: <20120620180254.8b3a42f8.yoshikawa.takuya@oss.ntt.co.jp> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 06/20/2012 05:02 PM, Takuya Yoshikawa wrote: > On Wed, 20 Jun 2012 15:57:15 +0800 > Xiao Guangrong wrote: > >> Introduce a common function to abstract spte write-protect to >> cleanup the code >> >> Signed-off-by: Xiao Guangrong > > ... > >> +/* Return true if the spte is dropped. */ >> +static bool spte_write_protect(struct kvm *kvm, u64 *sptep, bool *flush) >> +{ >> + u64 spte = *sptep; >> + >> + if (!is_writable_pte(spte)) >> + return false; >> + >> + rmap_printk("rmap_write_protect: spte %p %llx\n", sptep, *sptep); > > ... > >> @@ -3902,16 +3915,7 @@ void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot) >> !is_last_spte(pt[i], sp->role.level)) >> continue; >> >> - if (is_large_pte(pt[i])) { >> - drop_spte(kvm, &pt[i]); >> - --kvm->stat.lpages; >> - continue; >> - } >> - >> - /* avoid RMW */ >> - if (is_writable_pte(pt[i])) >> - mmu_spte_update(&pt[i], >> - pt[i] & ~PT_WRITABLE_MASK); >> + spte_write_protect(kvm, &pt[i], &flush); > > Adding rmap_printk() here seems wrong. > Strange! Why do you think it is wrong? It is just debug code. > If you think it is not a problem, please explain why you think so in > the changelog. It is a from the first place and it is used to debug and not compiled at all.