From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 5/6] KVM: MMU: prefetch ptes when intercepted guest #PF Date: Thu, 17 Jun 2010 12:20:41 +0300 Message-ID: <4C19E8E9.4060602@redhat.com> References: <4C16E6ED.7020009@cn.fujitsu.com> <4C16E75F.6020003@cn.fujitsu.com> <4C16E7AD.1060101@cn.fujitsu.com> <4C16E7F4.5060801@cn.fujitsu.com> <4C16E82E.5010306@cn.fujitsu.com> <4C16E9A8.10409@cn.fujitsu.com> <4C1766D6.3040000@redhat.com> <4C19CDCC.4060404@cn.fujitsu.com> <4C19D7B1.6060908@redhat.com> <4C19E532.4070708@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 list To: Xiao Guangrong Return-path: In-Reply-To: <4C19E532.4070708@cn.fujitsu.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 06/17/2010 12:04 PM, Xiao Guangrong wrote: > > >> So we can change the fault path to always fault 16 ptes, aligned on 16 >> pte boundary, with the needed pte called with specualtive=false. >> > Avi, i not understand it clearly, Could you please explain it? :-( > Right now if the fault is in spte i, you prefetch ptes (i+1)..(i+MAX_PREFETCH-1). I'd like to prefetch ptes (i & ~(MAX_PREFETCH-1))..(i | (MAX_PREFETCH - 1)). Read all those gptes, and map them one by one with speculative = false only for spte i. Perhaps we need to integrate it into walk_addr, there's no reason to read the gptes twice. -- error compiling committee.c: too many arguments to function