On 09/13/2012 05:47 PM, Avi Kivity wrote: > On 09/12/2012 09:03 PM, Avi Kivity wrote: >> On 09/12/2012 08:49 PM, Avi Kivity wrote: >>> Instead of branchy code depending on level, gpte.ps, and mmu configuration, >>> prepare everything in a bitmap during mode changes and look it up during >>> runtime. >> >> 6/5 is buggy, sorry, will update it tomorrow. >> >> > > --------8<----------8<-------------- > > From: Avi Kivity <avi@xxxxxxxxxx> > Date: Wed, 12 Sep 2012 20:46:56 +0300 > Subject: [PATCH v2 6/5] KVM: MMU: Optimize is_last_gpte() > > Instead of branchy code depending on level, gpte.ps, and mmu configuration, > prepare everything in a bitmap during mode changes and look it up during > runtime. > > Signed-off-by: Avi Kivity <avi@xxxxxxxxxx> > --- > > v2: rearrange bitmap (one less shift) > avoid stomping on local variable > fix index calculation > move check back to a function > > arch/x86/include/asm/kvm_host.h | 7 +++++++ > arch/x86/kvm/mmu.c | 31 +++++++++++++++++++++++++++++++ > arch/x86/kvm/mmu.h | 3 ++- > arch/x86/kvm/paging_tmpl.h | 22 +--------------------- > 4 files changed, 41 insertions(+), 22 deletions(-) > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > index 3318bde..f9a48cf 100644 > --- a/arch/x86/include/asm/kvm_host.h > +++ b/arch/x86/include/asm/kvm_host.h > @@ -298,6 +298,13 @@ struct kvm_mmu { > u64 *lm_root; > u64 rsvd_bits_mask[2][4]; > > + /* > + * Bitmap: bit set = last pte in walk > + * index[0]: pte.ps > + * index[1:2]: level > + */ Opposite? index[2]: pte.pse? Reviewed-by: Xiao Guangrong <xiaoguangrong@xxxxxxxxxxxxxxxxxx> -- 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