On 06/20/2012 05:02 PM, Takuya Yoshikawa wrote: > On Wed, 20 Jun 2012 15:57:15 +0800 > Xiao Guangrong <xiaoguangrong@xxxxxxxxxxxxxxxxxx> wrote: > >> Introduce a common function to abstract spte write-protect to >> cleanup the code >> >> Signed-off-by: Xiao Guangrong <xiaoguangrong@xxxxxxxxxxxxxxxxxx> > > ... > >> +/* 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. -- 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