From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [PATCH 2/6] KVM MMU: fix kvm_mmu_zap_page() and its calling path Date: Tue, 13 Apr 2010 09:34:14 +0800 Message-ID: <4BC3CA16.6020106@cn.fujitsu.com> References: <4BC2D2E2.1030604@cn.fujitsu.com> <4BC2D345.100@cn.fujitsu.com> <20100412171037.GB4976@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Avi Kivity , KVM list , LKML To: Marcelo Tosatti Return-path: In-Reply-To: <20100412171037.GB4976@amt.cnet> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org Marcelo Tosatti wrote: >> @@ -1483,8 +1483,8 @@ static int mmu_zap_unsync_children(struct kvm *kvm, >> for_each_sp(pages, sp, parents, i) { >> kvm_mmu_zap_page(kvm, sp); >> mmu_pages_clear_parents(&parents); >> + zapped++; >> } >> - zapped += pages.nr; >> kvm_mmu_pages_init(parent, &parents, &pages); >> } > > Don't see why this is needed? The for_each_sp loop uses pvec.nr. I think mmu_zap_unsync_children() should return the number of zapped pages then we can adjust the number of free pages in kvm_mmu_change_mmu_pages(), but pages.nr no only includes the unsync/zapped pages but also includes their parents. Thanks, Xiao