From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 2/4] KVM: MMU: support unsync sp out of the protection of 'mmu_lock' Date: Sun, 26 Sep 2010 15:02:35 +0200 Message-ID: <4C9F446B.1030902@redhat.com> References: <4C976D48.6020400@cn.fujitsu.com> <4C976D7C.7090707@cn.fujitsu.com> <4C977B9E.6030208@redhat.com> <4C9AC3EB.1080507@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , LKML , KVM To: Xiao Guangrong Return-path: In-Reply-To: <4C9AC3EB.1080507@cn.fujitsu.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 09/23/2010 05:05 AM, Xiao Guangrong wrote: > > > > How can you drop an active unsync page? > > > > I'm missing something here. > > > > Umm, this feature is used like this: > > hold mmu_lock > increase sp->active_count > release mmu_lock > ...... > hold mmu_lock > increase sp->active_count > if (!sp->active_count&& sp->invalid) > kvm_mmu_free_page(sp); > ...... > release mmu_lock > > Well, the implementation is confusing. Maybe we should have mmu_ref_sp() and mmu_drop_sp() wrappers to manage the reference counts and call mmu_free_page() automatically. -- error compiling committee.c: too many arguments to function