From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 1/2] KVM: PPC: Add generic hpte management functions Date: Tue, 22 Jun 2010 15:07:49 +0300 Message-ID: <4C20A795.6040607@redhat.com> References: <1277127841-32704-1-git-send-email-agraf@suse.de> <4C20A64D.2070805@redhat.com> <4C20A6C8.4070002@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org To: Alexander Graf Return-path: Received: from mx1.redhat.com ([209.132.183.28]:3174 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756449Ab0FVMH5 (ORCPT ); Tue, 22 Jun 2010 08:07:57 -0400 In-Reply-To: <4C20A6C8.4070002@suse.de> Sender: kvm-owner@vger.kernel.org List-ID: On 06/22/2010 03:04 PM, Alexander Graf wrote: > Avi Kivity wrote: > >> On 06/21/2010 04:44 PM, Alexander Graf wrote: >> >>> Currently the shadow paging code keeps an array of entries it knows >>> about. >>> Whenever the guest invalidates an entry, we loop through that entry, >>> trying to invalidate matching parts. >>> >>> While this is a really simple implementation, it is probably the most >>> ineffective one possible. So instead, let's keep an array of lists >>> around >>> that are indexed by a hash. This way each PTE can be added by 4 >>> list_add, >>> removed by 4 list_del invocations and the search only needs to loop >>> through >>> entries that share the same hash. >>> >>> This patch implements said lookup and exports generic functions that >>> both >>> the 32-bit and 64-bit backend can use. >>> >>> >> Mind explaining the all list in there? >> > The all list is used to flush all entries when we need to get rid of all > entries, for example when we write a BAT. > > Yes, I more or less gathered that when I saw patch 2. Does it make sense to avoid it by looping over all vpte lists in the vpte hash? More effort for a full flush, esp. when the mmu is sparse, but less for individual pte operations. -- error compiling committee.c: too many arguments to function